Preklad popisov
readable() vyhľadáva popis upravený cez Str::headline() v prekladači Laravelu, takže práve tento reťazec je prekladovým kľúčom. Pridajte ho do JSON prekladového súboru, napríklad lang/sk.json, a všetky metódy s popismi sa budú riadiť aktívnym jazykom:
{
"Hot News": "Horúce správy",
"Regular News": "Bežné správy",
"Private News": "Súkromné správy"
}app()->setLocale('sk');
NewsCategory::HotNews->label(); // "Horúce správy"
NewsCategory::labels(); // ['Horúce správy', 'Bežné správy', 'Súkromné správy']
NewsCategory::toOptions(); // ['hot-news' => 'Horúce správy', ...]
NewsCategory::fromLabel('Horúce správy'); // NewsCategory::HotNews
NewsCategory::fromLabel('Hot News'); // throws EnumException — the active label is SlovakfromLabel() a tryFromLabel() porovnávajú s readable(), takže hľadajú popis v aktuálnom jazyku — praktické pri importe dát, ktoré zadávajú ľudia pracujúci s preloženým rozhraním.
Vlastné popisy
Ak sa popis nedá odvodiť z hodnoty — pri celočíselných enumoch, skratkách alebo pri znení odlišnom od hodnoty — prepíšte readable() priamo na enume. Metódy deklarované na enume majú prednosť pred traitom a label(), labels(), toOptions(), options() aj vyhľadávanie podľa popisu použijú vašu verziu:
use RoundlyConsulting\Enums\Helpers;
enum Priority: int
{
use Helpers;
case Low = 0;
case Medium = 5;
case High = 10;
public function readable(): string
{
return match ($this) {
self::Low => __('Low priority'),
self::Medium => __('Medium priority'),
self::High => __('High priority'),
};
}
}
Priority::Low->label(); // "Low priority"
Priority::toOptions(); // [0 => 'Low priority', 5 => 'Medium priority', 10 => 'High priority']
Priority::fromLabel('High priority'); // Priority::HighPrejavte 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.