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
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+40-2Lines changed: 40 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -340,12 +340,12 @@ To add a new locale:
340
340
5. If the language is `right-to-left`, add `dir: 'rtl'` (see `ar-EG` in config for example)
341
341
6. If the language requires special pluralization rules, add a `pluralRule` callback (see `ar-EG` or `ru-RU` in config for examples)
342
342
343
-
Check [Pluralization rule callback](https://vue-i18n.intlify.dev/guide/essentials/pluralization.html#custom-pluralization) for more info.
343
+
Check [Pluralization rule callback](https://vue-i18n.intlify.dev/guide/essentials/pluralization#custom-pluralization) and [Plural Rules](https://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories) for more info.
344
344
345
345
### Update translation
346
346
347
347
We track the current progress of translations with [Lunaria](https://lunaria.dev/) on this site: https://i18n.npmx.dev/
348
-
If you see any outdated translations in your language, feel free to update the keys to match then English version.
348
+
If you see any outdated translations in your language, feel free to update the keys to match the English version.
349
349
350
350
In order to make sure you have everything up-to-date, you can run:
351
351
@@ -408,13 +408,51 @@ See how `es`, `es-ES`, and `es-419` are configured in [config/i18n.ts](./config/
408
408
<p>{{ $t('greeting', { name: userName }) }}</p>
409
409
```
410
410
411
+
4. Don't concatenate string messages in the Vue templates, some languages can have different word order. Use placeholders instead.
412
+
413
+
**Bad:**
414
+
415
+
```vue
416
+
<p>{{ $t('hello') }} {{ userName }}</p>
417
+
```
418
+
419
+
**Good:**
420
+
421
+
```vue
422
+
<p>{{ $t('greeting', { name: userName }) }}</p>
423
+
```
424
+
425
+
**Complex content:**
426
+
427
+
If you need to include HTML or components inside the translation, use [`i18n-t`](https://vue-i18n.intlify.dev/guide/advanced/component.html) component. This is especially useful when the order of elements might change between languages.
428
+
429
+
```json
430
+
{
431
+
"agreement": "I accept the {terms} and {privacy}.",
0 commit comments