i18n(parts-edit): override CreateAction, +19 translations for tabs/columns/empty

- CrossRefsRelationManager: explicit CreateAction/EditAction labels &
  modal headings (was auto-generated as 'Create Part Cross Ref')
- +19 translations for PartResource sections (Prețuri, Furnizor
  preferat), photo gallery helper, relation-tab titles (Loturi FIFO,
  Coduri cross), Batches columns (Intrat/Rămas/Preț unit.), CrossRefs
  column (Cod echivalent), all empty-state headings/descriptions on
  the 3 relation managers, Val. abbreviation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-16 11:10:09 +00:00
parent 9d020345ca
commit e680b2e63c
3 changed files with 40 additions and 27 deletions
@@ -36,8 +36,15 @@ class CrossRefsRelationManager extends RelationManager
Tables\Columns\TextColumn::make('cross_article')->label(__('Cod'))->searchable(), Tables\Columns\TextColumn::make('cross_article')->label(__('Cod'))->searchable(),
Tables\Columns\TextColumn::make('brand')->placeholder('—'), Tables\Columns\TextColumn::make('brand')->placeholder('—'),
]) ])
->headerActions([Actions\CreateAction::make()]) ->headerActions([
->actions([Actions\EditAction::make(), Actions\DeleteAction::make()]) Actions\CreateAction::make()
->label(__('Adaugă cod cross'))
->modalHeading(__('Adaugă cod echivalent')),
])
->actions([
Actions\EditAction::make()->modalHeading(__('Editează cod echivalent')),
Actions\DeleteAction::make(),
])
->emptyStateHeading(__('Niciun cod cross')) ->emptyStateHeading(__('Niciun cod cross'))
->emptyStateDescription(__('Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.')); ->emptyStateDescription(__('Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.'));
} }
+15 -12
View File
@@ -89,7 +89,9 @@
"Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.": "Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.", "Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.": "Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.",
"Adaugă cheltuială": "Add expense", "Adaugă cheltuială": "Add expense",
"Adaugă client": "Add client", "Adaugă client": "Add client",
"Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.": "Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.", "Adaugă cod cross": "Add cross code",
"Adaugă cod echivalent": "Add equivalent code",
"Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.": "Add OEM/aftermarket equivalents so they can be found via shop search.",
"Adaugă comentariu": "Add comment", "Adaugă comentariu": "Add comment",
"Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.": "Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.", "Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.": "Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.",
"Adaugă furnizor": "Add supplier", "Adaugă furnizor": "Add supplier",
@@ -172,7 +174,7 @@
"Anulează fișa": "Cancel order", "Anulează fișa": "Cancel order",
"Anvelope": "Tires", "Anvelope": "Tires",
"Apare în magazinul online public.": "Appears in the public online shop.", "Apare în magazinul online public.": "Appears in the public online shop.",
"Apasă „Recepție\" pe lista de piese pentru a înregistra prima intrare în depozit.": "Apasă „Receie\" pe lista de piese pentru a înregistra prima intrare în depozit.", "Apasă „Recepție\" pe lista de piese pentru a înregistra prima intrare în depozit.": "Click \"Receive\" on the parts list to record the first stock intake.",
"Apel": "Apel", "Apel": "Apel",
"Aplicat": "Aplicat", "Aplicat": "Aplicat",
"Aplică": "Apply", "Aplică": "Apply",
@@ -362,13 +364,13 @@
"Cod QR": "QR code", "Cod QR": "QR code",
"Cod articol": "Article code", "Cod articol": "Article code",
"Cod bare": "Barcode", "Cod bare": "Barcode",
"Cod echivalent": "Cod echivalent", "Cod echivalent": "Equivalent code",
"Cod necunoscut": "Cod necunoscut", "Cod necunoscut": "Cod necunoscut",
"Cod tracking": "Tracking code", "Cod tracking": "Tracking code",
"Cod uzină": "Factory code", "Cod uzină": "Factory code",
"Code": "Code", "Code": "Code",
"Codul produsului": "Product code", "Codul produsului": "Product code",
"Coduri cross (OEM/echivalente)": "Coduri cross (OEM/echivalente)", "Coduri cross (OEM/echivalente)": "Cross codes (OEM/equivalents)",
"Coeficient": "Coeficient", "Coeficient": "Coeficient",
"Coeficienți preț": "Pricing coefficients", "Coeficienți preț": "Pricing coefficients",
"Coloana Articol *": "Coloana Articol *", "Coloana Articol *": "Coloana Articol *",
@@ -637,6 +639,7 @@
"Edit": "Edit", "Edit": "Edit",
"Editare": "Edit", "Editare": "Edit",
"Editează": "Edit", "Editează": "Edit",
"Editează cod echivalent": "Edit equivalent code",
"Editează drepturi": "Edit permissions", "Editează drepturi": "Edit permissions",
"Editează piesă implicită": "Edit default part", "Editează piesă implicită": "Edit default part",
"Editează produs": "Edit product", "Editează produs": "Edit product",
@@ -757,7 +760,7 @@
"Furnizor *": "Furnizor *", "Furnizor *": "Furnizor *",
"Furnizor factură": "Invoice supplier", "Furnizor factură": "Invoice supplier",
"Furnizor implicit": "Default supplier", "Furnizor implicit": "Default supplier",
"Furnizor preferat": "Furnizor preferat", "Furnizor preferat": "Preferred supplier",
"Furnizori": "Suppliers", "Furnizori": "Suppliers",
"Fără TVA": "Without VAT", "Fără TVA": "Without VAT",
"Fără acest cod, plata va fi greu de identificat.": "Without this code, payment will be hard to identify.", "Fără acest cod, plata va fi greu de identificat.": "Without this code, payment will be hard to identify.",
@@ -769,7 +772,7 @@
"GNC": "CNG", "GNC": "CNG",
"GPL": "LPG", "GPL": "LPG",
"GRANT — adaugă dreptul": "GRANT — add permission", "GRANT — adaugă dreptul": "GRANT — add permission",
"Galerie de până la 8 imagini. Prima e afișată în catalog. Max 2 MB / imagine.": "Galerie de până la 8 imagini. Prima e afișată în catalog. Max 2 MB / imagine.", "Galerie de până la 8 imagini. Prima e afișată în catalog. Max 2 MB / imagine.": "Gallery of up to 8 images. First is shown in the catalog. Max 2 MB / image.",
"Gata": "Ready", "Gata": "Ready",
"Gata de ridicare": "Ready for pickup", "Gata de ridicare": "Ready for pickup",
"Gata estimat (ETA)": "Gata estimat (ETA)", "Gata estimat (ETA)": "Gata estimat (ETA)",
@@ -844,7 +847,7 @@
"Interval dată": "Date range", "Interval dată": "Date range",
"Interval orar": "Time range", "Interval orar": "Time range",
"Intrare": "Incoming", "Intrare": "Incoming",
"Intrat": "Intrat", "Intrat": "Received",
"Inventar": "Inventory", "Inventar": "Inventory",
"Invitație": "Invitation", "Invitație": "Invitation",
"Invitații": "Invitations", "Invitații": "Invitations",
@@ -929,7 +932,7 @@
"Logo actualizat": "Logo actualizat", "Logo actualizat": "Logo actualizat",
"Logout": "Logout", "Logout": "Logout",
"Loturi": "Loturi", "Loturi": "Loturi",
"Loturi (FIFO)": "Loturi (FIFO)", "Loturi (FIFO)": "Batches (FIFO)",
"Low Stock Table": "Low stock", "Low Stock Table": "Low stock",
"Low stock": "Low stock", "Low stock": "Low stock",
"Lucrare": "Lucrare", "Lucrare": "Lucrare",
@@ -1096,7 +1099,7 @@
"Niciun client magazin": "Niciun client magazin", "Niciun client magazin": "Niciun client magazin",
"Niciun client pierdut. 🎉": "Niciun client pierdut. 🎉", "Niciun client pierdut. 🎉": "Niciun client pierdut. 🎉",
"Niciun client încă": "No clients yet", "Niciun client încă": "No clients yet",
"Niciun cod cross": "Niciun cod cross", "Niciun cod cross": "No cross codes",
"Niciun coeficient": "Niciun coeficient", "Niciun coeficient": "Niciun coeficient",
"Niciun coeficient contextual nu se aplică (preț de bază).": "No contextual coefficient applies (base price).", "Niciun coeficient contextual nu se aplică (preț de bază).": "No contextual coefficient applies (base price).",
"Niciun depozit": "Niciun depozit", "Niciun depozit": "Niciun depozit",
@@ -1350,8 +1353,8 @@
"Preț vz.": "Sale price", "Preț vz.": "Sale price",
"Preț vânzare": "Sale price", "Preț vânzare": "Sale price",
"Preț/h": "Price/h", "Preț/h": "Price/h",
"Prețuri": "Prețuri", "Prețuri": "Prices",
"Prețurile se înregistrează automat la fiecare recepție de PO.": "Prețurile se înregistrează automat la fiecare recepție de PO.", "Prețurile se înregistrează automat la fiecare recepție de PO.": "Prices are auto-recorded on every PO receipt.",
"Price": "Price", "Price": "Price",
"Primește cereri din canalul Telegram + trimite confirmări automate.": "Primește cereri din canalul Telegram + trimite confirmări automate.", "Primește cereri din canalul Telegram + trimite confirmări automate.": "Primește cereri din canalul Telegram + trimite confirmări automate.",
"Primit": "Primit", "Primit": "Primit",
@@ -1877,7 +1880,7 @@
"Va fi adăugată în Cerere nouă": "Will be added to \"New lead\"", "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 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?": "Va recalcula sell_price pentru TOATE piesele active. Continui?",
"Val.": "Val.", "Val.": "Curr.",
"Valoare": "Valoare", "Valoare": "Valoare",
"Van": "Van", "Van": "Van",
"Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}": "Available variables: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}", "Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}": "Available variables: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}",
+16 -13
View File
@@ -89,7 +89,9 @@
"Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.": "Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.", "Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.": "Adaugă chei API ca să activezi asistentul. Cheile rămân la voi — nu sunt partajate.",
"Adaugă cheltuială": "Добавить расход", "Adaugă cheltuială": "Добавить расход",
"Adaugă client": "Добавить клиента", "Adaugă client": "Добавить клиента",
"Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.": "Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.", "Adaugă cod cross": "Добавить кросс-код",
"Adaugă cod echivalent": "Добавить эквивалентный код",
"Adaugă coduri echivalente OEM/aftermarket ca să fie găsite în căutarea din magazin.": "Добавьте OEM/aftermarket эквиваленты для нахождения через поиск в магазине.",
"Adaugă comentariu": "Добавить комментарий", "Adaugă comentariu": "Добавить комментарий",
"Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.": "Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.", "Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.": "Adaugă echipa ta — colegi de la suport, sales, finance — fiecare cu rolul lui.",
"Adaugă furnizor": "Добавить поставщика", "Adaugă furnizor": "Добавить поставщика",
@@ -172,7 +174,7 @@
"Anulează fișa": "Отменить наряд", "Anulează fișa": "Отменить наряд",
"Anvelope": "Шины", "Anvelope": "Шины",
"Apare în magazinul online public.": "Отображается в публичном интернет-магазине.", "Apare în magazinul online public.": "Отображается в публичном интернет-магазине.",
"Apasă „Recepție\" pe lista de piese pentru a înregistra prima intrare în depozit.": "Apasă „Recepție\" pe lista de piese pentru a înregistra prima intrare în depozit.", "Apasă „Recepție\" pe lista de piese pentru a înregistra prima intrare în depozit.": "Нажмите «Приёмка» в списке запчастей, чтобы зарегистрировать первое поступление на склад.",
"Apel": "Apel", "Apel": "Apel",
"Aplicat": "Aplicat", "Aplicat": "Aplicat",
"Aplică": "Применить", "Aplică": "Применить",
@@ -362,13 +364,13 @@
"Cod QR": "QR-код", "Cod QR": "QR-код",
"Cod articol": "Артикул", "Cod articol": "Артикул",
"Cod bare": "Штрих-код", "Cod bare": "Штрих-код",
"Cod echivalent": "Cod echivalent", "Cod echivalent": "Эквивалентный код",
"Cod necunoscut": "Cod necunoscut", "Cod necunoscut": "Cod necunoscut",
"Cod tracking": "Код отслеживания", "Cod tracking": "Код отслеживания",
"Cod uzină": "Заводской код", "Cod uzină": "Заводской код",
"Code": "Код", "Code": "Код",
"Codul produsului": "Код товара", "Codul produsului": "Код товара",
"Coduri cross (OEM/echivalente)": "Coduri cross (OEM/echivalente)", "Coduri cross (OEM/echivalente)": "Кросс-коды (OEM/эквиваленты)",
"Coeficient": "Coeficient", "Coeficient": "Coeficient",
"Coeficienți preț": "Ценовые коэффициенты", "Coeficienți preț": "Ценовые коэффициенты",
"Coloana Articol *": "Coloana Articol *", "Coloana Articol *": "Coloana Articol *",
@@ -637,6 +639,7 @@
"Edit": "Изменить", "Edit": "Изменить",
"Editare": "Изменить", "Editare": "Изменить",
"Editează": "Изменить", "Editează": "Изменить",
"Editează cod echivalent": "Изменить эквивалентный код",
"Editează drepturi": "Изменить права", "Editează drepturi": "Изменить права",
"Editează piesă implicită": "Изменить запчасть по умолчанию", "Editează piesă implicită": "Изменить запчасть по умолчанию",
"Editează produs": "Изменить товар", "Editează produs": "Изменить товар",
@@ -757,7 +760,7 @@
"Furnizor *": "Furnizor *", "Furnizor *": "Furnizor *",
"Furnizor factură": "Поставщик счёта", "Furnizor factură": "Поставщик счёта",
"Furnizor implicit": "Поставщик по умолчанию", "Furnizor implicit": "Поставщик по умолчанию",
"Furnizor preferat": "Furnizor preferat", "Furnizor preferat": "Предпочтительный поставщик",
"Furnizori": "Поставщики", "Furnizori": "Поставщики",
"Fără TVA": "Без НДС", "Fără TVA": "Без НДС",
"Fără acest cod, plata va fi greu de identificat.": "Без этого кода платёж трудно идентифицировать.", "Fără acest cod, plata va fi greu de identificat.": "Без этого кода платёж трудно идентифицировать.",
@@ -769,7 +772,7 @@
"GNC": "CNG", "GNC": "CNG",
"GPL": "LPG", "GPL": "LPG",
"GRANT — adaugă dreptul": "GRANT — добавить право", "GRANT — adaugă dreptul": "GRANT — добавить право",
"Galerie de până la 8 imagini. Prima e afișată în catalog. Max 2 MB / imagine.": "Galerie de până la 8 imagini. Prima e afișată în catalog. Max 2 MB / imagine.", "Galerie de până la 8 imagini. Prima e afișată în catalog. Max 2 MB / imagine.": "Галерея до 8 изображений. Первое отображается в каталоге. Максимум 2 МБ / изображение.",
"Gata": "Готов", "Gata": "Готов",
"Gata de ridicare": "Готов к выдаче", "Gata de ridicare": "Готов к выдаче",
"Gata estimat (ETA)": "Gata estimat (ETA)", "Gata estimat (ETA)": "Gata estimat (ETA)",
@@ -844,7 +847,7 @@
"Interval dată": "Диапазон дат", "Interval dată": "Диапазон дат",
"Interval orar": "Часовой интервал", "Interval orar": "Часовой интервал",
"Intrare": "Входящий", "Intrare": "Входящий",
"Intrat": "Intrat", "Intrat": "Принято",
"Inventar": "Инвентаризация", "Inventar": "Инвентаризация",
"Invitație": "Приглашение", "Invitație": "Приглашение",
"Invitații": "Приглашения", "Invitații": "Приглашения",
@@ -929,7 +932,7 @@
"Logo actualizat": "Logo actualizat", "Logo actualizat": "Logo actualizat",
"Logout": "Выход", "Logout": "Выход",
"Loturi": "Loturi", "Loturi": "Loturi",
"Loturi (FIFO)": "Loturi (FIFO)", "Loturi (FIFO)": "Партии (FIFO)",
"Low Stock Table": "Остаток ниже минимума", "Low Stock Table": "Остаток ниже минимума",
"Low stock": "Ниже минимума", "Low stock": "Ниже минимума",
"Lucrare": "Lucrare", "Lucrare": "Lucrare",
@@ -1096,7 +1099,7 @@
"Niciun client magazin": "Niciun client magazin", "Niciun client magazin": "Niciun client magazin",
"Niciun client pierdut. 🎉": "Niciun client pierdut. 🎉", "Niciun client pierdut. 🎉": "Niciun client pierdut. 🎉",
"Niciun client încă": "Пока нет клиентов", "Niciun client încă": "Пока нет клиентов",
"Niciun cod cross": "Niciun cod cross", "Niciun cod cross": "Нет кросс-кодов",
"Niciun coeficient": "Niciun coeficient", "Niciun coeficient": "Niciun coeficient",
"Niciun coeficient contextual nu se aplică (preț de bază).": "Контекстные коэффициенты не применяются (базовая цена).", "Niciun coeficient contextual nu se aplică (preț de bază).": "Контекстные коэффициенты не применяются (базовая цена).",
"Niciun depozit": "Niciun depozit", "Niciun depozit": "Niciun depozit",
@@ -1350,8 +1353,8 @@
"Preț vz.": "Цена прод.", "Preț vz.": "Цена прод.",
"Preț vânzare": "Цена продажи", "Preț vânzare": "Цена продажи",
"Preț/h": "Цена/ч", "Preț/h": "Цена/ч",
"Prețuri": "Prețuri", "Prețuri": "Цены",
"Prețurile se înregistrează automat la fiecare recepție de PO.": "Prețurile se înregistrează automat la fiecare recepție de PO.", "Prețurile se înregistrează automat la fiecare recepție de PO.": "Цены регистрируются автоматически при каждой приёмке PO.",
"Price": "Цена", "Price": "Цена",
"Primește cereri din canalul Telegram + trimite confirmări automate.": "Primește cereri din canalul Telegram + trimite confirmări automate.", "Primește cereri din canalul Telegram + trimite confirmări automate.": "Primește cereri din canalul Telegram + trimite confirmări automate.",
"Primit": "Primit", "Primit": "Primit",
@@ -1525,7 +1528,7 @@
"Rând": "Строка", "Rând": "Строка",
"Rânduri": "Строки", "Rânduri": "Строки",
"Rânduri per pagină": "Строк на странице", "Rânduri per pagină": "Строк на странице",
"Rămas": "Осталось", "Rămas": "Остаток",
"Răspuns": "Отвечен", "Răspuns": "Отвечен",
"Răspuns AI ne-parsabil ca JSON.": "Răspuns AI ne-parsabil ca JSON.", "Răspuns AI ne-parsabil ca JSON.": "Răspuns AI ne-parsabil ca JSON.",
"SMS": "SMS", "SMS": "SMS",
@@ -1877,7 +1880,7 @@
"Va fi adăugată în Cerere nouă": "Будет добавлена в «Новая заявка»", "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 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?": "Va recalcula sell_price pentru TOATE piesele active. Continui?",
"Val.": "Val.", "Val.": "Вал.",
"Valoare": "Valoare", "Valoare": "Valoare",
"Van": "Фургон", "Van": "Фургон",
"Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}": "Доступные переменные: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}", "Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}": "Доступные переменные: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}",