designtopack/public/site/config/routes/en-locale.php
isUnknown 82eb8d88cc 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>
2026-02-02 18:31:37 +01:00

44 lines
1.1 KiB
PHP

<?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;
}
];