From 2956ef0167940a9a568ad7dd1a7691686cd6f380 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Thu, 3 Feb 2022 10:45:09 +0100 Subject: [PATCH] translate doc, add ES --- docs/cadrage/i18n.md | 12 +++++++----- docs/traductions.md | 20 ++++++++++++++++++++ src/app/app.module.ts | 13 +++++++++---- src/assets/i18n/FR.json | 2 +- src/environments/environment.prod.ts | 2 ++ src/environments/environment.ts | 1 + 6 files changed, 40 insertions(+), 10 deletions(-) diff --git a/docs/cadrage/i18n.md b/docs/cadrage/i18n.md index 790cec6e..ff9eb9a0 100644 --- a/docs/cadrage/i18n.md +++ b/docs/cadrage/i18n.md @@ -1,15 +1,17 @@ # Internationalisation - i18n Toutes les chaînes de texte doivent être disponible en minimum deux langues: Français et Anglais. +Pour l'ajout de nouvelles traductions voir [la documentations des traductions.md](../traductions.md) La documentation a été pensée pour être compréhensible en premier lieu par des personnes francophones, le projet étant issu de Framasoft et de personnes uniquement Francophones, nous avons jugé que c'était le moyen le plus efficace pour le faire grandir. -Voir les fichiers src/assets/i18n [EN.json](/src/assets/i18n/EN.json) et [FR.json](/src/assets/i18n/FR.json) -La traduction se base sur un système de clés-valeur. +Voir les fichiers dans le dossier **src/assets/i18n** +[EN.json](/src/assets/i18n/EN.json) et [FR.json](/src/assets/i18n/FR.json) + +La traduction se base sur un système de clés-valeur dans des fichiers JSON. Les clés sont entrées dans les templates html, et c'est la config d'Angular qui les traduit selon la langue demandée par le visiteur du site. -Chaque fichier de traduction est déclaré dans le [AppModule](../../src/app/app.module.ts) avec le module @ngx-translate. Examinez l'exemple pour rajouter votre propre traduction. - -Utilisez des sous groupes dans vos traductions afin de mieux segmenter les chaines de caractère par page et selon le sens qu'elles sous tendent. +Utilisez des sous groupes dans vos traductions afin de mieux segmenter les chaines de caractère par page et selon leur sens. +Faites en sorte de réutiliser au maximum les phrases identiques. ## Traduction de la documentation mkdocs diff --git a/docs/traductions.md b/docs/traductions.md index a76c1303..cff0fbd1 100644 --- a/docs/traductions.md +++ b/docs/traductions.md @@ -7,3 +7,23 @@ La mise en place de weblate pour faire des traductions collaboratives a été fa Vous pouvez contribuer ici https://weblate.framasoft.org/projects/funky-framadate/funky-framadate-front Nous avons récupéré les chaînes de traduction du projet Framadate v1, il faudra faire un nettoyage des clés et valeurs inutilisées dans les fichiers de traduction. +# Ajouter de nouvelles langues + +Le Weblate effectue automatiquement des Merge Request vers Framagit, si une langue est nouvelle elle proposera de créer un fichier **nom_de_la_langue.json** dans le dossier **src/assets/i18n** + +Pour que l'appli reconnaisse ces nouvelles langues il faut les enregistrer dans l'AppModule. +Chaque fichier de traduction est déclaré dans le [AppModule](../../src/app/app.module.ts) avec le module @ngx-translate. Examinez l'exemple pour rajouter votre propre traduction. + +``` typescript +import localeEn from '@angular/common/locales/en'; +import localeFr from '@angular/common/locales/fr'; + +import { CommonModule, registerLocaleData } from '@angular/common'; + +registerLocaleData(localeEn, 'en-EN'); +registerLocaleData(localeFr, 'fr-FR'); + +``` + +# prise en charges des traductions manquantes +Les textes manquants seront indiqués avec "MISSING TRANSLATION FOR" et le nom de la clé demandée par le HTML. diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 27923488..50676628 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,7 +1,6 @@ import { CommonModule, registerLocaleData } from '@angular/common'; import { HttpClient, HttpClientModule } from '@angular/common/http'; -import localeEn from '@angular/common/locales/en'; -import localeFr from '@angular/common/locales/fr'; + import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { BrowserModule, Title } from '@angular/platform-browser'; @@ -30,8 +29,14 @@ import { CipheringComponent } from './features/shared/components/ui/static-pages import { ErrorsListComponent } from './features/shared/components/ui/form/errors-list/errors-list.component'; import { KeyboardShortcutsModule } from 'ng-keyboard-shortcuts'; import { AdministrationModule } from './features/administration/administration.module'; -registerLocaleData(localeEn, 'en-EN'); + +// register languages files for translation +import localeEn from '@angular/common/locales/en'; +import localeFr from '@angular/common/locales/fr'; +import localeEs from '@angular/common/locales/es'; registerLocaleData(localeFr, 'fr-FR'); +registerLocaleData(localeEn, 'en-EN'); +registerLocaleData(localeEs, 'es-ES'); export class MyMissingTranslationHandler implements MissingTranslationHandler { public handle(params: MissingTranslationHandlerParams): string { @@ -60,7 +65,7 @@ export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader { NgxWebstorageModule.forRoot({ prefix: environment.localStorage.key }), SharedModule, TranslateModule.forRoot({ - defaultLanguage: 'FR', + defaultLanguage: environment.defaultLanguage, loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, diff --git a/src/assets/i18n/FR.json b/src/assets/i18n/FR.json index 58d685ce..fc92fe7d 100644 --- a/src/assets/i18n/FR.json +++ b/src/assets/i18n/FR.json @@ -291,7 +291,7 @@ "link_public": "Lien public", "delete_votes": "Supprimer tous les votes", "delete_comments": "Supprimer tous les commentaires", - "delete_poll": "Supprimer le sondage", + "delete_poll": "Supprimer le sondage" }, "cancel_own": { "title": "Vous allez annuler votre vote", diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index d2d5b7e5..e93f6065 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -86,4 +86,6 @@ export const environment = { key: 'FramaSondage', }, display_validation_errors: false, + propose_expire_input: false, + defaultLanguage: 'FR', }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 84f7969b..1456b094 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -48,6 +48,7 @@ export const environment = { }, display_validation_errors: false, propose_expire_input: false, + defaultLanguage: 'FR', }; // Included with Angular CLI.