- 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>
55 lines
No EOL
1.8 KiB
PHP
55 lines
No EOL
1.8 KiB
PHP
<?php
|
|
|
|
return function ($page, $kirby, $site) {
|
|
if (!$kirby->user() && $page->uri() !== 'login') {
|
|
go('/login');
|
|
}
|
|
|
|
$data = $page->toArray();
|
|
$data['template'] = (string) $page->template();
|
|
$data['newInspirations'] = (bool) page('inspirations')->children()->findBy('new', 'true');
|
|
|
|
if ($kirby->user()) {
|
|
$userData = [
|
|
"name" => (string) $kirby->user()->name()->or(null),
|
|
"email" => (string) $kirby->user()->email(),
|
|
"role" => (string) $kirby->user()->role(),
|
|
"uuid" => (string) $kirby->user()->uuid()
|
|
];
|
|
|
|
if ($kirby->user()->client()->exists() && $kirby->user()->client()->isNotEmpty()) {
|
|
$userData['client'] = [
|
|
"name" => (string) $kirby->user()->client()->toPage()->title(),
|
|
"uuid" => (string) $kirby->user()->client()->toPage()->uuid()
|
|
];
|
|
if ($kirby->user()->client()->toPage()->logo()->isNotEmpty()) {
|
|
$userData['client']["logo"] = $kirby->user()->client()->toPage()->logo()->toFile()->url();
|
|
}
|
|
}
|
|
|
|
if ($kirby->user()->projects()->exists() && $kirby->user()->projects()->isNotEmpty()) {
|
|
$userData['projects'] = $kirby->user()->projects()->toPages()->map(function ($project) {
|
|
return [
|
|
"title" => (string) $project->title(),
|
|
"uri" => (string) $project->uri(),
|
|
"step" => (string) $project->currentStep(),
|
|
"uuid" => (string) $project->uuid(),
|
|
];
|
|
})->data;
|
|
}
|
|
|
|
if ($kirby->user()->hiddenProjects()->exists() && $kirby->user()->hiddenProjects()->isNotEmpty()) {
|
|
$userData['hiddenProjects'] = $kirby->user()->hiddenProjects()->toPages()->map(function ($project) {
|
|
return (string) $project->uuid();
|
|
})->values();
|
|
} else {
|
|
$userData['hiddenProjects'] = [];
|
|
}
|
|
}
|
|
|
|
|
|
return [
|
|
'genericData' => $data,
|
|
'userData' => $userData ?? null
|
|
];
|
|
}; |