Ils permettent de vous fournir la meilleur expérience visiteur possible.
En poursuivant la navigation sur ce site, vous acceptez l'utilisation de ces cookies.
OctoberCMS permettais autrefois de ré-écrire très simplement les règles de traduction du CMS, en créant un fichier /lang
à la racine du projet. Mais comment aujourd'hui ces modifications depuis un plugin, afin de ne pas avoir à procéder à ces changement manuellement à l'instalation du site?
Par chance il existe un évènement très utile qui permet de modifier le résultat de la traduction avant qu'il ne soit retourné à l'aplication translator.beforeResolve
.
En vous inscrivant à cet évènement depuis la fonction boot()
de votre plugin, il vous est possible de modifier absolument n'importe quel terme du cms ou d'un autre plugin, à la seule condition que ce terme soit retourné depuis un fichier lang:
use Event;
use Lang;
public function boot()
{
Event::listen('translator.beforeResolve', function ($key, $replace, $locale) {
$plugin = 'auteur.plugin'; // Remplacer par le chemin de votre plugin en respectant ce format
// Vérifier si la traduction ne proviens pas déjà de votre plugin
if (substr($key, 0, strlen($plugin)) != $plugin) {
// Construire le chemin éventuel de votre traduction
$path = $plugin . '::lang.' . str_replace('::', '.', $key);
// Rechercher une correspondance
$result = Lang::get($path);
// Si elle est trouvée, la retourner.
if ($result != $path) {
return $result;
}
}
});
}
Vous pouvez désormais modifier n'importe quelle traduction passant par le traducteur intégrer à OctoberCMS à partir d'un fichier lang intégrer dans votre plugin:
<?php return [
'rainlab' => [
'blog' => [
'lang' => [
'plugin' => [
'name' => 'Mon Blog', // rainlab.blog::lang.plugin.name retourne désormais 'My Blogs'
],
],
],
],
'backend' => [
'lang' => [
'user' => [
'menu_label' => 'Utilisateurs', // backend::lang.user.menu_label retourne désormais 'Utilisateurs'
],
],
],
];
Astuce initialement publié par Dan Harrin sur OctoberTricks
Y'a quelque chose de bizarre dans la 2e phrase:
"Mais comment aujourd'hui ces modifications depuis un plugin, afin de ne pas avoir à procéder à ces changement manuellement à l'instalation du site?"