diff --git a/lang/en.json b/lang/en.json index d1dc435..cf0255d 100644 --- a/lang/en.json +++ b/lang/en.json @@ -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", diff --git a/lang/ru.json b/lang/ru.json index ff5edc9..2db5dc6 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -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", diff --git a/resources/views/pdf/injector-protocol.blade.php b/resources/views/pdf/injector-protocol.blade.php index 404a667..c382f80 100644 --- a/resources/views/pdf/injector-protocol.blade.php +++ b/resources/views/pdf/injector-protocol.blade.php @@ -170,6 +170,11 @@ 'conclusion_needs_cleaning' => __('Necesită curățare repetată'), 'conclusion_needs_replacement' => __('Recomandată înlocuire'), ]; + + // PDF strings use RO keys as the source language; ru.json + en.json provide translations. + // NOTE: these labels were previously in Cyrillic (matching the sample PDF) — but that + // broke fallback on RO locale. Now the RO variant is the key. + $publicQr = asset('img/injector-protocol/qr-sample.png'); @endphp @@ -195,34 +200,34 @@ @endif -
{{ __('ПРОТОКОЛ ДИАГНОСТИКИ И ОЧИСТКИ') }}
{{ __('ЭЛЕКТРОКЛАПАННЫХ ФОРСУНОК') }}
+
{{ __('PROTOCOL DE DIAGNOSTIC ȘI CURĂȚARE') }}
{{ __('AL INJECTOARELOR CU ELECTROVALVĂ') }}
{{-- ── SECTION 1: DATA ── --}}
-
{{ __('ДАННЫЕ АВТОМОБИЛЯ И КЛИЕНТА') }}
+
{{ __('DATELE AUTOMOBILULUI ȘI CLIENTULUI') }}
- {{ __('№ протокола:') }} + {{ __('Nr. protocol:') }} {{ $protocol->protocol_number ?? '—' }}
-
{{ __('Автосервис / Клиент') }}
+
{{ __('Autoservice / Client') }}
{{ $protocol->source_name }}
-
{{ __('Телефон') }}
+
{{ __('Telefon') }}
{{ $protocol->phone }}
-
{{ __('Автомобиль') }}
+
{{ __('Automobil') }}
{{ $protocol->car_model }}
-
{{ __('Гос. номер') }}
+
{{ __('Nr. înmatriculare') }}
{{ $protocol->plate_number }}
@@ -230,26 +235,26 @@
{{ $protocol->vin }}
-
{{ __('Пробег, км') }}
+
{{ __('Kilometraj, km') }}
{{ $protocol->mileage ? number_format($protocol->mileage, 0, '.', ' ') : '' }}
-
{{ __('Год выпуска') }}
+
{{ __('An fabricație') }}
{{ $protocol->year }}
-
{{ __('Марка форсунок') }}
+
{{ __('Marca injectoarelor') }}
{{ $protocol->injector_brand }}
-
{{ __('Кол-во форсунок') }}
+
{{ __('Nr. injectoare') }}
{{ $protocol->injector_count }}
{{-- ── SECTION 2: REASON ── --}} -
{{ __('ПРИЧИНА ОБРАЩЕНИЯ') }}
+
{{ __('CAUZA ADRESĂRII') }}
@foreach ($reasons as $field => $label)
@@ -260,25 +265,25 @@
{{-- ── SECTION 3: MEASUREMENTS ── --}} -
{{ __('ИЗМЕРЕНИЯ МЕХАНИКИ ФОРСУНОК') }}
+
{{ __('MĂSURĂTORI MECANICA INJECTOARELOR') }}
- - - - - - - + + + + + + + - - - - - - + + + + + + @@ -302,10 +307,10 @@ @endfor
{{ __('ФОРСУНКИ') }}{{ __('Сопротивление, Ом') }}{{ __('Время открытия, мс') }}{{ __('Время закрытия, мс') }}{{ __('Время закр. в КЗ, мс') }}{{ __('Расход, мл') }}{{ __('Герметичность') }}{{ __('INJECTOARE') }}{{ __('Rezistență, Ω') }}{{ __('Timp deschidere, ms') }}{{ __('Timp închidere, ms') }}{{ __('Timp închidere KZ, ms') }}{{ __('Debit, ml') }}{{ __('Etanșeitate') }}
{{ __('до') }}{{ __('после') }}{{ __('до') }}{{ __('после') }}{{ __('до') }}{{ __('после') }}{{ __('до') }}{{ __('после') }}{{ __('до') }}{{ __('после') }}{{ __('до') }}{{ __('после') }}{{ __('înainte') }}{{ __('după') }}{{ __('înainte') }}{{ __('după') }}{{ __('înainte') }}{{ __('după') }}{{ __('înainte') }}{{ __('după') }}{{ __('înainte') }}{{ __('după') }}{{ __('înainte') }}{{ __('după') }}
-
{{ __('Заполняйте строки по количеству форсунок; лишние строки оставьте пустыми.') }}
+
{{ __('Completați rândurile după numărul de injectoare; lăsați goale rândurile în plus.') }}
{{-- ── SECTION 4: CONCLUSION ── --}} -
{{ __('ЗАКЛЮЧЕНИЕ') }}
+
{{ __('CONCLUZIE') }}
@foreach ($conclusions as $field => $label)
@@ -314,22 +319,22 @@
@endforeach
-
{{ __('Комментарий / рекомендации мастера') }}
+
{{ __('Comentariu / recomandări maistru') }}
{{ $protocol->master_comment }}
-
{{ __('Мастер (ФИО, подпись)') }}
+
{{ __('Maistru (nume, semnătură)') }}
{{ $protocol->master?->name ?: $protocol->master_name_signed }}
-
{{ __('Дата выдачи') }}
+
{{ __('Data emiterii') }}
{{ $protocol->issue_date?->format('d.m.Y') }}
-
{{ __('Клиент ознакомлен (подпись)') }}
+
{{ __('Client informat (semnătură)') }}
@if ($protocol->client_acknowledged) ✓ @endif