From f206d434d09b2488986e456d38e944cac3814faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D0=B4=D0=B0=D1=80?= Date: Tue, 23 Dec 2025 20:09:54 +0300 Subject: [PATCH] Create recipe translatable-field.md --- ru/recipes/translatable-field.md | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 ru/recipes/translatable-field.md diff --git a/ru/recipes/translatable-field.md b/ru/recipes/translatable-field.md new file mode 100644 index 00000000..649c9c9d --- /dev/null +++ b/ru/recipes/translatable-field.md @@ -0,0 +1,55 @@ +# Поля для нескольких языков + +Простой способ сделать любое поле поддерживающее несколько языков, без дополнительных пакетов + +Подходит для Spatie laravel-translatable или если вы как они, храните все переводу в json поле, +такого вида: `{"ru": "Текст", "en": "Text"}` + +```php +getConfig()->getLocales()); + + return Json::make($label, $column) + ->object() + ->fields( + $locales->map( + fn (string $locale) => (clone $field) + ->setLabel(\Str::upper($locale)) + ->setColumn($locale) + ) + ->all(), + ) + ->removeClass('space-elements') + ->class('flex gap-6') + ->changeFill(function (Model $data) use ($column) { + return $data->getRawOriginal($column); + }); + } +} +``` + +Использовать так + +```php +Translatable::make( + trans('admin.resource.title'), + 'title', + Text::make(), +), +```