From 2985c38d93c610bd9621374a55b20ebf5c7d46bd Mon Sep 17 00:00:00 2001 From: Vasyka Date: Thu, 16 Jul 2026 20:55:13 +0000 Subject: [PATCH] i18n(markup-rules): +11 translations + wrap key label & categories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .../Tenant/Resources/MarkupRuleResource.php | 6 +++--- lang/en.json | 14 +++++++++----- lang/ru.json | 14 +++++++++----- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/Filament/Tenant/Resources/MarkupRuleResource.php b/app/Filament/Tenant/Resources/MarkupRuleResource.php index 24249ae..4fd70d6 100644 --- a/app/Filament/Tenant/Resources/MarkupRuleResource.php +++ b/app/Filament/Tenant/Resources/MarkupRuleResource.php @@ -60,10 +60,10 @@ class MarkupRuleResource extends Resource ->required() ->live(), 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' ? 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)) ->searchable() ->required(fn (Get $get) => in_array($get('type'), ['category', 'brand'], true)), @@ -127,7 +127,7 @@ class MarkupRuleResource extends Resource $count++; } }); - Notification::make()->title("Recalculat preț pentru {$count} piese")->success()->send(); + Notification::make()->title(__('Recalculat preț pentru :n piese', ['n' => $count]))->success()->send(); }), ]) ->actions([ diff --git a/lang/en.json b/lang/en.json index 4bf813b..a850136 100644 --- a/lang/en.json +++ b/lang/en.json @@ -330,7 +330,7 @@ "Check-in depozit": "Check-in depozit", "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.", - "Cheie": "Cheie", + "Cheie": "Key", "Cheltuială": "Expense", "Cheltuieli": "Expenses", "Cheltuieli (luna)": "Expenses (month)", @@ -612,6 +612,7 @@ "Discount": "Discount", "Discount %": "Discount %", "Distribuie": "Distribute", + "Distribuție": "Timing", "Doar active": "Active only", "Doar arhivate": "Archived only", "Doar clienți VIP": "VIP clients only", @@ -857,6 +858,7 @@ "Interval": "Interval", "Interval dată": "Date range", "Interval orar": "Time range", + "Interval preț": "Price range", "Intrare": "Incoming", "Intrat": "Received", "Inventar": "Inventory", @@ -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.", + "Lichide": "Fluids", "Limbă": "Language", "Limbă default": "Default language", "Limite": "Limite", @@ -970,7 +973,7 @@ "Magazin activ": "Magazin activ", "Magazin online": "Online shop", "Mai": "May", - "Mai mic = aplicat primul.": "Mai mic = aplicat primul.", + "Mai mic = aplicat primul.": "Lower = applied first.", "Maistru": "Master", "Maistru / Mecanic": "Master / Mechanic", "Maistru / Recepție:": "Master / Reception:", @@ -1456,6 +1459,7 @@ "Ready at": "Ready at", "Real ore": "Real hours", "Reason": "Reason", + "Recalculat preț pentru :n piese": "Price recalculated for :n parts", "Recalculat preț pentru {$count} piese": "Recalculat preț pentru {$count} piese", "Recalculează": "Recalculate", "Received at": "Received at", @@ -1901,7 +1905,7 @@ "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 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.", "Valoare": "Valoare", "Van": "Van", @@ -2199,8 +2203,8 @@ "programări neconfirmate < 24h": "unconfirmed appointments < 24h", "rata confirmare": "confirmation rate", "referral": "Referral", - "reguli markup": "reguli markup", - "regulă": "regulă", + "reguli markup": "markup rules", + "regulă": "rule", "rol": "role", "roluri": "roles", "salarii": "salaries", diff --git a/lang/ru.json b/lang/ru.json index 425997e..b38a879 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -330,7 +330,7 @@ "Check-in depozit": "Check-in depozit", "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.", - "Cheie": "Cheie", + "Cheie": "Ключ", "Cheltuială": "Расход", "Cheltuieli": "Расходы", "Cheltuieli (luna)": "Расходы (месяц)", @@ -612,6 +612,7 @@ "Discount": "Скидка", "Discount %": "Скидка %", "Distribuie": "Распределить", + "Distribuție": "ГРМ", "Doar active": "Только активные", "Doar arhivate": "Только архивные", "Doar clienți VIP": "Только VIP клиенты", @@ -857,6 +858,7 @@ "Interval": "Интервал", "Interval dată": "Диапазон дат", "Interval orar": "Часовой интервал", + "Interval preț": "Диапазон цены", "Intrare": "Входящий", "Intrat": "Принято", "Inventar": "Инвентаризация", @@ -908,6 +910,7 @@ "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.", + "Lichide": "Жидкости", "Limbă": "Язык", "Limbă default": "Язык по умолчанию", "Limite": "Limite", @@ -970,7 +973,7 @@ "Magazin activ": "Magazin activ", "Magazin online": "Онлайн-магазин", "Mai": "Май", - "Mai mic = aplicat primul.": "Mai mic = aplicat primul.", + "Mai mic = aplicat primul.": "Меньше = применяется первым.", "Maistru": "Мастер", "Maistru / Mecanic": "Мастер / Механик", "Maistru / Recepție:": "Мастер / Ресепшн:", @@ -1456,6 +1459,7 @@ "Ready at": "Готов", "Real ore": "Факт часов", "Reason": "Причина", + "Recalculat preț pentru :n piese": "Цена пересчитана для :n запчастей", "Recalculat preț pentru {$count} piese": "Recalculat preț pentru {$count} piese", "Recalculează": "Пересчитать", "Received at": "Принято", @@ -1901,7 +1905,7 @@ "Va deconecta utilizatorul pe toate device-urile.": "Va deconecta utilizatorul pe toate device-urile.", "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 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.": "Вал.", "Valoare": "Valoare", "Van": "Фургон", @@ -2199,8 +2203,8 @@ "programări neconfirmate < 24h": "неподтверждённые записи < 24ч", "rata confirmare": "коэф. подтверждения", "referral": "Рекомендация", - "reguli markup": "reguli markup", - "regulă": "regulă", + "reguli markup": "правила наценки", + "regulă": "правило", "rol": "роль", "roluri": "роли", "salarii": "зарплаты",