This extension allows you to translate system emails (user invitation, user registration, password reset) per user.
There are multiple way to install an extension.
Check the official Directus guide for more information.
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).
Use the code from npm via...
npm install directus-extension-system-email-i18n
or
pnpm install directus-extension-system-email-i18n
... and include this into your Docker build flow.
- Download the code.
- Build it via
npm ci && npm run build
. - Upload the files to your extensions directory.
- 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 set up.
If a template is missing, emails might not get sent.
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.
- You would create a template
password-reset
(for English) and a templatepassword-reset-de
(for German). - 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:
- add a template
password-reset-es
- 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.
Anyone is welcome to contribute, but mind the guidelines: