Skip to content

Commit 3acb1be

Browse files
feat(i18n): improve update process (#495)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent 23a2625 commit 3acb1be

File tree

5 files changed

+218
-31
lines changed

5 files changed

+218
-31
lines changed

CONTRIBUTING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,14 @@ For example to check if all Japanese translation keys are up-to-date, run:
301301
pnpm i18n:check ja-JP
302302
```
303303

304+
To automatically add missing keys with English placeholders, use `--fix`:
305+
306+
```bash
307+
pnpm i18n:check:fix fr-FR
308+
```
309+
310+
This will add missing keys with `"EN TEXT TO REPLACE: {english text}"` as placeholder values, making it easier to see what needs translation.
311+
304312
#### Country variants (advanced)
305313

306314
Most languages only need a single locale file. Country variants are only needed when you want to support regional differences (e.g., `es-ES` for Spain vs `es-419` for Latin America).

i18n/locales/fr-FR.json

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,11 @@
124124
"vulns": "Vulnérabilités",
125125
"updated": "Mis à jour",
126126
"view_dependency_graph": "Voir le graphe de dépendances",
127-
"inspect_dependency_tree": "Inspecter l'arbre de dépendances"
127+
"inspect_dependency_tree": "Inspecter l'arbre de dépendances",
128+
"size_tooltip": {
129+
"unpacked": "{size} taille décompressée (ce paquet)",
130+
"total": "{size} taille totale décompressée (incluant les {count} dépendances pour linux-x64)"
131+
}
128132
},
129133
"links": {
130134
"repo": "dépôt",
@@ -178,14 +182,18 @@
178182
"other_versions": "Autres versions",
179183
"more_tagged": "{count} de plus avec tag",
180184
"all_covered": "Toutes les versions sont couvertes par les tags ci-dessus",
181-
"deprecated_title": "{version} (dépréciée)"
185+
"deprecated_title": "{version} (dépréciée)",
186+
"view_all": "Voir la version | Voir les {count} versions"
182187
},
183188
"dependencies": {
184189
"title": "Dépendances ({count})",
185190
"list_label": "Dépendances du paquet",
186191
"show_all": "afficher les {count} dépendances",
187192
"optional": "optionnelle",
188-
"view_vulnerabilities": "Voir les vulnérabilités"
193+
"view_vulnerabilities": "Voir les vulnérabilités",
194+
"outdated_major": "{count} version majeure en retard (dernière : {latest}) | {count} versions majeures en retard (dernière : {latest})",
195+
"outdated_minor": "{count} version mineure en retard (dernière : {latest}) | {count} versions mineures en retard (dernière : {latest})",
196+
"outdated_patch": "Mise à jour patch disponible (dernière : {latest})"
189197
},
190198
"peer_dependencies": {
191199
"title": "Dépendances peer ({count})",
@@ -246,7 +254,8 @@
246254
"no_esm": "Pas de support des ES Modules",
247255
"types_included": "Types inclus",
248256
"types_available": "Types disponibles via {package}",
249-
"no_types": "Pas de types TypeScript"
257+
"no_types": "Pas de types TypeScript",
258+
"types_label": "Types"
250259
},
251260
"license": {
252261
"view_spdx": "Voir le texte de la licence sur SPDX"
@@ -321,13 +330,25 @@
321330
"maintainers": "Mainteneurs",
322331
"keywords": "Mots-clés",
323332
"versions": "Versions",
324-
"dependencies": "Dépendances"
333+
"dependencies": "Dépendances",
334+
"get_started": "Commencer"
325335
},
326336
"sort": {
327337
"downloads": "Plus téléchargés",
328338
"updated": "Récemment mis à jour",
329339
"name_asc": "Nom (A-Z)",
330340
"name_desc": "Nom (Z-A)"
341+
},
342+
"copy_name": "Copier le nom du paquet",
343+
"replacement": {
344+
"title": "Vous n'avez peut-être pas besoin de cette dépendance.",
345+
"native": "Ceci peut être remplacé par {replacement}, disponible depuis Node {nodeVersion}.",
346+
"simple": "La {community} a signalé ce paquet comme redondant, avec ce conseil : {replacement}.",
347+
"documented": "La {community} a signalé que ce paquet a des alternatives plus performantes.",
348+
"none": "Ce paquet a été signalé comme n'étant plus nécessaire, et sa fonctionnalité est probablement disponible nativement dans tous les moteurs.",
349+
"learn_more": "En savoir plus",
350+
"mdn": "MDN",
351+
"community": "communauté"
331352
}
332353
},
333354
"connector": {
@@ -357,7 +378,8 @@
357378
"warning": "ATTENTION",
358379
"warning_text": "Cela permet à npmx d'accéder à votre CLI npm. Ne vous connectez qu'aux sites de confiance.",
359380
"connect": "Connecter",
360-
"connecting": "Connexion..."
381+
"connecting": "Connexion...",
382+
"connected_as_user": "Connecté·e en tant que ~{user}"
361383
}
362384
},
363385
"operations": {
@@ -731,5 +753,36 @@
731753
"empty": "Aucune organisation trouvée",
732754
"view_all": "Tout voir"
733755
}
756+
},
757+
"version": "Version",
758+
"built_at": "compilé {0}",
759+
"alt_logo": "Logo npmx",
760+
"account_menu": {
761+
"connect": "connexion",
762+
"account": "Compte",
763+
"npm_cli": "npm CLI",
764+
"atmosphere": "Atmosphère",
765+
"npm_cli_desc": "Gérer les paquets et orgs",
766+
"atmosphere_desc": "Fonctionnalités sociales et identité",
767+
"connect_npm_cli": "Connexion à npm CLI",
768+
"connect_atmosphere": "Connexion à Atmosphère",
769+
"connecting": "Connexion en cours...",
770+
"ops": "{count} op | {count} ops",
771+
"disconnect": "Déconnexion"
772+
},
773+
"auth": {
774+
"modal": {
775+
"title": "Atmosphère",
776+
"connected_as": "Connecté·e en tant que {'@'}{handle}",
777+
"disconnect": "Déconnexion",
778+
"connect_prompt": "Connectez-vous avec votre compte Atmosphère",
779+
"handle_label": "Identifiant",
780+
"handle_placeholder": "alice.npmx.social",
781+
"connect": "Connexion",
782+
"create_account": "Créer un nouveau compte",
783+
"connect_bluesky": "Connexion avec Bluesky",
784+
"what_is_atmosphere": "Qu'est-ce qu'un compte Atmosphère ?",
785+
"atmosphere_explanation": "{npmx} utilise {atproto} pour alimenter plusieurs de ses fonctionnalités sociales, permettant aux utilisateurs de posséder leurs données et d'utiliser un seul compte pour toutes les applications compatibles. Une fois votre compte créé, vous pouvez utiliser d'autres applications comme {bluesky} ou {tangled} avec le même compte."
786+
}
734787
}
735788
}

lunaria/files/fr-FR.json

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,11 @@
124124
"vulns": "Vulnérabilités",
125125
"updated": "Mis à jour",
126126
"view_dependency_graph": "Voir le graphe de dépendances",
127-
"inspect_dependency_tree": "Inspecter l'arbre de dépendances"
127+
"inspect_dependency_tree": "Inspecter l'arbre de dépendances",
128+
"size_tooltip": {
129+
"unpacked": "{size} taille décompressée (ce paquet)",
130+
"total": "{size} taille totale décompressée (incluant les {count} dépendances pour linux-x64)"
131+
}
128132
},
129133
"links": {
130134
"repo": "dépôt",
@@ -178,14 +182,18 @@
178182
"other_versions": "Autres versions",
179183
"more_tagged": "{count} de plus avec tag",
180184
"all_covered": "Toutes les versions sont couvertes par les tags ci-dessus",
181-
"deprecated_title": "{version} (dépréciée)"
185+
"deprecated_title": "{version} (dépréciée)",
186+
"view_all": "Voir la version | Voir les {count} versions"
182187
},
183188
"dependencies": {
184189
"title": "Dépendances ({count})",
185190
"list_label": "Dépendances du paquet",
186191
"show_all": "afficher les {count} dépendances",
187192
"optional": "optionnelle",
188-
"view_vulnerabilities": "Voir les vulnérabilités"
193+
"view_vulnerabilities": "Voir les vulnérabilités",
194+
"outdated_major": "{count} version majeure en retard (dernière : {latest}) | {count} versions majeures en retard (dernière : {latest})",
195+
"outdated_minor": "{count} version mineure en retard (dernière : {latest}) | {count} versions mineures en retard (dernière : {latest})",
196+
"outdated_patch": "Mise à jour patch disponible (dernière : {latest})"
189197
},
190198
"peer_dependencies": {
191199
"title": "Dépendances peer ({count})",
@@ -246,7 +254,8 @@
246254
"no_esm": "Pas de support des ES Modules",
247255
"types_included": "Types inclus",
248256
"types_available": "Types disponibles via {package}",
249-
"no_types": "Pas de types TypeScript"
257+
"no_types": "Pas de types TypeScript",
258+
"types_label": "Types"
250259
},
251260
"license": {
252261
"view_spdx": "Voir le texte de la licence sur SPDX"
@@ -321,13 +330,25 @@
321330
"maintainers": "Mainteneurs",
322331
"keywords": "Mots-clés",
323332
"versions": "Versions",
324-
"dependencies": "Dépendances"
333+
"dependencies": "Dépendances",
334+
"get_started": "Commencer"
325335
},
326336
"sort": {
327337
"downloads": "Plus téléchargés",
328338
"updated": "Récemment mis à jour",
329339
"name_asc": "Nom (A-Z)",
330340
"name_desc": "Nom (Z-A)"
341+
},
342+
"copy_name": "Copier le nom du paquet",
343+
"replacement": {
344+
"title": "Vous n'avez peut-être pas besoin de cette dépendance.",
345+
"native": "Ceci peut être remplacé par {replacement}, disponible depuis Node {nodeVersion}.",
346+
"simple": "La {community} a signalé ce paquet comme redondant, avec ce conseil : {replacement}.",
347+
"documented": "La {community} a signalé que ce paquet a des alternatives plus performantes.",
348+
"none": "Ce paquet a été signalé comme n'étant plus nécessaire, et sa fonctionnalité est probablement disponible nativement dans tous les moteurs.",
349+
"learn_more": "En savoir plus",
350+
"mdn": "MDN",
351+
"community": "communauté"
331352
}
332353
},
333354
"connector": {
@@ -357,7 +378,8 @@
357378
"warning": "ATTENTION",
358379
"warning_text": "Cela permet à npmx d'accéder à votre CLI npm. Ne vous connectez qu'aux sites de confiance.",
359380
"connect": "Connecter",
360-
"connecting": "Connexion..."
381+
"connecting": "Connexion...",
382+
"connected_as_user": "Connecté·e en tant que ~{user}"
361383
}
362384
},
363385
"operations": {
@@ -731,5 +753,36 @@
731753
"empty": "Aucune organisation trouvée",
732754
"view_all": "Tout voir"
733755
}
756+
},
757+
"version": "Version",
758+
"built_at": "compilé {0}",
759+
"alt_logo": "Logo npmx",
760+
"account_menu": {
761+
"connect": "connexion",
762+
"account": "Compte",
763+
"npm_cli": "npm CLI",
764+
"atmosphere": "Atmosphère",
765+
"npm_cli_desc": "Gérer les paquets et orgs",
766+
"atmosphere_desc": "Fonctionnalités sociales et identité",
767+
"connect_npm_cli": "Connexion à npm CLI",
768+
"connect_atmosphere": "Connexion à Atmosphère",
769+
"connecting": "Connexion en cours...",
770+
"ops": "{count} op | {count} ops",
771+
"disconnect": "Déconnexion"
772+
},
773+
"auth": {
774+
"modal": {
775+
"title": "Atmosphère",
776+
"connected_as": "Connecté·e en tant que {'@'}{handle}",
777+
"disconnect": "Déconnexion",
778+
"connect_prompt": "Connectez-vous avec votre compte Atmosphère",
779+
"handle_label": "Identifiant",
780+
"handle_placeholder": "alice.npmx.social",
781+
"connect": "Connexion",
782+
"create_account": "Créer un nouveau compte",
783+
"connect_bluesky": "Connexion avec Bluesky",
784+
"what_is_atmosphere": "Qu'est-ce qu'un compte Atmosphère ?",
785+
"atmosphere_explanation": "{npmx} utilise {atproto} pour alimenter plusieurs de ses fonctionnalités sociales, permettant aux utilisateurs de posséder leurs données et d'utiliser un seul compte pour toutes les applications compatibles. Une fois votre compte créé, vous pouvez utiliser d'autres applications comme {bluesky} ou {tangled} avec le même compte."
786+
}
734787
}
735788
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"dev": "nuxt dev",
1616
"dev:docs": "pnpm run --filter npmx-docs dev --port=3001",
1717
"i18n:check": "node --experimental-transform-types scripts/compare-translations.ts",
18+
"i18n:check:fix": "node --experimental-transform-types scripts/compare-translations.ts --fix",
1819
"knip": "knip",
1920
"knip:fix": "knip --fix",
2021
"knip:production": "knip --production",

0 commit comments

Comments
 (0)