Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jekuer/directus-extension-system-email-i18n
Directus CMS extension to translate system emails (password reset, user registration and invitation)
https://github.com/jekuer/directus-extension-system-email-i18n
cms directus directus-extension directus-extension-hook email extension i18n package plugin system-email template
Last synced: 29 days ago
JSON representation
Directus CMS extension to translate system emails (password reset, user registration and invitation)
- Host: GitHub
- URL: https://github.com/jekuer/directus-extension-system-email-i18n
- Owner: jekuer
- License: mit
- Created: 2025-01-09T21:44:26.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-01-09T22:39:51.000Z (about 1 month ago)
- Last Synced: 2025-01-09T23:25:23.147Z (about 1 month ago)
- Topics: cms, directus, directus-extension, directus-extension-hook, email, extension, i18n, package, plugin, system-email, template
- Language: TypeScript
- Homepage:
- Size: 59.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Directus i18n for System Emails
This extension allows you to translate system emails (user invitation, user registration, password reset) per user.
---
## Installation
There are multiple way to install an extension.
Check the [official Directus guide](https://docs.directus.io/extensions/installing-extensions.html) for more information.
### A. Installing via the Directus Marketplace
Simply install it via the marketplace with 1 click.
> Mind that in order to see this in the (self-hosted and Enterprise Cloud) Directus Marketplace, you would need to allow non-sandboxed extensions ([see docs](https://docs.directus.io/self-hosted/config-options.html#marketplace)).
### B. Installing via the npm Registry
Use the code from npm via...
```sh
npm install directus-extension-system-email-i18n
```or
```sh
pnpm install directus-extension-system-email-i18n
```... and include this into your Docker build flow.
### C. Installing via the Extensions Directory
1. Download the code.
2. Build it via `npm ci && npm run build`.
3. Upload the files to your extensions directory.
---
## How to use
* The extension is a hook, which filters all emails sent by Directus.
* When we are dealing with a system email, it would check for the user's language.
* If this language is not the default language, it would look for an email template with a language suffix.
* Additionally (in all cases), it looks for a subject in a respective environment variable `I18N_EMAIL_SUBJECTS`.
> **Warning:**
> When you are using this extension, you need to make sure that for every system email type and used language, you have a [liquid template](https://docs.directus.io/self-hosted/email-templates.html) set up.
> If a template is missing, emails might not get sent.
---
## Example
Let's assume...
* you are offering English (default) and German as potential languages.
* you are not offering user invites and have no user registration DOI.
* so, we only need to translate the password-reset emails.1. You would create a template `password-reset` (for English) and a template `password-reset-de` (for German).
2. You would add an environment variable `I18N_EMAIL_SUBJECTS` with content `{"de":{"password-reset": "Passwort zurücksetzen"}}`.That's it.
If you would now add Spanish:
1. add a template `password-reset-es`
2. adjust the env var to something like `{"de":{"password-reset": "Passwort zurücksetzen"}, "es":{"password-reset": "Restablecer contraseña"}}`**Bonus:** You could still also add an alternative English block to the env var in order to change the default subject.
---
## Contributing
Anyone is welcome to contribute, but mind the [guidelines](.github/CONTRIBUTING.md):
- [Bug reports](.github/CONTRIBUTING.md#bugs)
- [Feature requests](.github/CONTRIBUTING.md#features)
- [Pull requests](.github/CONTRIBUTING.md#pull-requests)