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 :
Le script va effectuer les étapes suivantes :
  1. Créez une nouvelle branche git nommée {branch}_i18n_{timestamp}

  2. Récupérez les traductions pour toutes les langues qui ont au moins 95% des chaînes traduites

  3. Retirez les éventuels codes de langue invalides

  4. 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 :

  1. Récupérez les dernières traductions depuis Transifex vers la précédente version majeure

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

  3. Créez un nouveau projet Transifex sur https://app.transifex.com/elgg/

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

  5. Poussez les sources de traduction vers le nouveau projet Transifex avec la commande :

    tx push -s
    
  6. Copiez 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.