Commencer
Obtenir voilaInitialisation
Configurer la BD
Création du CRUD
Prendre exempleMessage flash
créer un flashflash personnalisé
Brindille
utiliser twigtransfert de données
CSRF
protection csrfHTTPS
forcer le httpsTraduction
traductionDocumentations
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",