---
title: "Fallback režimy — Translatable for Laravel | Roundly"
description: "Určte, kam až čítanie prejde — len presný jazyk, záložný jazyk alebo akákoľvek hodnota — globálne alebo pre konkrétny model."
url: https://roundly-consulting.com/sk/open-source/navody/translatable-for-laravel/fallback-rezimy
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)

# Fallback režimy

Enum FallbackMode riadi každé čítanie s fallbackom — prístup cez vlastnosť, getTranslation() so zapnutým fallbackom aj serializáciu:

| Režim | Hodnota v konfigurácii | Vyhodnotenie |
| --- | --- | --- |
| `FallbackMode::None` | `none` | Len presne požadovaný jazyk — ak chýba, null. |
| `FallbackMode::Fallback` | `fallback` | Presný jazyk, potom nastavený záložný jazyk. |
| `FallbackMode::Any` | `any` | Presný jazyk, potom záložný jazyk, potom prvá dostupná hodnota — najprv podporované jazyky v ich poradí, potom ostatné uložené jazyky abecedne. Predvolený režim — obsah nikdy nezostane prázdny. |

```php
// Stored: name = {"sk": "Investovanie"}, fallback_locale = en, app locale = de

// FallbackMode::Any (default)
$topic->name;                                // 'Investovanie' — first available value

// FallbackMode::Fallback or FallbackMode::None
$topic->name;                                // null

// Regardless of the mode
$topic->getTranslation('name', 'de', false); // null — fallback switched off
$topic->translatedOrNull('name');            // null — exact app locale only
```

Posledný krok režimu Any prechádza podporované jazyky v ich poradí a potom ostatné uložené jazyky abecedne. Výber nikdy nezávisí od toho, ako databáza zoradí kľúče JSON, takže riadok sa na každej databáze aj pred a po opätovnom načítaní zobrazí v rovnakom jazyku.

## Únik obsahu medzi jazykmi pri Any

Any je predvolený, aby obsah nikdy nezostal prázdny. Daň za to: keď je prázdny požadovaný aj záložný jazyk, Any zobrazí hodnotu prvého dostupného jazyka — obsah, ktorý ste pre daný jazyk zámerne nepreložili, sa tak môže zobraziť v inom jazyku. Ak je časť obsahu pre jednotlivé jazyky viazaná právne alebo regulačne, prepnite na Fallback (alebo None) globálne cez TRANSLATABLE\_FALLBACK či konfiguráciu, alebo pre konkrétny model:

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

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

Prázdna hodnota translatable.fallback sa vyhodnotí ako Any; neznáma hodnota — v konfigurácii aj vo vlastnosti modelu $translatableFallbackMode, ktorá prijme aj reťazce none, fallback a any — vyhodí InvalidConfigurationException namiesto rozšírenia na Any. FallbackMode používa trait Helpers z enums-for-laravel, takže sú naň dostupné pomocné metódy tohto balíka.

## Vyhodnotenie surovej mapy

Translatable::resolve() použije rovnaké vyhodnotenie ako čítanie z modelu, no pre surovú mapu, ktorú máte mimo modelu — v cache, v odpovedi z API či v poli z konfigurácie. Jazyk je predvolene aktuálny, režim a záložný jazyk podľa konfigurácie. Prázdne hodnoty nikdy nevyhrajú — null, '', booleany, polia a objekty sa preskočia, int a float sa prevedú na reťazec — takže aj neupratanú mapu vyhodnotí bez výnimky:

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

$map = ['en' => 'Investing', 'sk' => 'Investovanie']; // a cached payload, an API response, a config array

app()->setLocale('sk');
Translatable::resolve($map);                          // 'Investovanie' — current locale, configured chain
Translatable::resolve($map, 'de');                    // 'Investing' — falls back to fallback_locale (en)
Translatable::resolve($map, 'de', FallbackMode::None); // null — exact locale only
Translatable::resolve($map, 'de', FallbackMode::Fallback, fallbackLocale: 'sk'); // 'Investovanie'

// A messy map resolves, it never throws:
Translatable::resolve(['en' => null, 'sk' => 'Ahoj'], 'de'); // 'Ahoj'
Translatable::resolve(['sk' => 5], 'de');                   // '5'
```

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