{ZF2] Zend translation : plusieurs fichiers de traductions

Par défaut, Zend Framework 2 (ZF2 pour les intimes) nous empêche d’utiliser plusieurs fichiers de traduction. Je ne sais pas trop pourquoi, je n’ai pas poussé mes recherches très loin, mais voici une solution simple et efficaces pour gérer plusieurs fichiers de traductions (et ainsi être mieux organisé). Cette astuce n’est valable que pour les fichiers de traduction de Array en PHP.

Sur mon site j’ai l’architecture suivante pour mes fichiers de traductions :

/data
———– /language

———————— / fr_FR

—————————————-/ message.php

—————————————-/ Zend_Validate.php

—————————————-/ Zend_captcah.php

———————— / en_GB

—————————————-/ message.php

—————————————-/ Zend_Validate.php

—————————————-/ Zend_captcah.php

Voici ce que nous aurions aimer faire dans notre module.config.php

Mais seul le 1er fichier est pris en compte. Nos autres fichier sont alors inutiles. Une solution serait de réunir toutes les traductions en un seul fichier. Mais niveau organisation et maintenance, c’est vraiment laborieux…

La solution est de créer un fichier qui va fusionner vos fichiers de traduction. J’ai créé le fichier data/language/fr_FR/all_trad.php

Le fichier est plutôt simple, on récupère tous nos tableaux de traductions php et ensuite nous les fusionnons à l’aide de array_merge. Pour finir on retourne le tableau fusionné. L’utilisation de __DIR__ nous permet de récupérer le répertoire courant et ainsi de ne pas préciser la langue courante.

Notre code présent dans module.config.php devient alors :

 

Hé voilà ça fonctionne ! Vous n’avez plus qu’à copier ce fichier pour toutes vos langues, vous pourrez alors bien organiser vos fichiers.

 

 

 

Ajouter un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *