translate doc, add ES

This commit is contained in:
Tykayn 2022-02-03 10:45:09 +01:00 committed by tykayn
parent c914eae60d
commit 2956ef0167
6 changed files with 40 additions and 10 deletions

View File

@ -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

View File

@ -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.

View File

@ -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,

View File

@ -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",

View File

@ -86,4 +86,6 @@ export const environment = {
key: 'FramaSondage',
},
display_validation_errors: false,
propose_expire_input: false,
defaultLanguage: 'FR',
};

View File

@ -48,6 +48,7 @@ export const environment = {
},
display_validation_errors: false,
propose_expire_input: false,
defaultLanguage: 'FR',
};
// Included with Angular CLI.