Implémentation complète du multilingue FR/EN
- Installation vue-i18n v11 et création des fichiers de traduction (fr.json, en.json) - Création store locale avec détection hiérarchique (URL > localStorage > navigator) - Modification des routes avec préfixe /:locale? optionnel - Toggle FR/EN dans Menu.vue avec synchronisation immédiate - Traduction de ~200 textes dans 27 composants Vue - Suppression des labels hardcodés en français côté backend - Ajout route Kirby catch-all en/(:all?) pour /en/ URLs - Helper addLocalePrefix() pour préserver locale dans liens dialogs - Traduction pseudo-élément CSS via data attribute Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
3af95b1d20
commit
82eb8d88cc
49 changed files with 1079 additions and 295 deletions
|
|
@ -28,6 +28,7 @@ return [
|
|||
'install' => 'true'
|
||||
],
|
||||
'routes' => [
|
||||
require(__DIR__ . '/routes/en-locale.php'),
|
||||
require(__DIR__ . '/routes/logout.php'),
|
||||
require(__DIR__ . '/routes/login.php'),
|
||||
require(__DIR__ . '/routes/toggle-favorite.php'),
|
||||
|
|
|
|||
44
public/site/config/routes/en-locale.php
Normal file
44
public/site/config/routes/en-locale.php
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Route catch-all pour le préfixe /en/
|
||||
* Permet d'accéder aux pages avec /en/... pour la version anglaise
|
||||
*/
|
||||
|
||||
return [
|
||||
'pattern' => 'en/(:all?)',
|
||||
'action' => function ($uri = '') {
|
||||
// Si l'URI se termine par .json, chercher la page et retourner le JSON
|
||||
if (str_ends_with($uri, '.json')) {
|
||||
$uri = str_replace('.json', '', $uri);
|
||||
$page = page($uri);
|
||||
|
||||
if (!$page) {
|
||||
// Si pas de page trouvée, essayer avec 'home'
|
||||
if ($uri === '' || $uri === '/') {
|
||||
$page = page('home');
|
||||
} else {
|
||||
return false; // 404
|
||||
}
|
||||
}
|
||||
|
||||
// Retourner la page pour que Kirby serve le template .json.php
|
||||
return $page;
|
||||
}
|
||||
|
||||
// Pour les URLs normales (sans .json), chercher la page
|
||||
$page = page($uri);
|
||||
|
||||
if (!$page) {
|
||||
// Si pas de page trouvée, essayer avec 'home'
|
||||
if ($uri === '' || $uri === '/') {
|
||||
$page = page('home');
|
||||
} else {
|
||||
return false; // 404
|
||||
}
|
||||
}
|
||||
|
||||
// Retourner la page pour que Kirby serve le template .php
|
||||
return $page;
|
||||
}
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue