---
title: "Prekladateľné modely — Translatable for Laravel | Roundly"
description: "Pridajte trait HasTranslations a kontrakt Translatable, vymenujte atribúty v $translatable a voliteľne prepíšte fallback pre model."
url: https://roundly-consulting.com/sk/open-source/navody/translatable-for-laravel/prekladatelne-modely
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Translatable for Laravel](https://roundly-consulting.com/sk/open-source/navody/translatable-for-laravel.md)

# Prekladateľné modely

Prekladateľné atribúty vymenujte vo verejnej vlastnosti array $translatable a implementujte kontrakt Translatable — všetky metódy poskytuje trait HasTranslations. Model nepotrebuje cast array: JSON serializáciu vymenovaných atribútov rieši trait.

```php
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Translatable\Concerns\HasTranslations;
use RoundlyConsulting\Translatable\Contracts\Translatable;

final class Topic extends Model implements Translatable
{
    use HasTranslations;

    protected $fillable = ['name', 'description'];

    /** @var list<string> */
    public array $translatable = ['name', 'description'];
}
```

- Implementujte kontrakt. Na Translatable sa odkazuje Translatable::apply() aj Blade komponent a rozširuje ProvidesLocaleMaps zo sluggable — model bez neho nemôže mať slugy podľa jazyka.
- Vymenovaným atribútom nepridávajte cast — trait číta aj zapisuje surový JSON sám.
- Hromadné priradenie funguje ako obvykle: pridajte atribúty do $fillable (alebo použite $guarded) a odovzdajte mapy jazykov, napr. Topic::create(\['name' => \['en' => 'Investing'\]\]).
- Volanie akejkoľvek prekladovej metódy alebo scopu s atribútom, ktorý nie je vymenovaný, vyhodí NotATranslatableAttributeException.

## Fallback pre konkrétny model

Globálny fallback režim a záložný jazyk prepíšete pre jeden model dvoma voliteľnými protected vlastnosťami:

```php
use RoundlyConsulting\Translatable\Enums\FallbackMode;

protected ?FallbackMode $translatableFallbackMode = FallbackMode::Fallback;
protected ?string $translatableFallbackLocale = 'en';
```

Ak je vlastnosť null, chýba alebo ide o typovanú vlastnosť bez inicializácie, platí hodnota z konfigurácie. Režim prijme aj svoju reťazcovú hodnotu (protected $translatableFallbackMode = 'none';); hodnota, ktorá nezodpovedá žiadnemu režimu, vyhodí InvalidConfigurationException z toolkitu namiesto toho, aby sa potichu použil globálny režim. Záložný jazyk sa overuje rovnako ako v konfigurácii — chybne tvarovaný kľúč vyhodí InvalidLocaleException, prázdna hodnota znamená žiadny záložný jazyk. Čo robí ktorý režim, nájdete v časti Fallback režimy.

## 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 kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/translatable-for-laravel.md)
