Documentations

Traduction

Il y a actuellement trois axes de traduction possibles dans Voila, la traduction dans les contrôleurs, la traduction dans les vues avec twig, et la traduction des urls. Pour faciliter tout cela, un script a été créé pour automatiser la recherche des textes à traduire et générer les fichiers correspondants.

La traduction chez les contrôleurs

Pour traduire une chaîne dans le contrôleur, il suffit d'appeler la fonction de traduction déjà incluse dans le contrôleur.

$this->translate("Hello world")

Traduction en vues

Pour traduire une chaîne de caractères dans une vue, il suffit d'appeler la fonction de traduction déjà incluse dans twig.

{{ translate('Bonjour le monde') }}

Générer des fichiers de traduction

Before you want to translate your site, you need to "add" the languages ​​in the configuration file (/config/config.php) and add the locale you want to support (here the 'fr')

define('TRANSLATE', true);
define('DEFAULT_LANG', 'en');
define('LANGS', ['en', 'fr']);

Ensuite, vous devez générer les fichiers de traduction. Pour ce faire, vous devez exécuter la commande suivante dans le terminal

$ php bin/tranlate.php

Et si vous voulez générer une locale spécifique, vous pouvez la passer en paramètre (ici pour la locale 'fr')

$ php bin/tranlate.php fr

Once the files are generated, you can translate the texts in the files in the translation folder (in "/translation/").

les fichiers de traduction sont des fichiers json (JavaScript Object Notation), c'est un tableau qui est transformé en une chaîne de caractères qui peut donc être placée dans un fichier. Comme dans un tableau associatif, la clé est la valeur à traduire, s'il ne trouve pas de traduction, voila renverra la clé qu'il a reçue, il ne faut donc pas modifier les clés (à gauche), mais les valeurs qui leur sont associées (à droite).

Traduction d'urls

Pour traduire les urls, il faut générer les fichiers de traduction (voir ci-dessus), dans le dossier translation, il doit y avoir un fichier routeLO.json (avec LO remplacé par la locale). Comme pour les autres fichiers, vous pouvez remplacer les données du tableau par vos traductions (à gauche, ce qui doit être traduit, donc ne pas toucher, à droite ce qui sera rendu dans la locale, à traduire).

As this is a table transformed into a string, some characters must be "disabled" with the '\' sign, notably the '\/' sign. For example, the Route "/Error" in French will be written as "\/Error" in the translation file.

"\/Error": "\/fr\/Error",

La traduction ne doit pas modifier le premier paramètre qui représente la locale, donc vous ne devez traduire que ce qui se trouve derrière. Bien entendu, il s'agit d'URL, qui ne doivent donc pas contenir de caractères spéciaux, d'espaces ou d'accents.

"\/Error": "\/fr\/Erreur",