name, description a slug sú JSON mapy podľa jazykov, ktoré spravuje trait Concerns\HasTranslations priamo v balíku — bez externej závislosti. Čítanie vráti hodnotu aktívneho jazyka, potom fallback_locale a nakoniec akúkoľvek uloženú hodnotu:
$ad->setTranslation('name', 'de', 'Vintage Fahrrad')->save();
app()->setLocale('de');
$ad->name; // "Vintage Fahrrad"
$ad->getTranslation('name', 'en'); // "Vintage Bike"
$ad->getTranslations('name'); // ['en' => 'Vintage Bike', 'de' => 'Vintage Fahrrad']Priradenie obyčajného reťazca ($ad->name = 'Bike') ho uloží pod aktuálny jazyk, takže jednojazyčný kód funguje ďalej. Ak hodnotu nemá ani aktívny, ani záložný jazyk, použije sa jazyk, ktorý je v abecednom poradí prvý — s rovnakým výsledkom na PostgreSQL, MySQL aj SQLite.
Celé API
$ad->setTranslations('description', ['en' => 'Lightly used.', 'sk' => 'Málo používaný.'])->save();
$ad->hasTranslation('name', 'sk'); // bool — exact locale, no fallback
$ad->forgetTranslation('name', 'de')->save();
$ad->name = 'Road bike'; // stored under the active locale only- getTranslation($attribute, ?$locale) — jeden jazyk so záložným reťazcom.
- getTranslations($attribute) — celá mapa jazyk => hodnota.
- setTranslation() / setTranslations() — zapíše jeden jazyk alebo nahradí celú mapu; obe sa dajú reťaziť.
- forgetTranslation() — odstráni jeden jazyk.
- hasTranslation($attribute, ?$locale) — či má presne tento jazyk hodnotu.
Umiestnenia a kategórie prekladajú svoj názov rovnako. Nový jazyk v názve reklamy dostane aj vlastný slug (pozri Slugy a routovanie).
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.