i18n(markup-rules): +11 translations + wrap key label & categories

Wrapped the dynamic Select 'key' label (Brand/Categorie) with __(),
switched the category options to I18n::opts(). Notification 'Recalculat
preț pentru N piese' now uses __(:n) placeholder.

+11 keys: regulă, reguli markup, Cheie, Mai mic = aplicat primul.,
'Va recalcula sell_price…' confirm text, notification, 'Interval preț'
enum, and missing Part.CATEGORIES (Ulei, Filtre, Lichide, Distribuție).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-16 20:55:13 +00:00
parent 00fb4a304a
commit 2985c38d93
3 changed files with 21 additions and 13 deletions
@@ -60,10 +60,10 @@ class MarkupRuleResource extends Resource
->required() ->required()
->live(), ->live(),
Forms\Components\Select::make('key') Forms\Components\Select::make('key')
->label(fn (Get $get) => $get('type') === 'brand' ? 'Brand' : 'Categorie') ->label(fn (Get $get) => $get('type') === 'brand' ? __('Brand') : __('Categorie'))
->options(fn (Get $get) => $get('type') === 'brand' ->options(fn (Get $get) => $get('type') === 'brand'
? Part::distinct()->pluck('brand', 'brand')->filter()->toArray() ? Part::distinct()->pluck('brand', 'brand')->filter()->toArray()
: array_combine(Part::CATEGORIES, Part::CATEGORIES)) : \App\Support\I18n::opts(array_combine(Part::CATEGORIES, Part::CATEGORIES)))
->visible(fn (Get $get) => in_array($get('type'), ['category', 'brand'], true)) ->visible(fn (Get $get) => in_array($get('type'), ['category', 'brand'], true))
->searchable() ->searchable()
->required(fn (Get $get) => in_array($get('type'), ['category', 'brand'], true)), ->required(fn (Get $get) => in_array($get('type'), ['category', 'brand'], true)),
@@ -127,7 +127,7 @@ class MarkupRuleResource extends Resource
$count++; $count++;
} }
}); });
Notification::make()->title("Recalculat preț pentru {$count} piese")->success()->send(); Notification::make()->title(__('Recalculat preț pentru :n piese', ['n' => $count]))->success()->send();
}), }),
]) ])
->actions([ ->actions([
+9 -5
View File
@@ -330,7 +330,7 @@
"Check-in depozit": "Check-in depozit", "Check-in depozit": "Check-in depozit",
"Checksum (ISO)": "Checksum (ISO)", "Checksum (ISO)": "Checksum (ISO)",
"Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.": "Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.", "Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.": "Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.",
"Cheie": "Cheie", "Cheie": "Key",
"Cheltuială": "Expense", "Cheltuială": "Expense",
"Cheltuieli": "Expenses", "Cheltuieli": "Expenses",
"Cheltuieli (luna)": "Expenses (month)", "Cheltuieli (luna)": "Expenses (month)",
@@ -612,6 +612,7 @@
"Discount": "Discount", "Discount": "Discount",
"Discount %": "Discount %", "Discount %": "Discount %",
"Distribuie": "Distribute", "Distribuie": "Distribute",
"Distribuție": "Timing",
"Doar active": "Active only", "Doar active": "Active only",
"Doar arhivate": "Archived only", "Doar arhivate": "Archived only",
"Doar clienți VIP": "VIP clients only", "Doar clienți VIP": "VIP clients only",
@@ -857,6 +858,7 @@
"Interval": "Interval", "Interval": "Interval",
"Interval dată": "Date range", "Interval dată": "Date range",
"Interval orar": "Time range", "Interval orar": "Time range",
"Interval preț": "Price range",
"Intrare": "Incoming", "Intrare": "Incoming",
"Intrat": "Received", "Intrat": "Received",
"Inventar": "Inventory", "Inventar": "Inventory",
@@ -908,6 +910,7 @@
"Legendă": "Legend", "Legendă": "Legend",
"Legendă:": "Legend:", "Legendă:": "Legend:",
"Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.": "Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.", "Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.": "Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.",
"Lichide": "Fluids",
"Limbă": "Language", "Limbă": "Language",
"Limbă default": "Default language", "Limbă default": "Default language",
"Limite": "Limite", "Limite": "Limite",
@@ -970,7 +973,7 @@
"Magazin activ": "Magazin activ", "Magazin activ": "Magazin activ",
"Magazin online": "Online shop", "Magazin online": "Online shop",
"Mai": "May", "Mai": "May",
"Mai mic = aplicat primul.": "Mai mic = aplicat primul.", "Mai mic = aplicat primul.": "Lower = applied first.",
"Maistru": "Master", "Maistru": "Master",
"Maistru / Mecanic": "Master / Mechanic", "Maistru / Mecanic": "Master / Mechanic",
"Maistru / Recepție:": "Master / Reception:", "Maistru / Recepție:": "Master / Reception:",
@@ -1456,6 +1459,7 @@
"Ready at": "Ready at", "Ready at": "Ready at",
"Real ore": "Real hours", "Real ore": "Real hours",
"Reason": "Reason", "Reason": "Reason",
"Recalculat preț pentru :n piese": "Price recalculated for :n parts",
"Recalculat preț pentru {$count} piese": "Recalculat preț pentru {$count} piese", "Recalculat preț pentru {$count} piese": "Recalculat preț pentru {$count} piese",
"Recalculează": "Recalculate", "Recalculează": "Recalculate",
"Received at": "Received at", "Received at": "Received at",
@@ -1901,7 +1905,7 @@
"Va deconecta utilizatorul pe toate device-urile.": "Va deconecta utilizatorul pe toate device-urile.", "Va deconecta utilizatorul pe toate device-urile.": "Va deconecta utilizatorul pe toate device-urile.",
"Va fi adăugată în Cerere nouă": "Will be added to \"New lead\"", "Va fi adăugată în Cerere nouă": "Will be added to \"New lead\"",
"Va fi pre-completat când creezi o programare pentru acest pod": "Va fi pre-completat când creezi o programare pentru acest pod", "Va fi pre-completat când creezi o programare pentru acest pod": "Va fi pre-completat când creezi o programare pentru acest pod",
"Va recalcula sell_price pentru TOATE piesele active. Continui?": "Va recalcula sell_price pentru TOATE piesele active. Continui?", "Va recalcula sell_price pentru TOATE piesele active. Continui?": "Will recalculate sell_price for ALL active parts. Continue?",
"Val.": "Curr.", "Val.": "Curr.",
"Valoare": "Valoare", "Valoare": "Valoare",
"Van": "Van", "Van": "Van",
@@ -2199,8 +2203,8 @@
"programări neconfirmate &lt; 24h": "unconfirmed appointments < 24h", "programări neconfirmate &lt; 24h": "unconfirmed appointments < 24h",
"rata confirmare": "confirmation rate", "rata confirmare": "confirmation rate",
"referral": "Referral", "referral": "Referral",
"reguli markup": "reguli markup", "reguli markup": "markup rules",
"regulă": "regulă", "regulă": "rule",
"rol": "role", "rol": "role",
"roluri": "roles", "roluri": "roles",
"salarii": "salaries", "salarii": "salaries",
+9 -5
View File
@@ -330,7 +330,7 @@
"Check-in depozit": "Check-in depozit", "Check-in depozit": "Check-in depozit",
"Checksum (ISO)": "Checksum (ISO)", "Checksum (ISO)": "Checksum (ISO)",
"Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.": "Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.", "Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.": "Cheia HMAC pentru semnarea cererilor + verificarea webhook-urilor de la Paynet.",
"Cheie": "Cheie", "Cheie": "Ключ",
"Cheltuială": "Расход", "Cheltuială": "Расход",
"Cheltuieli": "Расходы", "Cheltuieli": "Расходы",
"Cheltuieli (luna)": "Расходы (месяц)", "Cheltuieli (luna)": "Расходы (месяц)",
@@ -612,6 +612,7 @@
"Discount": "Скидка", "Discount": "Скидка",
"Discount %": "Скидка %", "Discount %": "Скидка %",
"Distribuie": "Распределить", "Distribuie": "Распределить",
"Distribuție": "ГРМ",
"Doar active": "Только активные", "Doar active": "Только активные",
"Doar arhivate": "Только архивные", "Doar arhivate": "Только архивные",
"Doar clienți VIP": "Только VIP клиенты", "Doar clienți VIP": "Только VIP клиенты",
@@ -857,6 +858,7 @@
"Interval": "Интервал", "Interval": "Интервал",
"Interval dată": "Диапазон дат", "Interval dată": "Диапазон дат",
"Interval orar": "Часовой интервал", "Interval orar": "Часовой интервал",
"Interval preț": "Диапазон цены",
"Intrare": "Входящий", "Intrare": "Входящий",
"Intrat": "Принято", "Intrat": "Принято",
"Inventar": "Инвентаризация", "Inventar": "Инвентаризация",
@@ -908,6 +910,7 @@
"Legendă": "Легенда", "Legendă": "Легенда",
"Legendă:": "Легенда:", "Legendă:": "Легенда:",
"Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.": "Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.", "Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.": "Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.",
"Lichide": "Жидкости",
"Limbă": "Язык", "Limbă": "Язык",
"Limbă default": "Язык по умолчанию", "Limbă default": "Язык по умолчанию",
"Limite": "Limite", "Limite": "Limite",
@@ -970,7 +973,7 @@
"Magazin activ": "Magazin activ", "Magazin activ": "Magazin activ",
"Magazin online": "Онлайн-магазин", "Magazin online": "Онлайн-магазин",
"Mai": "Май", "Mai": "Май",
"Mai mic = aplicat primul.": "Mai mic = aplicat primul.", "Mai mic = aplicat primul.": "Меньше = применяется первым.",
"Maistru": "Мастер", "Maistru": "Мастер",
"Maistru / Mecanic": "Мастер / Механик", "Maistru / Mecanic": "Мастер / Механик",
"Maistru / Recepție:": "Мастер / Ресепшн:", "Maistru / Recepție:": "Мастер / Ресепшн:",
@@ -1456,6 +1459,7 @@
"Ready at": "Готов", "Ready at": "Готов",
"Real ore": "Факт часов", "Real ore": "Факт часов",
"Reason": "Причина", "Reason": "Причина",
"Recalculat preț pentru :n piese": "Цена пересчитана для :n запчастей",
"Recalculat preț pentru {$count} piese": "Recalculat preț pentru {$count} piese", "Recalculat preț pentru {$count} piese": "Recalculat preț pentru {$count} piese",
"Recalculează": "Пересчитать", "Recalculează": "Пересчитать",
"Received at": "Принято", "Received at": "Принято",
@@ -1901,7 +1905,7 @@
"Va deconecta utilizatorul pe toate device-urile.": "Va deconecta utilizatorul pe toate device-urile.", "Va deconecta utilizatorul pe toate device-urile.": "Va deconecta utilizatorul pe toate device-urile.",
"Va fi adăugată în Cerere nouă": "Будет добавлена в «Новая заявка»", "Va fi adăugată în Cerere nouă": "Будет добавлена в «Новая заявка»",
"Va fi pre-completat când creezi o programare pentru acest pod": "Va fi pre-completat când creezi o programare pentru acest pod", "Va fi pre-completat când creezi o programare pentru acest pod": "Va fi pre-completat când creezi o programare pentru acest pod",
"Va recalcula sell_price pentru TOATE piesele active. Continui?": "Va recalcula sell_price pentru TOATE piesele active. Continui?", "Va recalcula sell_price pentru TOATE piesele active. Continui?": "Пересчитает sell_price для ВСЕХ активных запчастей. Продолжить?",
"Val.": "Вал.", "Val.": "Вал.",
"Valoare": "Valoare", "Valoare": "Valoare",
"Van": "Фургон", "Van": "Фургон",
@@ -2199,8 +2203,8 @@
"programări neconfirmate &lt; 24h": "неподтверждённые записи < 24ч", "programări neconfirmate &lt; 24h": "неподтверждённые записи < 24ч",
"rata confirmare": "коэф. подтверждения", "rata confirmare": "коэф. подтверждения",
"referral": "Рекомендация", "referral": "Рекомендация",
"reguli markup": "reguli markup", "reguli markup": "правила наценки",
"regulă": "regulă", "regulă": "правило",
"rol": "роль", "rol": "роль",
"roluri": "роли", "roluri": "роли",
"salarii": "зарплаты", "salarii": "зарплаты",