i18n(vehicle-create): +19 translations, wrap fuel/class options with I18n::opts

- Fuel select was passing raw strings ('Diesel', 'Hybrid', 'EV', 'Electric'
  hardcoded); rewrote as DB-key => RO-label pairs run through I18n::opts
- vehicle_class select now uses I18n::opts(PricingCoefficient::VEHICLE_CLASSES)
- +19 RU/EN entries: section titles (Identificare, Tehnice), field labels
  (Marca, Kilometraj, Clasă…), helper texts, vehicle-class enum values
  (Compact/SUV/Van/Commercial/Premium/Sport/Camion/Cabrio/Motocicletă),
  fuel enum values (Motorină/Hibrid/Electric/GPL/GNC), auto-generated
  headline keys (Fuel/Engine/Gearbox/Color).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-16 07:08:13 +00:00
parent 38e9426d47
commit f6364176ff
3 changed files with 42 additions and 19 deletions
+17 -6
View File
@@ -95,7 +95,7 @@
"Adaugă furnizor": "Add supplier",
"Adaugă header": "Add header",
"Adaugă imagine": "Add image",
"Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.",
"Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Add vehicles manually or import from CSV. Use VIN search for quick decode and auto-fill of brand/model/year.",
"Adaugă notă": "Add note",
"Adaugă piese manual, sau folosește Achiziții ca să le adaugi prin recepție de la furnizor (cu prețuri și stoc auto). Procentaj poate seta automat prețul de vânzare.": "Adaugă piese manual, sau folosește Achiziții ca să le adaugi prin recepție de la furnizor (cu prețuri și stoc auto). Procentaj poate seta automat prețul de vânzare.",
"Adaugă piesele care se montează de obicei la această manoperă — se adaugă automat în fișă când selectezi manopera.": "Adaugă piesele care se montează de obicei la această manoperă — se adaugă automat în fișă când selectezi manopera.",
@@ -273,6 +273,7 @@
"CRM Programări ": "CRM Appointments ",
"CSV": "CSV",
"CVT": "CVT",
"Cabrio": "Convertible",
"Cabriolet": "Convertible",
"Calcul": "Calcul",
"Calcul.": "Quote",
@@ -281,6 +282,7 @@
"Calculează luna curentă": "Calculate current month",
"Calendar": "Calendar",
"Calendar vizual": "Visual calendar",
"Camion": "Truck",
"Canal marketing": "Marketing channel",
"Cancel": "Cancel",
"Cant.": "Qty",
@@ -384,6 +386,7 @@
"Comision piese": "Comision piese",
"Comment": "Comment",
"Comments": "Comments",
"Compact": "Compact",
"Companie": "Company",
"Companie & plan": "Companie & plan",
"Companie creată: {$result['company']->name}": "Company created: {$result['company']->name}",
@@ -640,6 +643,7 @@
"End": "End",
"Endpoint webhook: https://service.mir.md/payments/stripe/webhook": "Endpoint webhook: https://service.mir.md/payments/stripe/webhook",
"Endpoints disponibile:": "Endpoints disponibile:",
"Engine": "Engine",
"Eroare": "Error",
"Eroare la recepție": "Receiving error",
"Etape": "Stages",
@@ -715,7 +719,7 @@
"Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.": "Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.",
"Folosit dacă markup = 0.": "Used when markup = 0.",
"Folosit ultima dată": "Last used",
"Folosită de coeficienții de preț. Hibrid/EV se deduc și din combustibil.": "Folosită de coeficienții de preț. Hibrid/EV se deduc și din combustibil.",
"Folosită de coeficienții de preț. Hibrid/EV se deduc și din combustibil.": "Used by pricing coefficients. Hybrid/EV are also inferred from fuel type.",
"Force delete": "Force delete",
"Force logout": "Force logout",
"Format:": "Format:",
@@ -752,6 +756,7 @@
"Gata": "Ready",
"Gata de ridicare": "Ready for pickup",
"Gata estimat (ETA)": "Gata estimat (ETA)",
"Gearbox": "Gearbox",
"Gemini API Key": "Gemini API Key",
"General": "General",
"Generat automat": "Auto-generated",
@@ -842,7 +847,7 @@
"Jurnal": "Audit log",
"KPI mecanici": "Mechanics KPI",
"Kanban": "Kanban",
"Kilometraj": "Kilometraj",
"Kilometraj": "Mileage",
"Km": "km",
"Km curent": "Current mileage",
"Km ieșire": "Km out",
@@ -940,7 +945,7 @@
"Manopere": "Labor lines",
"Manoperă": "Labor",
"Manuală": "Manual",
"Marca": "Marca",
"Marca": "Make",
"Marca/Model": "Marca/Model",
"Marca/Model:": "Marca/Model:",
"Marchează Gata": "Mark ready",
@@ -1019,6 +1024,7 @@
"Monedă platformă": "Platform currency",
"Monovolum": "Minivan",
"Motiv": "Reason",
"Motocicletă": "Motorcycle",
"Motor": "Engine",
"Motor / Frâne / Electrică ...": "Engine / Brakes / Electrical ...",
"Motorină": "Diesel",
@@ -1291,6 +1297,7 @@
"Pre-completat automat la programări noi pe acest pod.": "Pre-completat automat la programări noi pe acest pod.",
"Precedent": "Previous",
"Prefix facturi": "Prefix facturi",
"Premium": "Premium",
"Prenume": "First name",
"Preview": "Preview",
"Preview PDF": "Preview PDF",
@@ -1417,7 +1424,7 @@
"Recomandate": "Recommended",
"Recomandă": "Recommend",
"Recomandări": "Recommendations",
"Recomandări AI": "Recomandări AI",
"Recomandări AI": "AI recommendations",
"Recomandări — clienți de urmărit": "Recomandări — clienți de urmărit",
"Redeschide fișa": "Reopen order",
"Ref.": "Ref.",
@@ -1492,6 +1499,7 @@
"Răspuns": "Responded",
"Răspuns AI ne-parsabil ca JSON.": "Răspuns AI ne-parsabil ca JSON.",
"SMS": "SMS",
"SUV": "SUV",
"Salarii": "Salaries",
"Salariu & comisioane": "Salariu & comisioane",
"Salariu & marjă": "Salary & margin",
@@ -1532,6 +1540,7 @@
"Secret semnătură": "Signature secret",
"Secunde": "Seconds",
"Securitate": "Security",
"Sedan": "Sedan",
"Select all": "Select all",
"Selectat": "Selected",
"Selectate": "Selected",
@@ -1600,6 +1609,7 @@
"Specialitate": "Specialitate",
"Specializare": "Specialization",
"Specificații": "Specificații",
"Sport": "Sport",
"Spune-i sistemului ce reprezintă fiecare coloană din fișier. Vom salva configurația pentru imporțările viitoare.": "Spune-i sistemului ce reprezintă fiecare coloană din fișier. Vom salva configurația pentru imporțările viitoare.",
"Standard": "Standard",
"Stare": "Stare",
@@ -1673,7 +1683,7 @@
"Tasks": "Tasks",
"Taxă depozitare": "Storage fee",
"Taxă livrare": "Delivery fee",
"Tehnice": "Tehnice",
"Tehnice": "Technical",
"Tehnicieni": "Technicians",
"Telefon": "Phone",
"Telefon alternativ": "Alt. phone",
@@ -1836,6 +1846,7 @@
"Va recalcula sell_price pentru TOATE piesele active. Continui?": "Va recalcula sell_price pentru TOATE piesele active. Continui?",
"Val.": "Val.",
"Valoare": "Valoare",
"Van": "Van",
"Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}": "Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}",
"Vară": "Summer",
"Vat": "VAT",
+19 -8
View File
@@ -95,7 +95,7 @@
"Adaugă furnizor": "Добавить поставщика",
"Adaugă header": "Добавить заголовок",
"Adaugă imagine": "Добавить изображение",
"Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.",
"Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Добавляйте авто вручную или импортируйте из CSV. Используйте поиск VIN для быстрого декодера и авто-заполнения марка/модель/год.",
"Adaugă notă": "Добавить заметку",
"Adaugă piese manual, sau folosește Achiziții ca să le adaugi prin recepție de la furnizor (cu prețuri și stoc auto). Procentaj poate seta automat prețul de vânzare.": "Adaugă piese manual, sau folosește Achiziții ca să le adaugi prin recepție de la furnizor (cu prețuri și stoc auto). Procentaj poate seta automat prețul de vânzare.",
"Adaugă piesele care se montează de obicei la această manoperă — se adaugă automat în fișă când selectezi manopera.": "Adaugă piesele care se montează de obicei la această manoperă — se adaugă automat în fișă când selectezi manopera.",
@@ -273,6 +273,7 @@
"CRM Programări ": "CRM Записи ",
"CSV": "CSV",
"CVT": "CVT",
"Cabrio": "Кабриолет",
"Cabriolet": "Кабриолет",
"Calcul": "Calcul",
"Calcul.": "Расчёт",
@@ -281,6 +282,7 @@
"Calculează luna curentă": "Рассчитать текущий месяц",
"Calendar": "Календарь",
"Calendar vizual": "Визуальный календарь",
"Camion": "Грузовик",
"Canal marketing": "Канал маркетинга",
"Cancel": "Отмена",
"Cant.": "Кол-во",
@@ -384,6 +386,7 @@
"Comision piese": "Comision piese",
"Comment": "Комментарий",
"Comments": "Комментарии",
"Compact": "Компактный",
"Companie": "Компания",
"Companie & plan": "Companie & plan",
"Companie creată: {$result['company']->name}": "Компания создана: {$result['company']->name}",
@@ -525,7 +528,7 @@
"Debit": "Дебет",
"Deblochează": "Разблокировать",
"Decembrie": "Декабрь",
"Decode VIN": "Decode VIN",
"Decode VIN": "Декодировать VIN",
"Decodează": "Декодировать",
"Deconectare": "Отключение",
"Delete": "Удалить",
@@ -640,6 +643,7 @@
"End": "Конец",
"Endpoint webhook: https://service.mir.md/payments/stripe/webhook": "Endpoint webhook: https://service.mir.md/payments/stripe/webhook",
"Endpoints disponibile:": "Endpoints disponibile:",
"Engine": "Двигатель",
"Eroare": "Ошибка",
"Eroare la recepție": "Ошибка при приёмке",
"Etape": "Этапы",
@@ -715,7 +719,7 @@
"Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.": "Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.",
"Folosit dacă markup = 0.": "Используется если наценка = 0.",
"Folosit ultima dată": "Последнее использование",
"Folosită de coeficienții de preț. Hibrid/EV se deduc și din combustibil.": "Folosită de coeficienții de preț. Hibrid/EV se deduc și din combustibil.",
"Folosită de coeficienții de preț. Hibrid/EV se deduc și din combustibil.": "Используется ценовыми коэффициентами. Гибрид/EV определяются также по топливу.",
"Force delete": "Удалить безвозвратно",
"Force logout": "Выйти со всех устройств",
"Format:": "Format:",
@@ -752,6 +756,7 @@
"Gata": "Готов",
"Gata de ridicare": "Готов к выдаче",
"Gata estimat (ETA)": "Gata estimat (ETA)",
"Gearbox": "КПП",
"Gemini API Key": "Gemini API Key",
"General": "Общее",
"Generat automat": "Генерируется автоматически",
@@ -842,7 +847,7 @@
"Jurnal": "Журнал",
"KPI mecanici": "KPI механиков",
"Kanban": "Канбан",
"Kilometraj": "Kilometraj",
"Kilometraj": "Пробег",
"Km": "км",
"Km curent": "Текущий пробег",
"Km ieșire": "Пробег выход",
@@ -940,7 +945,7 @@
"Manopere": "Работы",
"Manoperă": "Работа",
"Manuală": "Ручная",
"Marca": "Marca",
"Marca": "Марка",
"Marca/Model": "Marca/Model",
"Marca/Model:": "Marca/Model:",
"Marchează Gata": "Отметить готово",
@@ -1019,6 +1024,7 @@
"Monedă platformă": "Валюта платформы",
"Monovolum": "Минивэн",
"Motiv": "Причина",
"Motocicletă": "Мотоцикл",
"Motor": "Двигатель",
"Motor / Frâne / Electrică ...": "Двигатель / Тормоза / Электрика ...",
"Motorină": "Дизель",
@@ -1059,7 +1065,7 @@
"Nicio lucrare de caroserie": "Nicio lucrare de caroserie",
"Nicio lucrare la terți": "Нет работ у субподрядчиков",
"Nicio manoperă efectuată.": "Работы не выполнены.",
"Nicio mașină încă": "Пока нет автомобилей",
"Nicio mașină încă": "Пока нет авто",
"Nicio metodă de plată configurată. Contactează operatorul.": "Способ оплаты не настроен. Свяжитесь с оператором.",
"Nicio piesă implicită": "Нет запчастей по умолчанию",
"Nicio piesă montată.": "Запчасти не установлены.",
@@ -1291,6 +1297,7 @@
"Pre-completat automat la programări noi pe acest pod.": "Pre-completat automat la programări noi pe acest pod.",
"Precedent": "Предыдущий",
"Prefix facturi": "Prefix facturi",
"Premium": "Премиум",
"Prenume": "Имя",
"Preview": "Предпросмотр",
"Preview PDF": "Предпросмотр PDF",
@@ -1417,7 +1424,7 @@
"Recomandate": "Рекомендуемые",
"Recomandă": "Рекомендуется",
"Recomandări": "Рекомендации",
"Recomandări AI": "Recomandări AI",
"Recomandări AI": "AI-рекомендации",
"Recomandări — clienți de urmărit": "Recomandări — clienți de urmărit",
"Redeschide fișa": "Переоткрыть наряд",
"Ref.": "Реф.",
@@ -1492,6 +1499,7 @@
"Răspuns": "Отвечено",
"Răspuns AI ne-parsabil ca JSON.": "Răspuns AI ne-parsabil ca JSON.",
"SMS": "SMS",
"SUV": "SUV",
"Salarii": "Зарплаты",
"Salariu & comisioane": "Salariu & comisioane",
"Salariu & marjă": "Зарплата и маржа",
@@ -1532,6 +1540,7 @@
"Secret semnătură": "Секрет подписи",
"Secunde": "Секунды",
"Securitate": "Безопасность",
"Sedan": "Седан",
"Select all": "Выбрать все",
"Selectat": "Выбрано",
"Selectate": "Выбранные",
@@ -1600,6 +1609,7 @@
"Specialitate": "Specialitate",
"Specializare": "Специализация",
"Specificații": "Specificații",
"Sport": "Спорт",
"Spune-i sistemului ce reprezintă fiecare coloană din fișier. Vom salva configurația pentru imporțările viitoare.": "Spune-i sistemului ce reprezintă fiecare coloană din fișier. Vom salva configurația pentru imporțările viitoare.",
"Standard": "Стандартно",
"Stare": "Stare",
@@ -1673,7 +1683,7 @@
"Tasks": "Задачи",
"Taxă depozitare": "Плата за хранение",
"Taxă livrare": "Плата за доставку",
"Tehnice": "Tehnice",
"Tehnice": "Технические",
"Tehnicieni": "Техники",
"Telefon": "Телефон",
"Telefon alternativ": "Доп. телефон",
@@ -1836,6 +1846,7 @@
"Va recalcula sell_price pentru TOATE piesele active. Continui?": "Va recalcula sell_price pentru TOATE piesele active. Continui?",
"Val.": "Val.",
"Valoare": "Valoare",
"Van": "Фургон",
"Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}": "Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}",
"Vară": "Лето",
"Vat": "НДС",