i18n(wo relations): translated snapshot names + explicit empty states

- WorksRelationManager Name column: getStateUsing(labor?->label()) so
  the row shows the labor's localized name (not the raw snapshot);
  fallback to stored snapshot when labor is missing.
- 4 explicit empty states with helper description + icon on Works,
  Parts, SubcontractJobs, Payments — replaces Filament's auto-generated
  'Не найдено X / Создать X для старта.'
- 4 CreateAction titles / modal headings for all four relation managers.
- Notification 'Piesa returnată în stoc' / 'Nimic de restituit' wrapped.
- +11 translation keys.

All 306 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-26 10:59:47 +00:00
parent 9609295a9e
commit de2964c854
6 changed files with 57 additions and 13 deletions
+11
View File
@@ -107,6 +107,10 @@
"Adaugă furnizor": "Add supplier",
"Adaugă header": "Add header",
"Adaugă imagine": "Add image",
"Adaugă lucrare la subcontractor": "Add job to subcontractor",
"Adaugă lucrare terți": "Add subcontract job",
"Adaugă lucrări trimise la ateliere externe (turbo, cutii, vopsitorie). Costul + markup intră automat în totalul fișei.": "Add jobs sent to external workshops (turbo, gearboxes, paint). Cost + markup are auto-added to the order total.",
"Adaugă manopere din catalog — piesele implicite se adaugă automat în tab-ul Piese.": "Add labor from catalog — default parts auto-appear in the Parts tab.",
"Adaugă manopere și piese care se aplică împreună când selectezi acest șablon pe o fișă.": "Add labors and parts applied together when selecting this template on an order.",
"Adaugă manoperă": "Add labor",
"Adaugă manoperă în fișă": "Add labor to order",
@@ -115,10 +119,14 @@
"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.": "Add parts usually installed with this labor — they are auto-added to the order when you select this labor.",
"Adaugă piesele necesare din catalog. Stocul se rezervă automat, iar la marcarea „Montată\" scade FIFO.": "Add the needed parts from catalog. Stock is auto-reserved; on \"Installed\" it deducts FIFO.",
"Adaugă piesă": "Add part",
"Adaugă piesă implicită": "Add default part",
"Adaugă piesă în catalog": "Add part to catalog",
"Adaugă piesă în fișă": "Add part to order",
"Adaugă plată": "Add payment",
"Adaugă plată la fișă": "Add payment to order",
"Adaugă plățile parțiale sau totale primite pentru această fișă. Statusul plății se actualizează automat.": "Add partial or full payments for this order. Payment status auto-updates.",
"Adaugă primul client SaaS folosind butonul „Adaugă companie\" — se va crea un tenant nou cu admin pe `<slug>.service.mir.md/app`.": "Adaugă primul client SaaS folosind butonul „Adaugă companie\" — se va crea un tenant nou cu admin pe `<slug>.service.mir.md/app`.",
"Adaugă primul tău client manual sau importă din CSV. Toate mașinile, fișele și plățile se vor lega automat de el.": "Adaugă primul tău client manual sau importă din CSV. Toate mașinile, fișele și plățile se vor lega automat de el.",
"Adaugă produs": "Add product",
@@ -1208,6 +1216,7 @@
"Nicio metodă de plată configurată. Contactează operatorul.": "No payment method configured. Contact operator.",
"Nicio piesă implicită": "No default parts",
"Nicio piesă montată.": "No parts installed.",
"Nicio plată": "No payments",
"Nicio plată în perioada selectată.": "No payments in selected period.",
"Nicio programare în această perioadă.": "No appointments in this period.",
"Nicio programare în perioada selectată.": "No appointments in selected period.",
@@ -1236,6 +1245,7 @@
"Niciun tenant încă": "No tenants yet",
"Niciun token generat. Folosește butonul „Generează token": "No tokens generated. Use the \"Generate token\" button.",
"Niciun șablon": "No templates",
"Nimic de restituit": "Nothing to return",
"No": "No",
"No-show alert": "No-show alert",
"Noiembrie": "November",
@@ -1417,6 +1427,7 @@
"Pickup": "Pickup",
"Pierdut": "Lost",
"Pierdute": "Missed",
"Piesa returnată în stoc": "Part returned to stock",
"Piese": "Parts",
"Piese (vânzare)": "Parts (sales)",
"Piese impl.": "Default parts",
+11
View File
@@ -107,6 +107,10 @@
"Adaugă furnizor": "Добавить поставщика",
"Adaugă header": "Добавить заголовок",
"Adaugă imagine": "Добавить изображение",
"Adaugă lucrare la subcontractor": "Добавить работу субподрядчику",
"Adaugă lucrare terți": "Добавить работу субподрядчика",
"Adaugă lucrări trimise la ateliere externe (turbo, cutii, vopsitorie). Costul + markup intră automat în totalul fișei.": "Добавьте работы, отправленные в сторонние мастерские (турбо, коробки, покраска). Стоимость + наценка автоматически входят в сумму наряда.",
"Adaugă manopere din catalog — piesele implicite se adaugă automat în tab-ul Piese.": "Добавьте работы из каталога — запчасти по умолчанию автоматически появятся в табе «Запчасти».",
"Adaugă manopere și piese care se aplică împreună când selectezi acest șablon pe o fișă.": "Добавьте работы и запчасти, которые применяются вместе при выборе этого шаблона в наряде.",
"Adaugă manoperă": "Добавить работу",
"Adaugă manoperă în fișă": "Добавить работу в наряд",
@@ -115,10 +119,14 @@
"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 necesare din catalog. Stocul se rezervă automat, iar la marcarea „Montată\" scade FIFO.": "Добавьте нужные запчасти из каталога. Остаток резервируется автоматически, при отметке «Установлено» списывается по FIFO.",
"Adaugă piesă": "Добавить запчасть",
"Adaugă piesă implicită": "Добавить запчасть по умолчанию",
"Adaugă piesă în catalog": "Добавить запчасть в каталог",
"Adaugă piesă în fișă": "Добавить запчасть в наряд",
"Adaugă plată": "Добавить платёж",
"Adaugă plată la fișă": "Добавить платёж к наряду",
"Adaugă plățile parțiale sau totale primite pentru această fișă. Statusul plății se actualizează automat.": "Добавьте частичные или полные платежи по этому наряду. Статус оплаты обновляется автоматически.",
"Adaugă primul client SaaS folosind butonul „Adaugă companie\" — se va crea un tenant nou cu admin pe `<slug>.service.mir.md/app`.": "Adaugă primul client SaaS folosind butonul „Adaugă companie\" — se va crea un tenant nou cu admin pe `<slug>.service.mir.md/app`.",
"Adaugă primul tău client manual sau importă din CSV. Toate mașinile, fișele și plățile se vor lega automat de el.": "Adaugă primul tău client manual sau importă din CSV. Toate mașinile, fișele și plățile se vor lega automat de el.",
"Adaugă produs": "Добавить товар",
@@ -1208,6 +1216,7 @@
"Nicio metodă de plată configurată. Contactează operatorul.": "Способ оплаты не настроен. Свяжитесь с оператором.",
"Nicio piesă implicită": "Нет запчастей по умолчанию",
"Nicio piesă montată.": "Запчасти не установлены.",
"Nicio plată": "Нет платежей",
"Nicio plată în perioada selectată.": "Нет платежей за выбранный период.",
"Nicio programare în această perioadă.": "Нет записей в этом периоде.",
"Nicio programare în perioada selectată.": "Нет записей за выбранный период.",
@@ -1236,6 +1245,7 @@
"Niciun tenant încă": "Пока нет арендаторов",
"Niciun token generat. Folosește butonul „Generează token": "Токены не созданы. Используйте кнопку «Создать токен».",
"Niciun șablon": "Нет шаблонов",
"Nimic de restituit": "Нечего возвращать",
"No": "Нет",
"No-show alert": "No-show предупр.",
"Noiembrie": "Ноябрь",
@@ -1417,6 +1427,7 @@
"Pickup": "Пикап",
"Pierdut": "Потерян",
"Pierdute": "Пропущенные",
"Piesa returnată în stoc": "Запчасть возвращена на склад",
"Piese": "Запчасти",
"Piese (vânzare)": "Запчасти (продажа)",
"Piese impl.": "Запчасти",