La fonctionnalité i18n de CakePHP utilise les fichiers po comme source de traduction. Cela les rend faciles à intégrer avec des outils tels que poedit ou d’autres outils habituels de traduction.
Le Shell de i18n fournit une façon rapide et simple de générer les fichiers template po. Les fichiers templates peuvent être donnés aux traducteurs afin qu’ils traduisent les chaînes de caractères dans votre application. Une fois que votre traduction est faîte, les fichiers pot peuvent être fusionnés avec les traductions existantes pour aider la mise à jour de vos traductions.
Les fichiers POT peuvent être générés pour une application existante en
utilisant la commande extract
. Cette commande va scanner toutes les
fonctions de type __()
de l’ensemble de votre application, et extraire les
chaînes de caractères. Chaque chaîne unique dans votre application sera
combinée en un seul fichier POT:
./Console/cake i18n extract
La commande du dessus va lancer le shell d’extraction. En plus de l’extraction
des chaînes de caractères des méthodes __()
, les messages de validation des
models vont aussi être extraits. Le résultat de cette commande va être la
création du fichier app/Locale/default.pot
. Vous utilisez le fichier pot
comme un template pour créer les fichiers po. Si vous créez manuellement les
fichiers po à partir du fichier pot, pensez à bien corriger le Plural-Forms
de la ligne d’en-tête.
Vous pouvez générer un fichier POT pour un plugin spécifique en faisant:
./Console/cake i18n extract --plugin <Plugin>
Cela générera les fichiers POT requis utilisés dans les plugins.
Vous pouvez définir le domaine à utiliser pour les messages de validation
extraits dans vos models. Si le model a toujours une propriété
$validationDomain
, le domaine de validation donnée va être ignoré:
./Console/cake i18n extract --validation-domain validation_errors
Vous pouvez aussi éviter que le shell n’extraie des messages de validation:
./Console/cake i18n extract --ignore-model-validation
Vous pouvez passer une liste de dossiers séparée par une virgule que vous souhaitez exclure. Tout chemin contenant une partie de chemin avec les valeurs fournies sera ignoré:
./Console/cake i18n extract --exclude Test,Vendor
Nouveau dans la version 2.2.
En ajoutant --overwrite
, le script de shell ne va plus vous avertir si un
fichier POT existe déjà et va écraser par défaut:
./Console/cake i18n extract --overwrite
Nouveau dans la version 2.2.
Par défaut, le script de shell d’extraction va vous demander si vous souhaitez
extraire les messages utilisés dans les librairies du coeur de CakePHP.
Définissez --extract-core
à yes
ou no
pour définir le comportement
par défaut.
./Console/cake i18n extract --extract-core yes
ou
./Console/cake i18n extract --extract-core no
Le shell i18n peut aussi être utilisé pour initialiser les tables par défaut
utilisées par TranslateBehavior
:
./Console/cake i18n initdb
Cela va créer la table i18n
utilisée par le behavior Translate.