@nyby/i18n-cli
v1.4.5
Published
Translations, in both the server side and client apps, are embedded in the code using string keys. Since the source code are simply javascript, we use Babel to extract the keys from the code.
Downloads
69
Readme
Nyby Internationalization (i18n) tool
Translations, in both the server side and client apps, are embedded in the code using string keys. Since the source code are simply javascript, we use Babel to extract the keys from the code.
Setup
Create an i18n.json
similar to i18n.example.json
. API key can be set from environment variable
I18N_API_KEY
. Then call the following and following the prompts.
node dist/index.js i18n.example.json
The translation strings support ICU message format.
Translations
The source of truth for the translation keys and strings are stored in Crowdin. This allows us to use the translation keys and strings to integrate with other tools and systems, e.g., figma.
To add and/or remove keys, simple add and remove the keys in the main language file, typically en.i18n.json
.
To synchronize the new keys to Crowdin, simply run yarn i18n upload
. To get updated translation strings and key
from Crowdin, simply run yarn i18n download
.
The provided yarn i18n extract
tool can extract and add new keys from the source code and gives warning to keys
that are no longer used in the code. Keys can be added manually be editing the main language json
file.
Updating the strings in the main language file will invalidate the translated strings in the other languages. This
can be done using yarn i18n upload
tool to upload the updated main language file strings to Crowdin. Invalidating the
strings will inform the translators that new translations are required. The main language strings can also be
changed and invalidated in the Crowdin app itself.