Translation
How we manage translation (or i18n) in the app
We are proud to say that we support many languages in Monica. Nothing should go in production without being translated.
Add a new language
When we want to add a new language that is not yet supported, we should run the following command line (fr
being the two letter codes identifying the language, here fr
meaning French).
Then we need to translate the default Laravel language files (like the generic error messages) in the new language. We have a package for that, which will let us focus our efforts in something else.
Once done, you will find a new folder for the new language, and find a set of new files within this directory.
Translating strings
The core of the work of translating an application is actually about extracting strings to translate from either the Vue or from the backend (sometimes).
To translate a string in a Vue file, you should import the i18n library, then use it to translate:
Then, each string should be put in the translation files (fr.json
, de.json
, ...) like the following:
Putting this new string in each translation file can be super time consuming. This is why we have a script that will extract translation files in each view, and put it inside the translation files for you.
This script also does one magic thing: it translates all the empty strings in all the locales supported by the app.
Basically, you don't have to do anything anymore once you add new strings to the application. Monica will automatically pulls all the strings to translate in the dedicated locale files, find the new empty strings and use Google Translate to translate them for us.
Do not submit a PR with new strings that are not translated in every language that we support.
Last updated