2023-02-13 16:58:06 +00:00
+++
title="Traduction"
description="Traduire le plugin"
weight=20
chapter=false
+++
2023-06-09 16:31:48 +00:00
Vous pouvez contribuer à la traduction de ce plugin Peertube.
Les traductions sont gérées par le logiciel [Weblate ](https://weblate.org/ ),
via [l'instance Weblate de Framasoft ](https://weblate.framasoft.org/ ).
2023-02-13 16:58:06 +00:00
2023-06-09 16:31:48 +00:00
{{% notice warning %}}
Ne modifiez jamais directement les fichiers dans le dossier `languages` du plugin,
vous risqueriez de créer des conflits.
2023-03-07 13:14:19 +00:00
{{% /notice %}}
2023-06-09 16:31:48 +00:00
## Comment faire
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
* Créez-vous un compte: https://weblate.framasoft.org/accounts/register/
* Validez votre email en cliquant sur le lien reçu
* Choisissez votre mot de passe, et configurez votre compte
* Allez sur le projet du plugin de tchat: https://weblate.framasoft.org/projects/peertube-livechat/peertube-plugin-livechat/
* Choisissez la langue que vous voulez traduire
* Il ne vous reste plus qu'à ajouter les traductions manquantes, ou corriger celles qui vous semblent erronées.
2023-02-13 16:58:06 +00:00
2023-06-09 16:31:48 +00:00
{{% notice warning %}}
Il peut y avoir des chaînes «assez techniques».
Si vous n'êtes pas sûr⋅e à 100% du sens, ou de la traduction,
il vaut mieux ne pas la traduire du tout ;
ainsi la version anglaise s'affichera.
{{% /notice %}}
2023-02-13 16:58:06 +00:00
2023-06-09 16:31:48 +00:00
## Traduction de la documentation
2023-02-13 16:58:06 +00:00
2023-06-09 16:31:48 +00:00
Pour l'instant, cela n'est pas encore géré dans Weblate. Je suis encore à la recherche de la bonne
solution technique.
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
Voir la page de documentation dédiée à la documentation.
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
## Ajout d'une nouvelle langue
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
Si la langue qui vous intéresse n'est pas présente, assurez-vous d'abord qu'elle est bien supportée par Peertube.
Si c'est le cas, vous pouvez [ouvrir un ticket ](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues )
pour en demander l'ajout.
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
## Ajout de nouveau segment / utilisation dans le code
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
Si vous travaillez sur une nouvelle fonctionnalité, et que vous avez besoin de nouveaux segments,
créez les directement dans Weblate.
La version anglaise est obligatoire, commencez par celle-ci.
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
Chaque segment est lié à une clé (par exemple `use_chat` ).
2023-06-12 17:26:28 +00:00
Choisissez une clé en anglais, suffisamment explicite, et en minuscule.
2023-02-15 13:44:03 +00:00
2023-06-09 16:31:48 +00:00
Si vous avez besoin de tester vos localisations sans attendre la fusion venant de Weblate,
vous pouvez modifier les fichiers `languages/*.yml` , mais évitez de les commit
(pour minimiser le risque de conflits).
2023-06-12 17:26:28 +00:00
### Utiliser un segment dans le code front-end
Avant d'utiliser une chaîne en front-end, il faut déclarer une nouvelle constante dans `client/@types/global.d.ts` .
La constante doit :
* commencer par le préfixe "LOC_"
* utiliser la clé de la chaîne, en majuscule
* vous ne devez déclarer que son type, pas sa valeur
Par exemple, pour utiliser "use_chat", vous devez déclarer :
e, to use "use_chat", you have to declare:
```typescript
declare const LOC_USE_CHAT: string
```
Le script `build-client.js` va lire ce fichier `client/@types/global.d.ts` , chercher pour de telles constantes, et charger leurs valeurs depuis le fichier de langue.
Vous pouvez maintenant utiliser `peertubeHelpers.translate(LOC_USE_CHAT)` dans votre code.
### Utiliser un segment dans le code back-end
2023-07-05 10:10:27 +00:00
En théorie, les seules parties du code qui ont besoin de traductions sont les déclarations de paramètres et la génération de données standardisées (ActivityPub, RSS, ...).
2023-06-12 17:26:28 +00:00
Ici on a besoin de récupérer les chaînes anglaises à partir des clés de traduction.
Note: vous ne devriez jamais avoir besoin d'autres langues que l'anglais pour le code backend.
Les traductions doivent se faire coté front-end.
Il y a un module `lib/loc.ts` qui fourni une function `loc()` .
Passez juste la clé pour récupérer la phrase anglaise: `loc('diagnostic')` .