🌐 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:
26
api/app/Http/Resources/ProjectResource.php
Normal file
26
api/app/Http/Resources/ProjectResource.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ProjectResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'slug' => $this->slug,
|
||||
'title' => $this->getTranslated('title_key'),
|
||||
'description' => $this->getTranslated('description_key'),
|
||||
'short_description' => $this->getTranslated('short_description_key'),
|
||||
'image' => $this->image,
|
||||
'url' => $this->url,
|
||||
'github_url' => $this->github_url,
|
||||
'date_completed' => $this->date_completed?->format('Y-m-d'),
|
||||
'is_featured' => $this->is_featured,
|
||||
'skills' => SkillResource::collection($this->whenLoaded('skills')),
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user