# Dil ve Locale

Starter kit, çeviri yönetimi için Laravel'in `lang/` yapısını kullanır ve frontend tarafında `laravel-vue-i18n` ile bu çevirileri Vue bileşenlerine taşır. Böylece backend ve frontend aynı çeviri kaynağını paylaşır.

## Temel Akış

- çeviri dosyaları `lang/` altında tutulur
- backend tarafında `__()` ile kullanılabilir
- Vue tarafında `$t()` veya ilgili yardımcılarla erişilir
- aktif arayüz dili uzun ömürlü bir cookie'de saklanır (logout'tan sonra da kalıcı; eski session anahtarı yalnızca fallback olarak okunur)
- izin verilen diller ayarlar katmanından gelir

## Vue ve PHP Kullanımı

Vue içinde:

```vue
<template>
    <h1>{{ $t('sk-user.title') }}</h1>
</template>
```

PHP içinde:

```php
__('sk-user.title');
```

## Locale Değiştirme

Arayüz dili değiştirme işlemi public helper route üzerinden yapılır:

| Method | Yol | Route adı | Amaç |
| --- | --- | --- | --- |
| `POST` | `/locale` | `locale.update` | Aktif arayüz dilini günceller (uzun ömürlü cookie) |

Controller tarafında gelen locale değeri, yalnızca aktif diller listesinde varsa kabul edilir; ardından forever cookie'ye yazılır (logout'ta da kalıcı — session sign-out'ta flush'lanır) ve kullanıcı önceki sayfaya döner. `SetLocale` her istekte bu cookie'yi okur; eski kurulumlar için legacy session anahtarına fallback yapar.

## Aktif Diller Nereden Gelir?

Aktif locale listesi uygulama ayarlarından beslenir. Ayarlar katmanı ve servis sağlayıcılar, arayüzde hangi dillerin kullanılabilir olduğunu belirler. Bu nedenle dil değiştirici yalnızca aktif olarak tanımlanmış locale değerlerini kabul eder.

## Build Davranışı

Çeviri dosyaları build sürecinde istemci tarafının tüketebileceği formata dönüştürülür. İstemci tarafta sadece aktif locale lazy-load edilir; bu da gereksiz çeviri yükünü azaltır.

## Çok Dilli Alanlarla İlişki

Projede bazı admin formları locale bazlı girişler de alabilir. Örneğin rol görüntü adları, mevcut locale listesine göre ayrı alanlar halinde render edilebilir. Bu nedenle locale konfigürasyonu sadece dil değiştirme için değil, çok dilli yönetim ekranları için de önemlidir.

## İlgili Dokümanlar

- [auth.tr.md](https://starter-kit.lvntr.dev/tr/docs/auth)
- [settings.tr.md](https://starter-kit.lvntr.dev/tr/docs/settings)
- [project-documentation.tr.md](https://starter-kit.lvntr.dev/tr/docs/project-documentation)
