Translations¶
Betty is fully multilingual (internationalized), and can be localized to different locales, which includes translations of the built-in US English messages to any language of your choice.
Each time a message is translated, Betty finds the translation as follows:
If the project has a translation in its assets directory, use it
If an extension has a translation in its assets directory, use it
If a built-in translation exists, use it
If no translation exists, use the original US English message
Read more about asset directories.
gettext¶
Betty uses gettext to manage its translations:
Betty will compile
*.mo
files internally. You will never have to do this manuallyBetty will manage
*.pot
and*.po
files automatically if you use the*-translations
commandsYou will have to add translations to
*.po
files yourself
Project translations¶
Adding a new translation¶
Run betty new-translation $locale
where $locale
is an
IETF BCP 47 language tag.
This will create ./locale/$locale/betty.po
, which you can then edit yourself.
Updating existing translations after changing translatable messages¶
If you’ve made changes to the translatable messages in your project, run
betty update-translations
to update betty.pot
and any betty.po
files for existing translations. You can then edit the updated betty.po
files yourself.
Built-in translations¶
Betty ships with the following translations:
- Dutch (
nl-NL
) Translations are 96% complete.
- English (
en-US
) Translations are 100% complete.
- French (
fr-FR
) Translations are 39% complete.
- German (
de-DE
) Translations are 72% complete.
- Ukrainian (
uk
) Translations are 35% complete.
Read more about how to contribute to Betty’s built-in translations.