Drupal 7 i18n
Gestion des traductions entre serveurs
Trucs & Astuces
 Configuration de base
 Features & Views
 Features & Drush
 Features & traductions des fields
 Biblio
1. Configuration de base
 Langue d’interface par défaut : FR
 Langue source traduction : EN => Toute la configuration doit être en EN
 Fields : label / description
 Termes de taxonomie
 Views : label, filtres exposés
 Theme : t(‘english content’)
 …
Features & Views
Features
https://drupal.org/project/features
Exporte la configuration dans le code PHP
Diff
https://drupal.org/project/diff
Visualisation des différences entre versions (node, features, etc…)
Views
https://drupal.org/project/views
…
Features & Views
ATTENTION à la langue de l’interface lors de l’exportation d’une instance de
Views avec Features : les labels d’une vue exportée sont traduits !
Instance de Views – my_view
Export Features contenant my_view - Interface EN
Export Features contenant my_view – Interface FR
Features & Views
Explications :
Il existe une traduction française de « Customized body » pour le groupe de texte
« Built-in interface » :
admin/config/regional/translate/translate
En exportant la vue contenant le label « Customized body »,
Features exporte le label traduit dans la langue courante de
l’interface (le français dans ce cas présent)
Features & Views
Moralité :
Utilisez Features dans la langue utilisée comme langue source pour la
traduction des chaînes de caractères (définie dans
admin/config/regional/i18n/strings).
admin/config/regional/i18n/strings
Features & Drush
 Configurer la langue par défaut de Drush
(<DRUPAL_ROOT>/sites/default/drushrc.php) :
$options['variables']['language_default']->language = 'en';
Doit-être identique à la langue source pour la traduction des chaînes de
caractères (admin/config/regional/i18n/strings).
 Pourquoi ? Sinon Drush opère dans la langue par défaut de l’interface. Pbs si
updade de Features avec Drush : drush features-update <feature_name>
 drushrc.php : template téléchargeable depuis
http://drush.ws/examples/example.drushrc.php
Features & traductions des fields
Comment propager les traductions des labels et descriptions des fields de
l’environnement de DEV vers ceux de TEST et de PROD ?
 Option 1 : Features + potx
 Option 2 : Field translation (i18n_field)
 Option 3 : Features translations (features_translations)
Features & traductions des fields
Option 1 – Features + potx
 Inclure les déclarations field_base et field_instance dans une Feature
<?php
/**
* @file
* basic_conf.features.field_instance.inc
*/
/**
* Implements hook_field_default_field_instances().
*/
function basic_conf_field_default_field_instances() {
$field_instances = array();
// Exported field_instance: 'node-page-body'
$field_instances['node-page-body'] = array(
'bundle' => 'page',
[…]
// Translatables
// Included for use with string extractors like potx.
t('Body');
return $field_instances;
}
Features & traductions des fields
Option 1 – Features + potx
 Extraire les chaînes traduisibles des fichiers de la feature avec potx
https://drupal.org/project/potx
Ex: Feature basic_conf.info
name = Basic conf
core = 7.x
package = Features
version = 7.x-1.01
project = basic_conf
[…] Extract potx
• 1 fichier basic_conf-7.x-1.01.fr.po
• Contient tous les labels et description
des fields déclarés dans la feature
base_conf
• Editable avec POEdit
Features & traductions des fields
Option 1 – Features + potx
 Avantages
Les traductions sont mise à jour sur TEST et PROD avec drush l10n-update
https://drupal.org/project/l10n_update
 Inconvénients
Les traductions des fields sont importées dans le Text Group « Built-in
interface ». Donc risque de doublons de traduction si le module
field_translation (i18n_field) est activé.
Features & traductions des fields
Option 2 – Field translation (i18n_field)
 [optionnellemet] Traduire tous les labels et description des fields depuis
l’interface Drupal
admin/config/regional/translate/translate
Features & traductions des fields
Option 2 – Field translation (i18n_field)
 Exporter l’ensemble des
traductions des fields dans un
fichier .po
admin/config/regional/translate/export
 [Optionnellement] Traduire /
modifier les traductions avec
POEdit
Features & traductions des fields
Option 2 – Field translation (i18n_field)
 [sur TEST / PROD] Importer les
traductions depuis le fichier .po
admin/config/regional/translate/import
Features & traductions des fields
Option 2 – Field translation (i18n_field)
 Avantages
Les traductions des labels et descriptions de fields sont importées dans le text-
group « Field » => propre
 Inconvénients
Pas de commande drush pour l’importation (à ma connaissance) => nécessite
d’aller dans l’interface d’admin de chaque intance Drupal à mettre à jour
Features & traductions des fields
Option 3 – Features translations (features_translations)
 Avantages
Les traductions des labels et descriptions de fields
sont importées dans le text-group « Field » =>
propre
Importation automatique des traductions avec un
revert sur la feature.
 Inconvénients
Pas de fichiers .po (problématique si équipe de
traducteurs)
Version 1.0-beta4 (au 22/04/2014)
Biblio
 Drupal 7 Multilingual Sites – Kristen Pol
 Gábor Hojtsy on Drupal
http://hojtsy.hu/
C’est tout pour aujourd’hui !
Aurélien Basille
aurelien@cavacave.fr

Drupal i18n & Features

  • 1.
    Drupal 7 i18n Gestiondes traductions entre serveurs Trucs & Astuces
  • 2.
     Configuration debase  Features & Views  Features & Drush  Features & traductions des fields  Biblio
  • 3.
    1. Configuration debase  Langue d’interface par défaut : FR  Langue source traduction : EN => Toute la configuration doit être en EN  Fields : label / description  Termes de taxonomie  Views : label, filtres exposés  Theme : t(‘english content’)  …
  • 4.
    Features & Views Features https://drupal.org/project/features Exportela configuration dans le code PHP Diff https://drupal.org/project/diff Visualisation des différences entre versions (node, features, etc…) Views https://drupal.org/project/views …
  • 5.
    Features & Views ATTENTIONà la langue de l’interface lors de l’exportation d’une instance de Views avec Features : les labels d’une vue exportée sont traduits ! Instance de Views – my_view Export Features contenant my_view - Interface EN Export Features contenant my_view – Interface FR
  • 6.
    Features & Views Explications: Il existe une traduction française de « Customized body » pour le groupe de texte « Built-in interface » : admin/config/regional/translate/translate En exportant la vue contenant le label « Customized body », Features exporte le label traduit dans la langue courante de l’interface (le français dans ce cas présent)
  • 7.
    Features & Views Moralité: Utilisez Features dans la langue utilisée comme langue source pour la traduction des chaînes de caractères (définie dans admin/config/regional/i18n/strings). admin/config/regional/i18n/strings
  • 8.
    Features & Drush Configurer la langue par défaut de Drush (<DRUPAL_ROOT>/sites/default/drushrc.php) : $options['variables']['language_default']->language = 'en'; Doit-être identique à la langue source pour la traduction des chaînes de caractères (admin/config/regional/i18n/strings).  Pourquoi ? Sinon Drush opère dans la langue par défaut de l’interface. Pbs si updade de Features avec Drush : drush features-update <feature_name>  drushrc.php : template téléchargeable depuis http://drush.ws/examples/example.drushrc.php
  • 9.
    Features & traductionsdes fields Comment propager les traductions des labels et descriptions des fields de l’environnement de DEV vers ceux de TEST et de PROD ?  Option 1 : Features + potx  Option 2 : Field translation (i18n_field)  Option 3 : Features translations (features_translations)
  • 10.
    Features & traductionsdes fields Option 1 – Features + potx  Inclure les déclarations field_base et field_instance dans une Feature <?php /** * @file * basic_conf.features.field_instance.inc */ /** * Implements hook_field_default_field_instances(). */ function basic_conf_field_default_field_instances() { $field_instances = array(); // Exported field_instance: 'node-page-body' $field_instances['node-page-body'] = array( 'bundle' => 'page', […] // Translatables // Included for use with string extractors like potx. t('Body'); return $field_instances; }
  • 11.
    Features & traductionsdes fields Option 1 – Features + potx  Extraire les chaînes traduisibles des fichiers de la feature avec potx https://drupal.org/project/potx Ex: Feature basic_conf.info name = Basic conf core = 7.x package = Features version = 7.x-1.01 project = basic_conf […] Extract potx • 1 fichier basic_conf-7.x-1.01.fr.po • Contient tous les labels et description des fields déclarés dans la feature base_conf • Editable avec POEdit
  • 12.
    Features & traductionsdes fields Option 1 – Features + potx  Avantages Les traductions sont mise à jour sur TEST et PROD avec drush l10n-update https://drupal.org/project/l10n_update  Inconvénients Les traductions des fields sont importées dans le Text Group « Built-in interface ». Donc risque de doublons de traduction si le module field_translation (i18n_field) est activé.
  • 13.
    Features & traductionsdes fields Option 2 – Field translation (i18n_field)  [optionnellemet] Traduire tous les labels et description des fields depuis l’interface Drupal admin/config/regional/translate/translate
  • 14.
    Features & traductionsdes fields Option 2 – Field translation (i18n_field)  Exporter l’ensemble des traductions des fields dans un fichier .po admin/config/regional/translate/export  [Optionnellement] Traduire / modifier les traductions avec POEdit
  • 15.
    Features & traductionsdes fields Option 2 – Field translation (i18n_field)  [sur TEST / PROD] Importer les traductions depuis le fichier .po admin/config/regional/translate/import
  • 16.
    Features & traductionsdes fields Option 2 – Field translation (i18n_field)  Avantages Les traductions des labels et descriptions de fields sont importées dans le text- group « Field » => propre  Inconvénients Pas de commande drush pour l’importation (à ma connaissance) => nécessite d’aller dans l’interface d’admin de chaque intance Drupal à mettre à jour
  • 17.
    Features & traductionsdes fields Option 3 – Features translations (features_translations)  Avantages Les traductions des labels et descriptions de fields sont importées dans le text-group « Field » => propre Importation automatique des traductions avec un revert sur la feature.  Inconvénients Pas de fichiers .po (problématique si équipe de traducteurs) Version 1.0-beta4 (au 22/04/2014)
  • 18.
    Biblio  Drupal 7Multilingual Sites – Kristen Pol  Gábor Hojtsy on Drupal http://hojtsy.hu/
  • 19.
    C’est tout pouraujourd’hui ! Aurélien Basille aurelien@cavacave.fr