Traduction
Vous pouvez contribuer à la traduction de ce plugin Peertube. Les traductions sont gérées par le logiciel Weblate, via l’instance Weblate de Framasoft.
Ne modifiez jamais directement les fichiers dans le dossier languages
du
plugin, vous risqueriez de créer des conflits.
Comment faire
- 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.
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.
Traductions de ConverseJS
Ce plugin s’appuie sur ConverseJS pour l’affichage du tchat. ConverseJS a ses propres traductions, sur sa propre instance Weblate. Vous pouvez également traduire directement dans le dépôt de code. Pour plus d’information, veuillez vous référer à la documentation de traduction de ConverseJS.
Ajouter une nouvelle langue
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 pour en demander l’ajout.
Ajout de nouveau segment / utilisation dans le code
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.
Chaque segment est lié à une clé (par exemple use_chat
). Choisissez une
clé en anglais, suffisamment explicite, et en minuscule.
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).
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 :
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
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, …). 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')
.
Traduction de la documentation
La traduction de la documentation est faite en utilisant le composant Weblate correspondant.
Il y a un «shortcode Hugo» spécifique qui vous permet d’afficher une chaîne issue de l’application. Si vous voulez par exemple afficher le libellé du bouton «open_chat_new_window», vous pouvez utiliser le code suivant dans le fichier markdown de la documentation :
{{% livechat_label open_chat_new_window %}}
Vous pouvez également empêcher qu’une page entière ne soit traduite en
ajoutant livechatnotranslation:true
dans la section Yaml Font Matter du
fichier :
---
title: "Third party"
description: "Displaying the livechat with 3rd party software."
weight: 20
chapter: false
livechatnotranslation: true
---
Ne traduisez jamais une chaîne dans le fichier livechat.en.pot
, ce serait
ignoré. À la place, éditez directement le fichier markdown.
Si une chaîne contient un lien, vous pouvez le changer pour le lien correct dans la langue cible. Par exemple, si c’est un lien vers la documentation, vous pouvez ajouter le code langue dans l’url.
Certaines chaînes sont des blocs de code. Ne les traduisez pas. Toutefois vous pouver traduire les commentaires, ou les paramètres si c’est pertinent.
Si vous avez un doute, ne traduisez pas, et demandez plutôt quoi faire.
L’outils utilisé pour gérer les traductions de la documentation peut avoir des comportements étranges. Quand j’ajoute une phrase qui ressemble à une phrase existante, il va parfois copier les traductions. Donc quand vous avez des traductions marquées comme «à vérifier», veuillez vous assurer qu’il n’a pas copié une traduction qui n’a rien à voir avec la version anglaise avant de valider.
Si vous n’êtes pas sûr du contexte d’une chaîne de texte, vous pouvez
vérifier l’emplacement de la chaîne source dans le panneau droit de Weblate,
et ouvrir la page de documentation correspondante. Par exemple, pour une
chaîne localisée dans le fichier
support/documentation/content/en/documentation/user/streamers.md
, l’url
correspondante est
https://livingston.frama.io/peertube-plugin-livechat/documentation/user/streamers/
.
Recommandations génériques
Merci d’être inclusif⋅ve dans vos phrasés, et merci de respecter le code de conduite.