Traductions
Les traductions démultiplient l’impact que Elgg peut avoir en le rendant accessible à un plus grand pourcentage du monde.
La communauté sera toujours reconnaissante à ceux qui travaillent dur pour fournir des traductions de haute qualité pour l’UI et la documentation de Elgg.
Transifex
Toutes les traductions pour le projet Elgg sont gérées avec Transifex.
https://www.transifex.com/organization/elgg
Les auteurs de plugins sont encouragés à coordonner les traductions via Transifex également, de sorte que la communauté entière puisse être unie, et que cela facilite la possibilité pour les traducteurs de contribuer à la traduction de n’importe quel plugin dans l’écosystème Elgg.
Récupérez les traductions
Les traductions faites dans Transifex ont besoin d’être récupérées périodiquement dans le dépôt de code de Elgg. Ceci peut être effectué avec le script .scripts/languages.php
inclus dans le code source de Elgg.
- Les pré-requis pour exécuter le script sont :
Accès à la ligne de commande
- Le script va effectuer les étapes suivantes :
Créez une nouvelle branche git nommée
{branch}_i18n_{timestamp}
Récupérez les traductions pour toutes les langues qui ont au moins 95% des chaînes traduites
Retirez les éventuels codes de langue invalides
Commitez les modifications vers la branche
Après cela, faites un push de la branche vers Github et faites une nouvelle Pull Request.
Par exemple, si vous voulez récupérer les traductions pour la branche 3.x
, exécutez les commandes suivantes :
php .scripts/languages.php 3.x
git push -u your_fork 3.x_i18n_1515151617
Exécutez la commande sans paramètre pour obtenir des informations plus détaillées sur son utilisation.
Configuration Transifex
La configuration pour Transifex se trouve dans le code source de Elgg dans le fichier .tx/config
.
- Ce fichier définit :
Le projet Transifex associé avec la version majeure de Elgg
L’emplacement des tous les fichiers qui ont du contenu traduisible
Lisez la documentation Transifex pour plus d’information.
Nouvelle version majeure de Elgg
Chaque version majeure de Elgg doit disposer de son propre projet dans Transifex. De cette manière nous pouvons nous assurer que les chaînes ajoutées et retirées entre les versions ne créent pas de conflit les unes avec les autres. Par exemple une clef de traduction retirée dans Elgg 4 ne devrait pas être retirée des traductions faites pour Elgg 3. De même, une nouvelle chaîne ajoutée seulement pour Elgg 4 ne devrait pas être incluses dans les traductions prévues pour Elgg 3.
Le processus pour mettre en place une nouvelle version majeure est le suivant :
Récupérez les dernières traductions depuis Transifex vers la précédente version majeure
Fusionnez la branche git de la version précédente vers la nouvelle afin de s’assurer que toutes les dernières clefs de traduction sont présentes
Créez un nouveau projet Transifex sur https://app.transifex.com/elgg/
Mettez à jour le fichier
.tx/config
dans la branche de développement de la nouvelle version majeure
Mettez à jour la configuration pour pointer vers le nouveau projet Transifex
Retirez la configuration des plugins retirés
Ajoutez la configuration des nouveaux plugins
Poussez les sources de traduction vers le nouveau projet Transifex avec la commande :
tx push -sCopiez le nouveau fichier de configuration temporairement (sans commit) vers la version majeure précédente, et poussez les traductions existantes depuis là vers le nouveau projet :
tx push -t -f --no-interactive
Plus tard, une fois que la branche dédiée (par exemple 3.x
) a été créée pour la version majeure, configurez Transifex pour qu’il y récupère automatiquement les nouvelles clés de traduction depuis https://app.transifex.com/elgg/elgg-core- 3/content/. De cette façon, vous n’avez pas à répéter manuellement l’étape 5 chaque fois que de nouvelles clés de traduction sont ajoutées.
Il est important de toujours avoir une branche n.x
en plus des branches créées pour des versions mineures spécifiques (n.1
, n.2
, etc.). De cette manière les URLs des sources automatiquement mises à jour n’ont pas besoin d’être mises à jour à chaque fois qu’une nouvelle branche mineure est créée.