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
|`pnpm i18n:check [locale]`| Compares `en.json` with other locale files. Shows missing and extra keys. Optionally filter output by locale (e.g. `pnpm i18n:check ja-JP`). |
391
+
|`pnpm i18n:check:fix [locale]`| Same as check, but adds missing keys to other locales with English placeholders. |
392
+
|`pnpm i18n:report`| Audits translation keys against code usage in `.vue` and `.ts` files. Reports missing keys (used in code but not in locale), unused keys (in locale but not in code), and dynamic keys. |
393
+
|`pnpm i18n:report:fix`| Removes unused keys from `en.json` and all other locale files. |
394
+
383
395
### Adding a new locale
384
396
385
397
We are using localization using country variants (ISO-6391) via [multiple translation files](https://i18n.nuxtjs.org/docs/guide/lazy-load-translations#multiple-files-lazy-loading) to avoid repeating every key per country.
We track the current progress of translations with [Lunaria](https://lunaria.dev/) on this site: https://i18n.npmx.dev/
424
436
If you see any outdated translations in your language, feel free to update the keys to match the English version.
425
437
426
-
In order to make sure you have everything up-to-date, you can run:
427
-
428
-
```bash
429
-
pnpm i18n:check <country-code>
430
-
```
431
-
432
-
For example to check if all Japanese translation keys are up-to-date, run:
433
-
434
-
```bash
435
-
pnpm i18n:check ja-JP
436
-
```
437
-
438
-
To automatically add missing keys with English placeholders, use `--fix`:
439
-
440
-
```bash
441
-
pnpm i18n:check:fix fr-FR
442
-
```
443
-
444
-
This will add missing keys with `"EN TEXT TO REPLACE: {english text}"` as placeholder values, making it easier to see what needs translation.
438
+
Use `pnpm i18n:check` and `pnpm i18n:check:fix` to verify and fix your locale (see [i18n commands](#i18n-commands) above for details).
445
439
446
440
#### Country variants (advanced)
447
441
@@ -529,6 +523,32 @@ See how `es`, `es-ES`, and `es-419` are configured in [config/i18n.ts](./config/
529
523
- Use `common.*` for shared strings (loading, retry, close, etc.)
530
524
- Use component-specific prefixes: `package.card.*`, `settings.*`, `nav.*`
531
525
- Do not use dashes (`-`) in translation keys; always use underscore (`_`): e.g., `privacy_policy` instead of `privacy-policy`
526
+
-**Always use static string literals as translation keys.** Our i18n scripts (`pnpm i18n:report`) rely on static analysis to detect unused and missing keys. Dynamic keys cannot be analyzed and will be flagged as errors.
0 commit comments