|
1 | 1 | # Node.js Website Translation Policy |
2 | 2 |
|
3 | | -Node.js is a global platform and so this site has many translations. The translation of the site into |
4 | | -languages other than English is handled by the localization working group of the language in question. If you |
5 | | -would like to contribute to the translation of nodejs.org, please refer to the following process: |
6 | | - |
7 | | -> Since Apr, 1 2020 translation process moved to [Crowdin](https://crowdin.com/project/nodejs-website) |
8 | | -
|
9 | | -## Get started |
10 | | - |
11 | | -1. Open [nodejs-website](https://crowdin.com/project/nodejs-website) Crowdin project |
12 | | -2. Find your locale and start translation. Find more details in [guide for volunteer translators](https://support.crowdin.com/for-volunteer-translators/) |
13 | | - |
14 | | -All translated and approved content will be pushed to this repo automatically. You don't need to create any PRs with translation. Just keep localization process on Crowdin. |
15 | | - |
16 | | -Original source can be found in [/locale/en](https://github.com/nodejs/nodejs.org/tree/main/locale/en). If you find any problem with original source, please create a PR with changes directly to `/locale/en`. Crowdin automatically pull all updates within 24 hours. |
17 | | - |
18 | | -### Can't find my locale on Crowdin |
19 | | - |
20 | | -Please create a [new issue](https://github.com/nodejs/nodejs.org/issues/new?template=03-i18n.md) in this repo. Crowdin managers team would be happy to add new languages. |
21 | | - |
22 | | -## Localization groups |
23 | | - |
24 | | -An existing localization group is not required to start translation. You can contribute on Crowdin without it. Think about groups like a basement to communicate with other translators of your locale. |
25 | | - |
26 | | -Contact your appropriate localization group, and discuss with them the best possible way to contribute. A list of the localization groups can be found below. |
27 | | - |
28 | | -- [`nodejs-ar`](https://github.com/nodejs/nodejs-ar) Arabic Community |
29 | | -- [`nodejs-bg`](https://github.com/nodejs/nodejs-bg) Bulgarian Community |
30 | | -- [`nodejs-bn`](https://github.com/nodejs/nodejs-bn) Bengali Community |
31 | | -- [`nodejs-zh-CN`](https://github.com/nodejs/nodejs-zh-CN) Chinese Community |
32 | | -- [`nodejs-cs`](https://github.com/nodejs/nodejs-cs) Czech Community |
33 | | -- [`nodejs-da`](https://github.com/nodejs/nodejs-da) Danish Community |
34 | | -- [`nodejs-de`](https://github.com/nodejs/nodejs-de) German Community |
35 | | -- [`nodejs-el`](https://github.com/nodejs/nodejs-el) Greek Community |
36 | | -- [`nodejs-es`](https://github.com/nodejs/nodejs-es) Spanish Community |
37 | | -- [`nodejs-fa`](https://github.com/nodejs/nodejs-fa) Persian Community |
38 | | -- [`nodejs-fi`](https://github.com/nodejs/nodejs-fi) Finnish Community |
39 | | -- [`nodejs-fr`](https://github.com/nodejs/nodejs-fr) French Community |
40 | | -- [`nodejs-he`](https://github.com/nodejs/nodejs-he) Hebrew Community |
41 | | -- [`nodejs-hi`](https://github.com/nodejs/nodejs-hi) Hindi Community |
42 | | -- [`nodejs-hu`](https://github.com/nodejs/nodejs-hu) Hungarian Community |
43 | | -- [`nodejs-id`](https://github.com/nodejs/nodejs-id) Indonesian Community |
44 | | -- [`nodejs-it`](https://github.com/nodejs/nodejs-it) Italian Community |
45 | | -- [`nodejs-ja`](https://github.com/nodejs/nodejs-ja) Japanese Community |
46 | | -- [`nodejs-ka`](https://github.com/nodejs/nodejs-ka) Georgian Community |
47 | | -- [`nodejs-ko`](https://github.com/nodejs/nodejs-ko) Korean Community |
48 | | -- [`nodejs-mk`](https://github.com/nodejs/nodejs-mk) Macedonian Community |
49 | | -- [`nodejs-ms`](https://github.com/nodejs/nodejs-ms) Malaysian Community |
50 | | -- [`nodejs-nl`](https://github.com/nodejs/nodejs-nl) Dutch Community |
51 | | -- [`nodejs-no`](https://github.com/nodejs/nodejs-no) Norwegian Community |
52 | | -- [`nodejs-pl`](https://github.com/nodejs/nodejs-pl) Polish Community |
53 | | -- [`nodejs-pt`](https://github.com/nodejs/nodejs-pt) Portuguese Community |
54 | | -- [`nodejs-ro`](https://github.com/nodejs/nodejs-ro) Romanian Community |
55 | | -- [`nodejs-ru`](https://github.com/nodejs/nodejs-ru) Russian Community |
56 | | -- [`nodejs-sv`](https://github.com/nodejs/nodejs-sv) Swedish Community |
57 | | -- [`nodejs-ta`](https://github.com/nodejs/nodejs-ta) Tamil Community |
58 | | -- [`nodejs-tr`](https://github.com/nodejs/nodejs-tr) Turkish Community |
59 | | -- [`nodejs-zh-TW`](https://github.com/nodejs/nodejs-zh-TW) Taiwanese Community |
60 | | -- [`nodejs-uk`](https://github.com/nodejs/nodejs-uk) Ukrainian Community |
61 | | -- [`nodejs-vi`](https://github.com/nodejs/nodejs-vi) Vietnamese Community |
62 | | - |
63 | | -### Group for my locale does not exist |
64 | | - |
65 | | -If you can't find group for your locale: |
66 | | - |
67 | | -1. Translate 1000 strings or more on Crowdin for your locale |
68 | | -2. Find at least one more translator for your locale |
69 | | -3. Create a [new issue](https://github.com/nodejs/nodejs.org/issues/new?template=03-i18n.md) in this repo requesting the creation of a group for your locale |
70 | | - |
71 | | -### Group for my locale is archived |
72 | | - |
73 | | -If you find the group for your locale is archived: |
74 | | - |
75 | | -1. Try to contact members of the group by creating a [new issue](https://github.com/nodejs/nodejs.org/issues/new?template=03-i18n.md) in this repo. Include a mention of the group so members get notified of the issue. |
76 | | -2. If there is no response from members in 7 days and if you have already done 1000 strings or more on Crowdin for your locale, open an issue in <https://github.com/nodejs/admin> requesting the repository be unarchived. |
| 3 | +Node.js is a global platform and so this site has many translations. The translation of the site into languages other than English is handled by Crowdin translators. |
| 4 | + |
| 5 | +## How to translate |
| 6 | + |
| 7 | +1. Request to join the [Crowdin](https://crowdin.com/project/nodejs-website) |
| 8 | +2. Select the language you want to translate |
| 9 | +3. Start translating |
| 10 | + |
| 11 | +## How to add a new language |
| 12 | + |
| 13 | +Go on `/i18n/config.json` and add the new language to the `locales` array. |
| 14 | + |
| 15 | +Fill the language object with the following fields: |
| 16 | + |
| 17 | +```json |
| 18 | +{ |
| 19 | + "code": "fr", |
| 20 | + "localName": "Français", |
| 21 | + "name": "French", |
| 22 | + "langDir": "ltr", |
| 23 | + "dateFormat": "DD.MM.YYYY", |
| 24 | + "hrefLang": "fr", |
| 25 | + "enabled": true |
| 26 | +} |
| 27 | +``` |
| 28 | + |
| 29 | +| Field Name | Description | Examples | |
| 30 | +| ------------ | ------------------------------------------------------------------------------------------------------ | ------------ | |
| 31 | +| `code` | The language code. It must be the same as the folder name | `fr` | |
| 32 | +| `localName` | The language name in its own language (it's use in language selector) | `Français` | |
| 33 | +| `name` | The language name in English | `French` | |
| 34 | +| `langDir` | The direction of the language. `ltr` for left to right, `rtl` for right to left | `ltr` | |
| 35 | +| `dateFormat` | The date format. It must be a valid [moment.js format](https://momentjs.com/docs/#/displaying/format/) | `DD.MM.YYYY` | |
| 36 | +| `hrefLang` | The language code in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format | `fr` | |
| 37 | +| `enabled` | If the language is enabled or not | `true` | |
0 commit comments