🌐 Add full i18n system frontend + API (Story 1.3)

Nuxt i18n with lazy-loaded JSON files, localized routes, hreflang SEO tags,
LanguageSwitcher component. Laravel SetLocale middleware, HasTranslations trait,
API Resources and Controllers for projects/skills with Accept-Language support.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-05 18:17:44 +01:00
parent bba6128236
commit 262242c7df
20 changed files with 472 additions and 77 deletions

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Traits;
use App\Models\Translation;
trait HasTranslations
{
public function getTranslated(string $keyField, ?string $lang = null): ?string
{
$lang = $lang ?? request()->attributes->get('locale', 'fr');
$key = $this->{$keyField};
if (!$key) {
return null;
}
return Translation::getTranslation($key, $lang);
}
}