i18n(injector-protocol PDF): switch keys from Cyrillic to RO source + 24 dict entries

Prior version used Cyrillic strings as __() keys — RO users saw
Cyrillic text because fallback = key. Now all PDF labels use RO as
the source-language key (e.g. 'Automobil', 'Nr. înmatriculare',
'Nr. protocol:', 'INJECTOARE'). ru.json + en.json provide translations.

+24 keys covering title, all field labels, table headers, measurement
column headers, before/after subheadings, footer note, conclusion
section, signature block, unit suffixes (km, ml).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-26 11:43:16 +00:00
parent f484167b51
commit 44726adcb3
3 changed files with 87 additions and 34 deletions
+26 -2
View File
@@ -37,6 +37,7 @@
"AI: preț recomandat": "AI: recommended price",
"AI: recomandări": "AI: recommendations",
"AI: sugerează diagnostic": "AI: suggest diagnosis",
"AL INJECTOARELOR CU ELECTROVALVĂ": "OF SOLENOID INJECTORS",
"AMT (Robot)": "AMT (Robot)",
"API Tokens": "API tokens",
"AUTOCRM_001": "AUTOCRM_001",
@@ -187,7 +188,7 @@
"Ambreiaj": "Clutch",
"Amount": "Amount",
"An": "Year",
"An fabricație": "Production year",
"An fabricație": "Year",
"An model": "Model year",
"An model (estimat)": "Model year (est.)",
"Analitică": "Analytics",
@@ -266,7 +267,9 @@
"AutoCRM PSauto · psauto.service.mir.md": "AutoCRM PSauto · psauto.service.mir.md",
"AutoCRM SRL": "AutoCRM SRL",
"Automată": "Automatic",
"Automobil": "Vehicle",
"Automobile": "Vehicles",
"Autoservice / Client": "Auto service / Client",
"Autoservis / Client": "Auto service / Client",
"Avans": "Advance",
"Avans achitat": "Advance paid",
@@ -326,6 +329,8 @@
"Bună ziua": "Hello",
"Buy price": "Buy price",
"Bărbat": "Male",
"CAUZA ADRESĂRII": "REASON FOR REQUEST",
"CONCLUZIE": "CONCLUSION",
"CRM Programări ": "CRM Appointments ",
"CSV": "CSV",
"CVT": "CVT",
@@ -407,6 +412,7 @@
"Client ID": "Client ID",
"Client VIP": "VIP client",
"Client existent": "Existing client",
"Client informat (semnătură)": "Client acknowledged (signature)",
"Client informat / a luat cunoștință": "Client informed / acknowledged",
"Client legat (CRM)": "Linked client (CRM)",
"Client name": "Client name",
@@ -466,6 +472,7 @@
"Company name": "Company name",
"Complaint": "Complaint",
"Complet": "Full",
"Completați rândurile după numărul de injectoare; lăsați goale rândurile în plus.": "Fill in rows per injector count; leave extra rows empty.",
"Concediu": "Vacation",
"Condition": "Condition",
"Condiții (toate trebuie îndeplinite)": "Conditions (all must match)",
@@ -562,6 +569,7 @@
"Câmp obligatoriu": "Required field",
"Când": "When",
"Când & unde": "When & where",
"DATELE AUTOMOBILULUI ȘI CLIENTULUI": "VEHICLE AND CLIENT DATA",
"DCT": "DCT",
"DCT (Dual-Clutch)": "DCT (Dual-Clutch)",
"DENY — interzice dreptul": "DENY — deny the permission",
@@ -617,6 +625,7 @@
"Deals": "Deals",
"Debit": "Debit",
"Debit ÎNAINTE": "Flow BEFORE",
"Debit, ml": "Flow, ml",
"Deblochează": "Unblock",
"Decembrie": "December",
"Decode VIN": "Decode VIN",
@@ -764,6 +773,7 @@
"Engine": "Engine",
"Eroare": "Error",
"Eroare la recepție": "Receiving error",
"Etanșeitate": "Tightness",
"Etanșeitate ÎNAINTE": "Tightness BEFORE",
"Etape": "Stages",
"Etapă": "Stage",
@@ -921,6 +931,7 @@
"IBAN:": "IBAN:",
"ID": "ID",
"IDNO / CUI": "IDNO / CUI",
"INJECTOARE": "INJECTORS",
"ITP": "MOT",
"Ianuarie": "January",
"Iarnă": "Winter",
@@ -996,6 +1007,7 @@
"KPI mecanici": "Mechanics KPI",
"Kanban": "Kanban",
"Kilometraj": "Mileage",
"Kilometraj, km": "Mileage, km",
"Km": "km",
"Km curent": "Current mileage",
"Km ieșire": "Km out",
@@ -1092,6 +1104,7 @@
"Mai": "May",
"Mai mic = aplicat primul.": "Lower = applied first.",
"Maistru": "Master",
"Maistru (nume, semnătură)": "Master (name, signature)",
"Maistru / Mecanic": "Master / Mechanic",
"Maistru / Recepție:": "Master / Reception:",
"Make": "Make",
@@ -1198,6 +1211,7 @@
"Multiplicator": "Multiplier",
"Mulțumim": "Thank you",
"Mâine": "Tomorrow",
"MĂSURĂTORI MECANICA INJECTOARELOR": "INJECTOR MECHANICS MEASUREMENTS",
"Mărci auto suportate (separate prin virgulă)": "Supported makes (comma-separated)",
"Măsurători mecanica injectoarelor": "Injector mechanics measurements",
"Name": "Name",
@@ -1299,8 +1313,9 @@
"Nr. injectoare": "Injector count",
"Nr. poliță": "Policy no.",
"Nr. protocol": "Protocol no.",
"Nr. protocol:": "Protocol no.:",
"Nr. telefon": "Phone number",
"Nr. înmatriculare": "License plate",
"Nr. înmatriculare": "Plate number",
"Nr.:": "Nr.:",
"Nu a fost prelevată nicio sumă. Poți încerca din nou oricând.": "Nu a fost prelevată nicio sumă. Poți încerca din nou oricând.",
"Nu ai cont?": "Don't have an account?",
@@ -1392,6 +1407,7 @@
"POS": "POS",
"POST /api/v1/login": "POST /api/v1/login",
"PPF": "PPF",
"PROTOCOL DE DIAGNOSTIC ȘI CURĂȚARE": "DIAGNOSTIC AND CLEANING PROTOCOL",
"Pagina": "Page",
"Pagini": "Pages",
"Paid": "Paid",
@@ -1703,6 +1719,7 @@
"Rezervat": "Reserved",
"Rezervă o programare": "Rezervă o programare",
"Rezistență ÎNAINTE": "Resistance BEFORE",
"Rezistență, Ω": "Resistance, Ω",
"Rezultat": "Result",
"Rezultate": "Results",
"Rezumat": "Summary",
@@ -1963,9 +1980,12 @@
"Testează bot Telegram": "Test Telegram bot",
"Theme color": "Theme color",
"Time": "Time",
"Timp deschidere, ms": "Opening time, ms",
"Timp lucrat": "Time worked",
"Timp mediu": "Avg time",
"Timp total": "Total time",
"Timp închidere KZ, ms": "Closing time (KZ), ms",
"Timp închidere, ms": "Closing time, ms",
"Tinichigerie": "Body repair",
"Tinichigerie / Detailing": "Body / Detailing",
"Tip": "Type",
@@ -2253,6 +2273,7 @@
"depozit": "warehouse",
"depozite": "warehouses",
"developer.paypal.com": "developer.paypal.com",
"după": "after",
"eveniment": "event",
"ex: Iarnă Michelin": "e.g. Winter Michelin",
"ex: Mașină veche, Client VIP, Express": "e.g. Old vehicle, VIP client, Express",
@@ -2277,6 +2298,7 @@
"implicit": "default",
"instagram": "Instagram",
"jurnal": "log",
"km": "km",
"la fiecare request": "on every request",
"liber": "free",
"liber/ușor": "free/light",
@@ -2290,6 +2312,7 @@
"mașină": "vehicle",
"mediu": "medium",
"mergi la Setări → Asistent AI și adaugă cheia API (Claude / GPT / Gemini).": "go to Settings → AI Assistant and add the API key (Claude / GPT / Gemini).",
"ml": "ml",
"new": "new",
"niciodată": "never",
"norme": "labors",
@@ -2500,6 +2523,7 @@
"Înregistrează plată": "Record payment",
"Înregistrează seturile de anvelope ale clienților și gestionează depozitarea sezonieră (tire hotel). Urmărește uzura, TPMS și locația în depozit.": "Register clients' tire sets and manage seasonal storage (tire hotel). Track wear, TPMS and warehouse location.",
"Întreabă-mă orice — diagnostic, sumar, sugestii, redactare mesaje către clienți...": "Ask me anything — diagnostics, summary, suggestions, drafting client messages...",
"înainte": "before",
"Șabloane servicii": "Service templates",
"Șablon aplicat": "Template applied",
"Șablon aplicat: {$r['labor']} manopere, {$r['parts']} piese": "Șablon aplicat: {$r['labor']} manopere, {$r['parts']} piese",
+24
View File
@@ -37,6 +37,7 @@
"AI: preț recomandat": "AI: рекомендованная цена",
"AI: recomandări": "AI: рекомендации",
"AI: sugerează diagnostic": "AI: подсказать диагноз",
"AL INJECTOARELOR CU ELECTROVALVĂ": "ЭЛЕКТРОКЛАПАННЫХ ФОРСУНОК",
"AMT (Robot)": "АКПП (Робот)",
"API Tokens": "API-токены",
"AUTOCRM_001": "AUTOCRM_001",
@@ -266,7 +267,9 @@
"AutoCRM PSauto · psauto.service.mir.md": "AutoCRM PSauto · psauto.service.mir.md",
"AutoCRM SRL": "AutoCRM SRL",
"Automată": "Автоматическая",
"Automobil": "Автомобиль",
"Automobile": "Автомобили",
"Autoservice / Client": "Автосервис / Клиент",
"Autoservis / Client": "Автосервис / Клиент",
"Avans": "Аванс",
"Avans achitat": "Аванс оплачен",
@@ -326,6 +329,8 @@
"Bună ziua": "Здравствуйте",
"Buy price": "Цена закупки",
"Bărbat": "Мужской",
"CAUZA ADRESĂRII": "ПРИЧИНА ОБРАЩЕНИЯ",
"CONCLUZIE": "ЗАКЛЮЧЕНИЕ",
"CRM Programări ": "CRM Записи ",
"CSV": "CSV",
"CVT": "CVT",
@@ -407,6 +412,7 @@
"Client ID": "ID клиента",
"Client VIP": "VIP-клиент",
"Client existent": "Существующий клиент",
"Client informat (semnătură)": "Клиент ознакомлен (подпись)",
"Client informat / a luat cunoștință": "Клиент проинформирован / ознакомлен",
"Client legat (CRM)": "Привязанный клиент (CRM)",
"Client name": "Имя клиента",
@@ -466,6 +472,7 @@
"Company name": "Название компании",
"Complaint": "Жалоба",
"Complet": "Полностью",
"Completați rândurile după numărul de injectoare; lăsați goale rândurile în plus.": "Заполняйте строки по количеству форсунок; лишние строки оставьте пустыми.",
"Concediu": "Отпуск",
"Condition": "Состояние",
"Condiții (toate trebuie îndeplinite)": "Условия (все должны выполняться)",
@@ -562,6 +569,7 @@
"Câmp obligatoriu": "Обязательное поле",
"Când": "Когда",
"Când & unde": "Когда и где",
"DATELE AUTOMOBILULUI ȘI CLIENTULUI": "ДАННЫЕ АВТОМОБИЛЯ И КЛИЕНТА",
"DCT": "DCT",
"DCT (Dual-Clutch)": "DCT (Dual-Clutch)",
"DENY — interzice dreptul": "DENY — запретить право",
@@ -617,6 +625,7 @@
"Deals": "Сделки",
"Debit": "Дебет",
"Debit ÎNAINTE": "Расход ДО",
"Debit, ml": "Расход, мл",
"Deblochează": "Разблокировать",
"Decembrie": "Декабрь",
"Decode VIN": "Декодировать VIN",
@@ -764,6 +773,7 @@
"Engine": "Двигатель",
"Eroare": "Ошибка",
"Eroare la recepție": "Ошибка при приёмке",
"Etanșeitate": "Герметичность",
"Etanșeitate ÎNAINTE": "Герметичность ДО",
"Etape": "Этапы",
"Etapă": "Этап",
@@ -921,6 +931,7 @@
"IBAN:": "IBAN:",
"ID": "ID",
"IDNO / CUI": "IDNO / CUI",
"INJECTOARE": "ФОРСУНКИ",
"ITP": "ТО",
"Ianuarie": "Январь",
"Iarnă": "Зима",
@@ -996,6 +1007,7 @@
"KPI mecanici": "KPI механиков",
"Kanban": "Канбан",
"Kilometraj": "Пробег",
"Kilometraj, km": "Пробег, км",
"Km": "км",
"Km curent": "Текущий пробег",
"Km ieșire": "Пробег выход",
@@ -1092,6 +1104,7 @@
"Mai": "Май",
"Mai mic = aplicat primul.": "Меньше = применяется первым.",
"Maistru": "Мастер",
"Maistru (nume, semnătură)": "Мастер (ФИО, подпись)",
"Maistru / Mecanic": "Мастер / Механик",
"Maistru / Recepție:": "Мастер / Ресепшн:",
"Make": "Марка",
@@ -1198,6 +1211,7 @@
"Multiplicator": "Множитель",
"Mulțumim": "Спасибо",
"Mâine": "Завтра",
"MĂSURĂTORI MECANICA INJECTOARELOR": "ИЗМЕРЕНИЯ МЕХАНИКИ ФОРСУНОК",
"Mărci auto suportate (separate prin virgulă)": "Поддерживаемые марки (через запятую)",
"Măsurători mecanica injectoarelor": "Измерения механики форсунок",
"Name": "Имя",
@@ -1299,6 +1313,7 @@
"Nr. injectoare": "Кол-во форсунок",
"Nr. poliță": "№ полиса",
"Nr. protocol": "№ протокола",
"Nr. protocol:": "№ протокола:",
"Nr. telefon": "Тел. номер",
"Nr. înmatriculare": "Гос. номер",
"Nr.:": "Nr.:",
@@ -1392,6 +1407,7 @@
"POS": "POS",
"POST /api/v1/login": "POST /api/v1/login",
"PPF": "PPF",
"PROTOCOL DE DIAGNOSTIC ȘI CURĂȚARE": "ПРОТОКОЛ ДИАГНОСТИКИ И ОЧИСТКИ",
"Pagina": "Страница",
"Pagini": "Страницы",
"Paid": "Оплачено",
@@ -1703,6 +1719,7 @@
"Rezervat": "Зарезервировано",
"Rezervă o programare": "Rezervă o programare",
"Rezistență ÎNAINTE": "Сопротивление ДО",
"Rezistență, Ω": "Сопротивление, Ом",
"Rezultat": "Результат",
"Rezultate": "Результаты",
"Rezumat": "Резюме",
@@ -1963,9 +1980,12 @@
"Testează bot Telegram": "Тест Telegram-бота",
"Theme color": "Theme color",
"Time": "Время",
"Timp deschidere, ms": "Время открытия, мс",
"Timp lucrat": "Отработано",
"Timp mediu": "Среднее время",
"Timp total": "Общее время",
"Timp închidere KZ, ms": "Время закр. в КЗ, мс",
"Timp închidere, ms": "Время закрытия, мс",
"Tinichigerie": "Кузовной ремонт",
"Tinichigerie / Detailing": "Кузов / Детейлинг",
"Tip": "Тип",
@@ -2253,6 +2273,7 @@
"depozit": "склад",
"depozite": "склады",
"developer.paypal.com": "developer.paypal.com",
"după": "после",
"eveniment": "событие",
"ex: Iarnă Michelin": "например: Зима Michelin",
"ex: Mașină veche, Client VIP, Express": "например: Старое авто, VIP-клиент, Экспресс",
@@ -2277,6 +2298,7 @@
"implicit": "по умолчанию",
"instagram": "Instagram",
"jurnal": "журнал",
"km": "км",
"la fiecare request": "при каждом запросе",
"liber": "свободно",
"liber/ușor": "свободно/легко",
@@ -2290,6 +2312,7 @@
"mașină": "машина",
"mediu": "средне",
"mergi la Setări → Asistent AI și adaugă cheia API (Claude / GPT / Gemini).": "перейдите в Настройки → AI-ассистент и добавьте API-ключ (Claude / GPT / Gemini).",
"ml": "мл",
"new": "новый",
"niciodată": "никогда",
"norme": "нормы",
@@ -2500,6 +2523,7 @@
"Înregistrează plată": "Регистрация платежа",
"Înregistrează seturile de anvelope ale clienților și gestionează depozitarea sezonieră (tire hotel). Urmărește uzura, TPMS și locația în depozit.": "Регистрируйте комплекты шин клиентов и управляйте сезонным хранением (tire hotel). Отслеживайте износ, TPMS и локацию на складе.",
"Întreabă-mă orice — diagnostic, sumar, sugestii, redactare mesaje către clienți...": "Спросите что угодно — диагноз, резюме, подсказки, тексты клиентам...",
"înainte": "до",
"Șabloane servicii": "Шаблоны услуг",
"Șablon aplicat": "Шаблон применён",
"Șablon aplicat: {$r['labor']} manopere, {$r['parts']} piese": "Șablon aplicat: {$r['labor']} manopere, {$r['parts']} piese",