Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / i18n / Readme.md
blob6cbd685e6150186375fec9b3d849118ea4f788b3
1 # Proton I18N
3 A CLI to manage translations - validation - extraction
5 We use [ttag](https://github.com/ttag-org/ttag) for our React projects and [angular-gettext](https://github.com/rubenv/angular-gettext) for our [WebClient](https://github.com/ProtonMail/WebClient).
7 ## Commands
9 ```sh
10 $ npx proton-i18n help
11 Usage: $ proton-i18n <command>
12 Available commands:
13   - validate <type>
14       To validate the translations, check if we have contexts
15         - type: default (default) validate we don't have missing context
16         - type: lint-functions check if we use the right format for ttag
18   - extract <type>
19       Extract all translations from the projet
20       - type: default (app) extract translations from the app and reactComponents + shared
21       - type: reactComponents extract only translations from react-components
22       - type: shared extract only translations from proton-shared
23 ```
25 ## How to setup ?
27 You need to have a file `.env` inside the directory `<project>/env/`.
29 ```sh
30 I18N_TEMPLATE_FILE:<FILE SOURCE TO UPLOAD TO CROWDIN>
31 ```
33 You don't need these key if you don't manage crowdin, for extraction and validation we won't need them.
35 -   `I18N_TEMPLATE_FILE`: Default value -> `po/template.pot`
37 > We need this key to detect the project as we require some custom code for it.
39 ## Tests
41 `$ npm test`