You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In these YML files, it is important that message ids in the code be consistent with
64
+
the categories in this file. Below are some general guidelines:
65
+
- For starters, there are an `actions`, `common`, `components`, and `config`
66
+
categories. Additional categories may be added as needed.
67
+
- Each sub-category under `components` denotes a React component and
68
+
should contain messages that are used only by that component (e.g. button captions).
69
+
- In contrast, some strings are common to multiple components,
70
+
so it makes sense to group them by theme (e.g. accessModes) under the `common` category.
71
+
72
+
Note: Do not put comments in the YML files! They will be removed by `yaml-sort`.
73
+
Instead, comments for other developers should be placed in the corresponding js/jsx/ts/tsx file.
74
+
Comments for translators should be entered into Weblate (see [Contributing Translations](#contributing-translations))
75
+
76
+
### Internationalizable content in the configuration file
77
+
78
+
Most textual content from the `i18n` folder can also be customized on a per-configuration basis
79
+
using the `language` section of `config.yml`, whether for all languages at once,
80
+
or for each supported individual language.
81
+
82
+
### Using internationalizable content in the code
83
+
84
+
Use message id **literals** (no variables or other dynamic content) with either
85
+
```jsx
86
+
<FormattedMessage id="..." />
87
+
```
88
+
or
89
+
```js
90
+
intl.formatMessage({ id: ... })
91
+
```
92
+
93
+
The reason for passing **literals** to `FormattedMessage` and `intl.formatMessage` is that we have a checker script `yarn check:i18n` that is based on the `formatJS` CLI and that detects unused messages in the code and exports translation tables.
94
+
Passing variables or dynamic content will cause the `formatJS` CLI and the checker to ignore the corresponding messages and
95
+
incorrectly claim that a string is unused or missing from a translation file.
96
+
97
+
One exception to this rule concerns configuration settings where message ids can be constructed dynamically.
47
98
48
99
### Contributing translations
49
100
@@ -62,6 +113,7 @@ OTP-react-redux now uses [Hosted Weblate](https://www.weblate.org) to manage tra
62
113
Translations from the community are welcome and very much appreciated,
63
114
please see instructions at https://hosted.weblate.org/projects/otp-react-redux/.
64
115
Community input from Weblate will appear as pull requests with changes to files in the `i18n` folder for our review.
116
+
(Contributions may be edited or rejected to remain in line with long-term project goals.)
65
117
66
118
If changes to a specific language file is needed but not enabled in Weblate, please open an issue or a pull request with the changes needed.
0 commit comments