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

Preložiteľné atribúty sú JSON stĺpce s mapou jazyk => hodnota, ktoré spracúva vlastný concern balíka HasTranslatableAttributes — bez knižnice tretej strany. Na príspevku sú to title, slug, perex, content, meta_title a meta_description; na kategóriách a tagoch name a slug.

Zápis prekladov

use RoundlyConsulting\Posts\Facades\Posts;

$post = Posts::draft()
    ->title('en', 'Hello world')
    ->title('sk', 'Ahoj svet')
    ->content('en', '<p>…</p>')
    ->by($user)                      // polymorphic author
    ->save();

// Plain Eloquent works too — edit translations on the model and save:
$post->setTranslation('perex', 'en', 'A short intro');
$post->save();

Builder ukladá cez Posts::create(); setTranslation() vráti model, ale neukladá ho — save() zavolajte sami. Slugy sa pri uložení vygenerujú z nadpisu pre každý jazyk (pozrite Slugy).

Čítanie prekladov

$post->getTranslation('title', 'sk');          // 'Ahoj svet' (with fallback)
$post->getTranslation('title', 'de', false);   // '' — exact locale, no fallback
$post->getTranslations('title');               // ['en' => 'Hello world', 'sk' => 'Ahoj svet']

$post->translate('title');                     // current-locale value, with fallback
$post->translate('title', 'sk');               // a given locale, with fallback
$post->title;                                  // same as translate('title')

$post->isTranslatableAttribute('title');       // true
$post->translatableAttributes();               // ['title', 'slug', 'perex', 'content', 'meta_title', 'meta_description']

Poradie záložných jazykov

Čítanie so záložným jazykom skúša v tomto poradí:

  • požadovaný jazyk;
  • záložný jazyk — prvý nastavený z translatable.fallback_locale (ak je nakonfigurovaný translatable-for-laravel), posts.locales.fallback a app.fallback_locale; prázdna hodnota sa považuje za nenastavenú a prejde sa na ďalší;
  • abecedne prvý jazyk, ktorý má hodnotu — stabilná voľba nezávislá od poradia kľúčov, v akom databáza vráti JSON.

Priamy prístup k atribútu ($post->title) prechádza týmto reťazcom, pokiaľ model pre daný kľúč nedefinuje accessor alebo mutator. Ak chcete čítať presne jeden jazyk, odovzdajte getTranslation() ako tretí argument false; pri chýbajúcom jazyku vráti ''.

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.