Créer le module de traduction
Publié le
Générer le module FrenchRouting
Ouvrez votre terminal, placez-vous à la racine de votre installation Thelia et saisissez la commande suivante :
La console de Thelia va générer pour vous l'ensemble des répertoires et fichiers nécessaires au bon fonctionnement de votre module.
Néanmoins, nous allons faire un peu de ménage pour l'alléger car nous n'allons pas avoir besoin de tous ce qui est généré.
En effet, vous pouvez supprimer les répertoires suivants :
- AdminIncludes
- Command
- Controller
- EventListeners
- Hook
- i18n
- Loop
- templates
Au niveau des fichiers, vous pouvez supprimer Config/schema.xml
car nous n'avons pas besoin de base de données.
Attention à bien laisser le fichier Config/config.xml
car il est obligatoire pour l'activation du module même si on ne s'en sert pas ici.
Mettez ensuite à jour le fichier Config/module.xml
avec les informations de votre module.
Voici un exemple :
<module xmlns="http://thelia.net/schema/dic/module"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://thelia.net/schema/dic/module http://thelia.net/schema/dic/module/module-2_1.xsd">
<fullnamespace>FrenchRouting\FrenchRouting</fullnamespace>
<descriptive locale="en_US">
<title>French translation of Thelia core routing.</title>
</descriptive>
<descriptive locale="fr_FR">
<title>Traduction française des urls du core de Thelia.</title>
</descriptive>
<languages>
<language>en_US</language>
<language>fr_FR</language>
</languages>
<version>1.0.0</version>
<author>
<name>Votre nom</name>
<email>email@domain.com</email>
</author>
<type>classic</type>
<thelia>2.1.0</thelia>
<stability>prod</stability>
</module>
Il ne vous reste plus qu'à vous rendre dans votre panel d'administration afin d'activer le module FrenchRouting.
Traduire les urls anglaises du core de Thelia
Pour modifier les URLs du core de Thelia, nous allons d'abord devoir les récupérer. Copiez donc le contenu intégral du fichier local/modules/Front/Config/routing.xml
dans le fichier Config/routing.xml
de votre module.
Maintenant, prenons par exemple la page d'enregistrement accessible via l'url /register
.
Voici la route actuelle correspondante :
<route id="customer.create.view" path="/register" methods="get">
<default key="_controller">Front\Controller\CustomerController::viewRegisterAction</default>
</route>
<route id="customer.create.process" path="/register" methods="post">
<default key="_controller">Front\Controller\CustomerController::createAction</default>
<default key="_view">register</default>
</route>
Il vous suffit de modifier l'id
et le path
, comme ceci par exemple :
<route id="fr.customer.create.view" path="/inscription" methods="get">
<default key="_controller">Front\Controller\CustomerController::viewRegisterAction</default>
</route>
<route id="fr.customer.create.process" path="/inscription" methods="post">
<default key="_controller">Front\Controller\CustomerController::createAction</default>
<default key="_view">register</default>
</route>
Il ne vous reste plus qu'à enregistrer et votre nouvelle URL française /inscription
sera disponible.
Si vous testez sans être sur l'environnement de développement (index_dev.php), vous ne verrez aucune modification car il faut vider le cache interne de Thelia.
Pour ce faire, rien de plus simple, soit vous utilisez la fonctionnalité présente en back-office au niveau de la configuration avancée, soit vous utilisez votre terminal comme suit :
Il vous faudra peut-être l'exécuter en sudo.
Astuce : Se mettre en index_dev.php pour éviter le cache interne de Thelia.
Maintenant que votre cache est vide, allez tester votre nouvelle URL !
Voilà, il ne vous reste plus qu'à modifier toutes les autres déclarations afin que toutes les URLs du core de Thelia soient accessible en français.
Modifier les templates pour appeler les nouvelles URLs
Pour le moment, les liens HTML ainsi que les URLs des retours des formulaires appellent toujours les URLs anglaises. Il faut donc modifier dans les templates l'appel aux URLs via {url path}
et {success_url}
pour les mettre en français.
Attention, les URLs d'origine restent accessibles si on les saisit directement dans la barre d'adresse.
À vous de voir si vous souhaitez les utiliser pour une boutique multilingue et dans ce cas, modifier les liens en fonction de la langue détectée, ou bien si vous voulez les « supprimer » (par des redirections 301).
Ajouter votre commentaire
Les commentaires