Перекладні Enums

Перекладено ШІ 2 Laravel News 02 червня, 2026

Enum-типи — чудове доповнення до PHP і Laravel, яке полегшує підтримку та робить код більш зрозумілим. Дізнайтеся, як пакет Laravel Enum Translatable автоматично перекладає значення enum-типів, перетворює їх на масиви для API та легко інтегрується з Eloquent.

Enums — відмінне доповнення для PHP і Laravel. Вони покращують читабельність коду й полегшують його підтримку. Якщо ви робите багатомовний додаток, також потрібно перекладати значення Enum. Для цього існує пакет Laravel Enum Translatable від Osama Sadah.

Основні можливості

  • Підтримка перекладів: Автоматично перекладає значення Enum через систему перекладів Laravel
  • Перетворення в масив: Конвертує Enum у масиви з value і name для зручних API‑відповідей
  • Повернення як об'єкт: Дає Enum як об'єкт з value і перекладеним name
  • Кілька локалей: Працює з методами trans() та allTrans()
  • Проста інтеграція: Реалізація через trait
  • Підтримка модульності: Опційна сумісність з модульними Laravel‑додатками

Приклад

Додайте trait EnumTranslatable до свого класу Enum.

namespace App\Enums\Article;
 
use Osama\LaravelEnums\Concerns\EnumTranslatable;
 
enum ArticleStatus: string
{
    use EnumTranslatable;
 
    case DRAFT = 'draft';
    case PUBLISHED = 'published';
    case REJECTED = 'rejected';
}

Створіть файли перекладів у директорії lang вашого Laravel‑додатка. Ключ для перекладу генерується автоматично від імені класу Enum.

Наприклад, у lang/en/enums.php може бути:

return [
    'article_statuses' => [
        'draft' => 'Draft',
        'published' => 'Published',
        'rejected' => 'Rejected',
    ],
];

А у lang/es/enums.php:

return [
    'article_statuses' => [
        'draft' => 'Borrador',
        'published' => 'Publicado',
        'rejected' => 'Rechazado',
    ],
];

Щоб отримати переклад значення Enum, використайте методи trans() або allTrans():

$status = ArticleStatus::DRAFT;
 
// Get translation in current locale
$translated = $status->trans();
 
// Get translation in specific locale
$english = $status->trans('en'); // Outputs: Draft
$spanish = $status->trans('es'); // Outputs: Borrador
 
// or All translations
$allTranslations = $status->allTrans(); // Outputs: ['en' => 'Draft', 'es' => 'Borrador']

Пакет також дозволяє автоматично кастити транслювані Enum у ваших Eloquent‑моделях:

namespace App\Models;
 
use App\Enums\Article\ArticleStatus;
use Illuminate\Database\Eloquent\Model;
 
class Article extends Model
{
    //...
 
    protected function casts(): array
    {
        return [
            'status' => ArticleStatus::class,
        ];
    }
}

Дізнатись більше про пакет і переглянути код на GitHub.

Популярні

Інше, що варто прочитати

17 Оновлено 01 червня, 2026

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці

18 Оновлено 01 червня, 2026

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

173 Оновлено 01 червня, 2026

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом