NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Translatable for Laravel

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.

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

final class Topic extends Model implements Translatable
{
    use HasTranslations;

    /** @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:

use RoundlyConsulting\Translatable\Enums\FallbackMode;

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

Ak je vlastnosť null alebo chýba, platí hodnota z konfigurácie. Č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

Odoslaní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.