|
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