Utiliser plusieurs fichiers de traduction dans EzPublish
Suite à pas mal d'occupation externe à ce blog, je n'ai pas eu le temps de me consacrer à l'écriture d'un billet pour vous, cher lecteur qui me suivez de plus en plus.
Durant cette période de non écriture, j'ai été confronté à un problème lors de développement d'un site web pour le compte de mon entreprise.
Mon problème
J'ai un site multilingue ayant 2 types de langages :
- Un langage général avec des informations simples telles que "Lire la suite", "Le saviez vous", ...
- Un langage technique avec des informations propre au site web, au domaine d'application du client, ...
Ma démarche
Après quelques tweets lancé, j'ai posté mon problème sur le site communautaire EzPublish (share.ez.no).
En quelques minutes, j'ai eu des réponses pertinentes avec 2 solutions qui se détachaient.
Les solutions
Solution n°1 : Diviser le fichier translation.ts
La solution la plus simple, présentée par Paul Leclercq est de diviser mon fichier translation.ts en plusieurs contextes comme suit :
<context> <name>technical/my_template</name> <message> <source>technical-French</source> <translation>Français Technique</translation> </message> </context> <context> <name>general/my_template</name> <message> <source>French</source> <translation>Français</translation> </message> </context>
Et d'appeler cette traduction en changeant le contexte, par exemple :
{"technical-French"|i18n('technical/my_template')}
et
{"French"|i18n('general/my_template')}
Solution n°2 : Utiliser une extension
La seconde solution proposée par Kevin Gaudin est d'utiliser une extension que l'on appellera dans le fichier site.ini.append.php du siteaccess spécifique.
Cette extension sera prioritaire au fichier de traduction de base ce qui lui permettra d'être scannée avant.
Voici la méthodologie présentée :
1. On créé une extension que l'on appelle par exemple EzTranslationTechnical
2. Dans cette extension, on créé deux dossiers : settings et translations:
- Dans le premier, on retrouvera un fichier site.ini.append.php.
- Dans le second, on retrouvera notre dossier correspondant à la langue comprenant le fichier nommé translation.ts. De ce fait, nous aurons l'arborescence suivante :
EzTranslationTechnical |-settings |--site.ini.append.php |-translations |--fre-FR@override |---translation.ts
3. Dans le fichier site.ini.append.php de l'extension EzTranslationTechnical, on note le code suivant :
<?php /* [RegionalSettings] TranslationExtensions[]=EzTranslationTechnical */ ?>
4. Dans le fichier site.ini.append.php du siteaccess général, il faut activer l'extension EzTranslationTechnical :
[ExtensionSettings] ActiveExtensions[] ActiveExtensions[]=EzTranslationTechnical
5. Dans le fichier site.ini.append.php de votre siteaccess spécifique au site, il faut changer le paramètre Locale présent dans RegionalSettings en spécifiant le dossier où se trouve le fichier de traduction technique et activer la traduction à l'aide du paramètre TextTranslation :
[RegionalSettings] Locale=fre-FR@override TextTranslation=enabled
6. Enfin, remplissez votre fichier de traduction, videz les caches et admirez le résultat.
Commentaires
Merci beaucoup pour ce tuto, ça marche nickel.
Par contre il faut préciser qu'il faut "Regénérer le tableau de chargement des classes des extensions" depuis l'interface d'admin pour que le bouzin marche