fix(i18n): auto-translate labels on Filament columns/fields/filters/actions

Root cause of untranslated table headers: Filament's HasLabel::getLabel()
auto-generates a label from the field name (e.g. `name` → "Name") but only
calls __() on it if you also invoke ->translateLabel(). Without that, the
auto-generated label always renders in English regardless of app locale.

Fix: configureUsing() in AppServiceProvider makes translateLabel() the
default for every Column, BaseFilter, Field, Action and BulkAction.

Then added 175 human RU/EN translations for Filament's auto-generated
keys (Name, Phone, Email, Status, Balance, Created at, Plate, Make,
Model, Year, VIN, Mileage, Owner, Client, Vehicle, Amount, Total, Qty,
Actions, Search, Filter, Export, Import, plus enums/relationships).

All 306 tests pass. Deploy will fix table headers on
Clients / Vehicles / Work orders / Payments / Purchases / Suppliers etc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-16 05:21:29 +00:00
parent 7077fff3b3
commit 38650da875
3 changed files with 359 additions and 6 deletions
+169
View File
@@ -72,6 +72,7 @@
"Activi": "Active",
"Activitate recentă": "Recent activity",
"Activă": "Active",
"Actual hours": "Actual hours",
"Actualizat la": "Updated at",
"Actualizează": "Update",
"Acțiune": "Action",
@@ -108,6 +109,7 @@
"Adaugă serviciu": "Add service",
"Adaugă utilizator": "Add user",
"Adaugă vehicul": "Add vehicle",
"Address": "Address",
"Admin tenant (la creare)": "Admin tenant (la creare)",
"Administrator": "Administrator",
"Adresă": "Address",
@@ -143,6 +145,7 @@
"Alte cheltuieli": "Other expenses",
"Altă problemă": "Other problem",
"Am salvat token-ul, ascunde-l": "Am salvat token-ul, ascunde-l",
"Amount": "Amount",
"An": "Year",
"An fabricație": "Production year",
"An model": "Model year",
@@ -171,6 +174,7 @@
"Aplică prețul": "Aplică prețul",
"Aplică toate regulile la stoc": "Aplică toate regulile la stoc",
"Aplică șablon": "Apply template",
"Approved at": "Approved at",
"Aprilie": "April",
"Aprobare": "Approval",
"Aprobat": "Approved",
@@ -181,6 +185,8 @@
"Arhivat": "Archived",
"Arhivează": "Archive",
"Arhivă": "Archive",
"Article": "Article",
"Article code": "Article code",
"Articol": "Articol",
"Articol nu se potrivește comenzii": "Articol nu se potrivește comenzii",
"Articole": "Articole",
@@ -196,6 +202,8 @@
"Atașat veți găsi": "Attached",
"Atelierul meu": "My workshop",
"Atenție": "Warning",
"Attachment": "Attachment",
"Attachments": "Attachments",
"Audit / verificări fiscale": "Audit / verificări fiscale",
"August": "August",
"Autentificare": "Login",
@@ -221,9 +229,12 @@
"Backup & Export date": "Backup & Export date",
"Backup periodic (descarcă local sau sincronizează cu cloud)": "Backup periodic (descarcă local sau sincronizează cu cloud)",
"Balance": "Balance",
"Balance due": "Balance due",
"Balanță": "Balance",
"Banca": "Banca",
"Banca:": "Banca:",
"Barcode": "Barcode",
"Bay": "Bay",
"Bază": "Base",
"Beneficiar": "Beneficiar",
"Beneficiar:": "Beneficiar:",
@@ -238,6 +249,7 @@
"Blochez": "Block",
"Blochez lucrarea": "Block the work",
"Boală": "Sick",
"Body type": "Body type",
"Bon": "Receipt",
"Bonuri": "Receipts",
"Bot OK: @{$name}": "Bot OK: @{$name}",
@@ -248,6 +260,7 @@
"Break": "Wagon",
"Buget": "Budget",
"Buget & rezultate (luna curentă)": "Buget & rezultate (luna curentă)",
"Bulk actions": "Bulk actions",
"Bun venit": "Welcome",
"Bun venit în AutoCRM!": "Bun venit în AutoCRM!",
"Bună": "Good",
@@ -280,6 +293,7 @@
"Categorie": "Category",
"Categorie implicită": "Default category",
"Categorii": "Categorii",
"Category": "Category",
"Caută": "Search",
"Caută client, mașină, număr...": "Search client, vehicle, number...",
"Caută în tabel": "Search in table",
@@ -307,7 +321,9 @@
"Chitanță": "Receipt",
"Cifră de afaceri": "Revenue",
"Ciornă": "Draft",
"City": "City",
"Clase auto": "Vehicle classes",
"Class": "Class",
"Clasă (pentru pricing)": "Clasă (pentru pricing)",
"Claude API Key": "Claude API Key",
"Click pentru a redenumi": "Click pentru a redenumi",
@@ -320,12 +336,14 @@
"Client VIP": "Client VIP",
"Client existent": "Existing client",
"Client legat (CRM)": "Client legat (CRM)",
"Client name": "Client name",
"Client nou": "New client",
"Clienți": "Clients",
"Clienți VIP cu care nu s-a vorbit de peste 30 zile.": "Clienți VIP cu care nu s-a vorbit de peste 30 zile.",
"Clienți care n-au mai venit de peste 6 luni — bun moment pentru un mesaj de revenire.": "Clienți care n-au mai venit de peste 6 luni — bun moment pentru un mesaj de revenire.",
"Clienți magazin": "Shop customers",
"Clienți noi în perioadă": "Clienți noi în perioadă",
"Closed at": "Closed at",
"Cod": "Code",
"Cod QR": "QR code",
"Cod articol": "Article code",
@@ -334,6 +352,7 @@
"Cod necunoscut": "Cod necunoscut",
"Cod tracking": "Tracking code",
"Cod uzină": "Cod uzină",
"Code": "Code",
"Codul produsului": "Product code",
"Coduri cross (OEM/echivalente)": "Coduri cross (OEM/echivalente)",
"Coeficient": "Coeficient",
@@ -345,6 +364,7 @@
"Coloana Preț *": "Coloana Preț *",
"Coloane": "Columns",
"Coloană": "Column",
"Color": "Color",
"Comanda": "Comanda",
"Comanda ta a fost primită cu succes.": "Comanda ta a fost primită cu succes.",
"Comandat": "Comandat",
@@ -357,16 +377,23 @@
"Comercial": "Commercial",
"Comision manopere": "Comision manopere",
"Comision piese": "Comision piese",
"Comment": "Comment",
"Comments": "Comments",
"Companie": "Company",
"Companie & plan": "Companie & plan",
"Companie creată: {$result['company']->name}": "Companie creată: {$result['company']->name}",
"Company": "Company",
"Company name": "Company name",
"Complaint": "Complaint",
"Complet": "Full",
"Concediu": "Vacation",
"Condition": "Condition",
"Condiții (toate trebuie îndeplinite)": "Condiții (toate trebuie îndeplinite)",
"Configurare:": "Configurare:",
"Configurează procentele pentru calcul salariu. Marja internă (nu TVA) se scade din prețul de manoperă pentru a determina baza salariului.": "Configurează procentele pentru calcul salariu. Marja internă (nu TVA) se scade din prețul de manoperă pentru a determina baza salariului.",
"Configurări": "Configuration",
"Configurări avansate": "Advanced settings",
"Confirm password": "Confirm password",
"Confirmare plată primită": "Confirmare plată primită",
"Confirmat": "Confirmed",
"Confirmate": "Confirmed",
@@ -406,6 +433,7 @@
"Cost piese (achiziție)": "Cost piese (achiziție)",
"Cost/lead": "Cost/lead",
"Costuri": "Costs",
"Country": "Country",
"Coupé": "Coupé",
"Creanțe": "Receivables",
"Creat": "Creat",
@@ -432,6 +460,7 @@
"Cumul.": "Cumul.",
"Cumulabil": "Cumulabil",
"Cumulabil = se înmulțește cu alți coeficienți. Necumulabil = doar cel mai mare necumulabil se aplică.": "Cumulabil = se înmulțește cu alți coeficienți. Necumulabil = doar cel mai mare necumulabil se aplică.",
"Currency": "Currency",
"Curăță": "Clear",
"Custom": "Custom",
"Cutie": "Gearbox",
@@ -493,11 +522,14 @@
"Decodează": "Decodează",
"Deconectare": "Logout",
"Delete": "Delete",
"Delete selected": "Delete selected",
"Deleted at": "Deleted at",
"Demo (pentru demonstrații sales)": "Demo (pentru demonstrații sales)",
"Denumire": "Name",
"Denumire afișată": "Display name",
"Denumire companie": "Company name",
"Denumire produs": "Product name",
"Department": "Department",
"Deploy now": "Deploy now",
"Depozit": "Warehouse",
"Depozit gol": "Depozit gol",
@@ -524,6 +556,8 @@
"Descriere": "Description",
"Descriere (opțional)": "Descriere (opțional)",
"Descriere produs": "Product description",
"Description": "Description",
"Deselect all": "Deselect all",
"Detalii": "Details",
"Detalii (opțional)": "Details (optional)",
"Detalii auto": "Vehicle details",
@@ -533,6 +567,7 @@
"Dezactivare": "Deactivation",
"Dezactivează": "Deactivate",
"Dezactivează 2FA pentru acest utilizator. Va trebui să re-configureze TOTP la următoarea autentificare.": "Dezactivează 2FA pentru acest utilizator. Va trebui să re-configureze TOTP la următoarea autentificare.",
"Diagnosis": "Diagnosis",
"Diagnostic": "Diagnostic",
"Diagnostic AI bazat pe plângerea clientului": "Diagnostic AI bazat pe plângerea clientului",
"Diagnosticare": "Diagnostics",
@@ -541,6 +576,7 @@
"Diametru R": "Diametru R",
"Dimensiune": "Dimensiune",
"Din catalog (lasă gol pentru text liber)": "Din catalog (lasă gol pentru text liber)",
"Disabled": "Disabled",
"Discount": "Discount",
"Discount %": "Discount %",
"Distribuie": "Distribute",
@@ -557,14 +593,18 @@
"Documente": "Documents",
"Done": "Done",
"Downgrade": "Downgrade",
"Draft": "Draft",
"Drept": "Permission",
"Drepturi": "Permissions",
"Due at": "Due date",
"Due date": "Due date",
"Duminică": "Sunday",
"Duminică: închis": "Duminică: închis",
"Duplică": "Duplicate",
"Duplică rând": "Duplicate row",
"După": "După",
"După efectuarea transferului:": "După efectuarea transferului:",
"Duration": "Duration",
"Durată": "Duration",
"Durată (sec)": "Durată (sec)",
"Durată estimată": "Estimated duration",
@@ -585,8 +625,11 @@
"Eliberează": "Issue",
"Email": "Email",
"Email admin": "Email admin",
"Email verified at": "Email verified",
"Email:": "Email:",
"Empty": "No results",
"Enabled": "Enabled",
"End": "End",
"Endpoint webhook: https://service.mir.md/payments/stripe/webhook": "Endpoint webhook: https://service.mir.md/payments/stripe/webhook",
"Endpoints disponibile:": "Endpoints disponibile:",
"Eroare": "Error",
@@ -595,6 +638,8 @@
"Etapă": "Stage",
"Etichete piese": "Etichete piese",
"Etichetă": "Etichetă",
"Event": "Event",
"Events": "Events",
"Ex 30 → preț vânzare = preț achiziție × 1.30": "Ex 30 → preț vânzare = preț achiziție × 1.30",
"Ex: 100": "Ex: 100",
"Ex: 20": "Ex: 20",
@@ -610,6 +655,8 @@
"Excepții": "Overrides",
"Excepții drepturi": "Permission overrides",
"Există deja un cont cu acest telefon.": "Există deja un cont cu acest telefon.",
"Expense": "Expense",
"Expenses": "Expenses",
"Expiră": "Expiră",
"Expiră < 7 zile": "Expires < 7 days",
"Expiră la (opțional)": "Expiră la (opțional)",
@@ -634,6 +681,9 @@
"Față-Stânga": "Față-Stânga",
"Februarie": "February",
"Femeie": "Female",
"File": "File",
"Files": "Files",
"Filter": "Filter",
"Filters": "Filters",
"Filtre": "Filters",
"Filtru": "Filter",
@@ -658,6 +708,7 @@
"Folosit dacă markup = 0.": "Folosit dacă markup = 0.",
"Folosit ultima dată": "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.",
"Force delete": "Force delete",
"Force logout": "Force logout",
"Format:": "Format:",
"Foto": "Photo",
@@ -665,8 +716,10 @@
"Foto piesă": "Foto piesă",
"Foto înainte / după": "Foto înainte / după",
"Fotografii": "Photos",
"From": "From",
"Frâne": "Brakes",
"Frâne, Ulei, ...": "Frâne, Ulei, ...",
"Fuel": "Fuel",
"Funcție": "Funcție",
"Funcționalități": "Funcționalități",
"Funcționalități incluse": "Funcționalități incluse",
@@ -709,6 +762,8 @@
"Hartă daune": "Hartă daune",
"Hatchback": "Hatchback",
"Hibrid": "Hybrid",
"Hourly rate": "Hourly rate",
"Hours": "Hours",
"IBAN": "IBAN",
"IBAN:": "IBAN:",
"ID": "ID",
@@ -722,6 +777,8 @@
"Ieri": "Yesterday",
"Ieșire": "Logout",
"Ieșiri": "Outflow",
"Image": "Image",
"Images": "Images",
"Imagine": "Image",
"Imagine principală": "Main image",
"Imagini": "Images",
@@ -742,6 +799,7 @@
"Importă din Excel": "Import from Excel",
"Importă lead-uri direct din Lead Ads forms.": "Importă lead-uri direct din Lead Ads forms.",
"Inactiv": "Inactive",
"Inactive": "Inactive",
"Infopanel": "Dashboard",
"Informația de bază — click pe titlul secțiunilor de mai jos pentru detalii.": "Informația de bază — click pe titlul secțiunilor de mai jos pentru detalii.",
"Informație": "Info",
@@ -757,12 +815,21 @@
"Inventar": "Inventory",
"Invitație": "Invitation",
"Invitații": "Invitations",
"Invoice number": "Invoice number",
"Ion Popescu": "Ion Popescu",
"Is active": "Active",
"Is default": "Default",
"Is deleted": "Deleted",
"Is enabled": "Enabled",
"Is published": "Published",
"Is vip": "VIP",
"Istoric depozitare": "Istoric depozitare",
"Istoric prețuri furnizori": "Istoric prețuri furnizori",
"Iulie": "July",
"Iunie": "June",
"JSON": "JSON",
"Job": "Job",
"Jobs": "Jobs",
"Joi": "Thursday",
"Jurnal": "Audit log",
"KPI mecanici": "Mechanics KPI",
@@ -780,11 +847,17 @@
"La succes: webhook → automat status=paid + extends company.active_until": "La succes: webhook → automat status=paid + extends company.active_until",
"La timp 90d": "La timp 90d",
"La trecere pe „Montată\" se scade automat din stoc.": "La trecere pe „Montată\" se scade automat din stoc.",
"Labor": "Labor",
"Labors": "Labors",
"Language": "Language",
"Laracasts": "Laracasts",
"Laravel has an incredibly rich ecosystem.": "Laravel has an incredibly rich ecosystem.",
"Last login at": "Last login",
"Lasă gol = se aplică mereu. Combină condițiile pentru a ținti situații specifice.": "Lasă gol = se aplică mereu. Combină condițiile pentru a ținti situații specifice.",
"Lead": "Lead",
"Lead-uri": "Lead-uri",
"Lead-uri pe sursă": "Lead-uri pe sursă",
"Leads": "Leads",
"Legendă": "Legendă",
"Legendă:": "Legendă:",
"Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.": "Legătura cu fișa CRM (opțional). Auto-matched la înregistrare după telefon.",
@@ -811,6 +884,7 @@
"Loc.": "Loc.",
"Local": "Local",
"Localizare & monedă": "Localization & currency",
"Location": "Location",
"Locație": "Location",
"Locație (raft)": "Locație (raft)",
"Locație rack/bin": "Locație rack/bin",
@@ -851,6 +925,7 @@
"Maistru": "Master",
"Maistru / Mecanic": "Maistru / Mecanic",
"Maistru / Recepție:": "Maistru / Recepție:",
"Make": "Make",
"Manager": "Manager",
"Manopere": "Labor lines",
"Manoperă": "Labor",
@@ -866,6 +941,7 @@
"Marchează terminat": "Mark as done",
"Marcă": "Brand",
"Marcă implicită": "Default brand",
"Margin": "Margin",
"Marja": "Margin",
"Marja piese": "Marja piese",
"Marja profitului": "Profit margin",
@@ -881,10 +957,13 @@
"Markup %": "Markup %",
"Martie": "March",
"Marți": "Tuesday",
"Master": "Master",
"Master name": "Master",
"Matricea": "Matricea",
"Max clienți": "Max clienți",
"Max fișe/lună": "Max fișe/lună",
"Max mașini": "Max mașini",
"Max qty": "Max qty",
"Max useri": "Max useri",
"Mașina e gata de ridicat": "Mașina e gata de ridicat",
"Mașini": "Vehicles",
@@ -898,6 +977,8 @@
"Mesaj client": "Mesaj client",
"Mesaje": "Messages",
"Mesaje AI/lună": "Mesaje AI/lună",
"Message": "Message",
"Method": "Method",
"Metoda": "Metoda",
"Metode de livrare": "Metode de livrare",
"Metode plată": "Payment methods",
@@ -905,6 +986,8 @@
"Metodă plată": "Payment method",
"Miercuri": "Wednesday",
"Migrare la alt sistem CRM": "Migrare la alt sistem CRM",
"Mileage": "Mileage",
"Min qty": "Min qty",
"Min.": "Min.",
"Minim": "Minim",
"Minute": "Minutes",
@@ -917,6 +1000,7 @@
"Model Gemini": "Model Gemini",
"Model OpenAI": "Model OpenAI",
"Model implicit": "Default model",
"Model year": "Model year",
"Modele": "Models",
"Modificat de": "Modified by",
"Moldova-Agroindbank": "Moldova-Agroindbank",
@@ -932,6 +1016,7 @@
"Mulțumim": "Thank you",
"Mâine": "Tomorrow",
"Mărci auto suportate (separate prin virgulă)": "Mărci auto suportate (separate prin virgulă)",
"Name": "Name",
"Neachitat": "Unpaid",
"Necesită acțiune": "Needs action",
"Necesită aprobare": "Needs approval",
@@ -993,10 +1078,12 @@
"No": "No",
"No-show alert": "No-show alert",
"Noiembrie": "November",
"Norm hours": "Norm hours",
"Norma ore": "Norm hours",
"Normal": "Normal",
"Norme-ore": "Labor rates",
"Note interne": "Note interne",
"Notes": "Notes",
"Notificare": "Notification",
"Notifications": "Notifications",
"Notificări": "Notifications",
@@ -1026,6 +1113,8 @@
"Nu te poți șterge pe tine!": "Nu te poți șterge pe tine!",
"Nu, renunță": "No, cancel",
"Numar": "Number",
"Number": "Number",
"Number generated": "Number generated",
"Nume": "Name",
"Nume (RO)": "Nume (RO)",
"Nume (RU)": "Nume (RU)",
@@ -1050,9 +1139,11 @@
"On = arată „Bază salariu: X · marjă Y%\" sub Total în tabelul Manopere. Off = doar Total (util când review-uiești o Fișă cu clientul de față).": "On = arată „Bază salariu: X · marjă Y%\" sub Total în tabelul Manopere. Off = doar Total (util când review-uiești o Fișă cu clientul de față).",
"On = din prețul manoperelor se scade marja pentru salariu. Off = manopere la cost (salariu pe Total integral).": "On = din prețul manoperelor se scade marja pentru salariu. Off = manopere la cost (salariu pe Total integral).",
"Onboarded": "Onboarded",
"Only trashed": "Only trashed",
"Onorat": "Onorat",
"Onorează (scade stoc)": "Onorează (scade stoc)",
"OpenAI API Key": "OpenAI API Key",
"Opened at": "Opened at",
"Operator platformă:": "Operator platformă:",
"Operatorul (tu) creezi factură:": "Operatorul (tu) creezi factură:",
"Operatorul confirmă manual factura ca plătită": "Operatorul confirmă manual factura ca plătită",
@@ -1066,6 +1157,9 @@
"Ora închidere": "Closed at",
"Oraș": "City",
"Oraș:": "Oraș:",
"Order": "Order",
"Order number": "Order number",
"Orders": "Orders",
"Ordine": "Order",
"Ordonare": "Sort",
"Ordonat": "Sorted",
@@ -1077,6 +1171,7 @@
"Ore programate": "Ore programate",
"Ore total": "Ore total",
"Ore/zi": "Hours/day",
"Owner": "Owner",
"Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.": "Owner = drepturi totale. Admin = aproape la fel. Sales = doar tenanți + planuri. Finance = facturi. Support = read-only.",
"PDF": "PDF",
"PNG/ICO, max 512 KB.": "PNG/ICO, max 512 KB.",
@@ -1086,6 +1181,7 @@
"POST /api/v1/login": "POST /api/v1/login",
"Pagina": "Page",
"Pagini": "Pages",
"Paid at": "Paid at",
"Panou": "Panel",
"Panou control": "Control panel",
"Parolă": "Password",
@@ -1093,16 +1189,24 @@
"Parolă (lasă gol pentru auto-generat)": "Parolă (lasă gol pentru auto-generat)",
"Parolă API": "Parolă API",
"Parolă resetată.": "Parolă resetată.",
"Part": "Part",
"Parts": "Parts",
"Parțial": "Partial",
"Pas 1 — Datele afacerii": "Pas 1 — Datele afacerii",
"Pas 2 — Brand & limbă": "Pas 2 — Brand & limbă",
"Pas 3 — Tarif & terminat": "Pas 3 — Tarif & terminat",
"Password": "Password",
"Pasul 1: Încarcă fișierul": "Pasul 1: Încarcă fișierul",
"Pasul 2: Mapează coloanele": "Pasul 2: Mapează coloanele",
"Pauză": "Pause",
"Pay status": "Pay status",
"PayPal": "PayPal",
"PayPal:": "PayPal:",
"Payload:": "Payload:",
"Payment": "Payment",
"Payment date": "Payment date",
"Payment method": "Payment method",
"Payments": "Payments",
"Paynet": "Paynet",
"Pe pauză": "Paused",
"Pe status": "Pe status",
@@ -1123,6 +1227,10 @@
"Persoană fizică": "Persoană fizică",
"Persoană juridică": "Persoană juridică",
"Personalizat": "Custom",
"Phone": "Phone",
"Phone alt": "Alt. phone",
"Photo": "Photo",
"Photos": "Photos",
"Pierdut": "Lost",
"Pierdute": "Pierdute",
"Piese": "Parts",
@@ -1161,6 +1269,7 @@
"Pontaj": "Timesheet",
"Populare": "Popular",
"Posibili clienți noi": "Potential new clients",
"Position": "Position",
"Post actualizat": "Post actualizat",
"Poze": "Photos",
"Pozele auto": "Vehicle photos",
@@ -1196,6 +1305,7 @@
"Preț/h": "Preț/h",
"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.",
"Price": "Price",
"Primește cereri din canalul Telegram + trimite confirmări automate.": "Primește cereri din canalul Telegram + trimite confirmări automate.",
"Primit": "Primit",
"Print": "Print",
@@ -1246,6 +1356,9 @@
"Publică": "Publish",
"Publică în magazin": "Publică în magazin",
"Publishable key": "Publishable key",
"Published": "Published",
"Purchase": "Purchase",
"Purchases": "Purchases",
"Putere": "Power",
"Pâlnie": "Pipeline",
"Până la": "To",
@@ -1254,6 +1367,8 @@
"Până la ora": "To time",
"Până la:": "Până la:",
"QR": "QR",
"Qty": "Qty",
"Quantity": "Quantity",
"ROI": "ROI",
"RON — Leu românesc": "RON — Leu românesc",
"RUB — Rublă": "RUB — Rublă",
@@ -1261,11 +1376,14 @@
"Rapoarte": "Reports",
"Raport": "Report",
"Rata conversie": "Conversion rate",
"Rate": "Rate",
"Rating": "Rating",
"Rating actualizat → {$score}★": "Rating actualizat → {$score}★",
"Reactivează": "Reactivate",
"Read the": "Read the",
"Ready at": "Ready at",
"Real ore": "Real hours",
"Reason": "Reason",
"Recalculat preț pentru {$count} piese": "Recalculat preț pentru {$count} piese",
"Recalculează": "Recalculează",
"Recent": "Recent",
@@ -1288,22 +1406,27 @@
"Redeschide fișa": "Reopen order",
"Ref.": "Ref.",
"Ref. lot/factură": "Ref. lot/factură",
"Reference": "Reference",
"Referință": "Reference",
"Referință (Stripe id, transfer)": "Referință (Stripe id, transfer)",
"Referință (chitanță / tranzacție)": "Referință (chitanță / tranzacție)",
"Refuzat": "Rejected",
"Refuzat de client": "Rejected by client",
"Regenerează": "Regenerate",
"Region": "Region",
"Register": "Register",
"Regiune": "Regiune",
"Regulă": "Rule",
"Reia": "Resume",
"Remember me": "Remember me",
"Reminder ITP / revizie": "Reminder ITP / revizie",
"Reminder service auto": "Reminder service auto",
"Renunță": "Cancel",
"Reordonează": "Reorder",
"Reparație": "Repair",
"Reparații": "Repairs",
"Report": "Report",
"Reports": "Reports",
"Rerating": "Rerating",
"Reset": "Reset",
"Reset parolă": "Reset parolă",
@@ -1320,8 +1443,10 @@
"Restanță": "Restanță",
"Restaurează": "Restore",
"Restituire": "Restituire",
"Restore": "Restore",
"Retur": "Return",
"Returnat": "Returnat",
"Revenue": "Revenue",
"Revizie": "Service",
"Revizii": "Services",
"Revocă": "Revocă",
@@ -1336,6 +1461,7 @@
"Robotizată": "Robotized",
"Rol": "Role",
"Rol primar": "Primary role",
"Role": "Role",
"Rolul principal — sincronizat automat cu drepturile RBAC.": "Rolul principal — sincronizat automat cu drepturile RBAC.",
"Roluri suplimentare": "Additional roles",
"Roluri suplimentare peste rolul primar — drepturile se cumulează.": "Roluri suplimentare peste rolul primar — drepturile se cumulează.",
@@ -1354,6 +1480,7 @@
"Salariu & comisioane": "Salariu & comisioane",
"Salariu & marjă": "Salary & margin",
"Salariu bază": "Salariu bază",
"Salary base": "Salary base",
"Sales": "Sales",
"Salut": "Hi",
"Salvează": "Save",
@@ -1373,6 +1500,7 @@
"Scadență": "Due date",
"Scanează codurile pieselor pentru a marca ca recepționate.": "Scanează codurile pieselor pentru a marca ca recepționate.",
"Scaner cod QR / Bare": "Scaner cod QR / Bare",
"Scheduled at": "Scheduled at",
"Schimb ulei + filtru": "Schimb ulei + filtru",
"Scoate din magazin": "Scoate din magazin",
"Scrie mesajul tău...": "Scrie mesajul tău...",
@@ -1382,11 +1510,13 @@
"Se salvează...": "Se salvează...",
"Se vor crea batch-uri pentru toate restanțele rămase în depozitul țintă.": "Se vor crea batch-uri pentru toate restanțele rămase în depozitul țintă.",
"Search": "Search",
"Season": "Season",
"Secret": "Secret",
"Secret key": "Secret key",
"Secret semnătură": "Secret semnătură",
"Secunde": "Seconds",
"Securitate": "Security",
"Select all": "Select all",
"Selectat": "Selected",
"Selectate": "Selected",
"Selectează": "Select",
@@ -1405,9 +1535,12 @@
"Senzori TPMS": "Senzori TPMS",
"Septembrie": "September",
"Serial": "Serial",
"Serial number": "Serial number",
"Serie": "Series",
"Serie factură": "Invoice series",
"Service": "Service",
"Service ID": "Service ID",
"Services": "Services",
"Servicii": "Services",
"Servicii & tarif": "Services & rate",
"Servicii oferite": "Servicii oferite",
@@ -1431,16 +1564,20 @@
"Sex": "Gender",
"Sezon": "Sezon",
"Sfat": "Tip",
"Shelf": "Shelf",
"Sign in": "Sign in",
"Sign up": "Sign up",
"Sincronizat": "Synced",
"Sincronizează": "Sync",
"Sistem": "Sistem",
"Site PSauto": "Public site",
"Sku": "SKU",
"Slot": "Slot",
"Slug": "Slug",
"Sold": "Balance",
"Solution": "Solution",
"Sosit": "Arrived",
"Source": "Source",
"Spate-Dreapta": "Spate-Dreapta",
"Spate-Stânga": "Spate-Stânga",
"Spațiu de lucru adăugat": "Spațiu de lucru adăugat",
@@ -1462,6 +1599,8 @@
"Stoc minim": "Stoc minim",
"Stoc minim atins": "Minimum stock reached",
"Stoc piese (la preț achiziție)": "Stoc piese (la preț achiziție)",
"Stock": "Stock",
"Storage": "Storage",
"Storage (MB)": "Storage (MB)",
"Storage media": "Storage media",
"Stripe: înregistrează cont la": "Stripe: înregistrează cont la",
@@ -1474,6 +1613,7 @@
"Subiect (email)": "Subiect (email)",
"Subiect *": "Subiect *",
"Subiect și data sunt obligatorii": "Subiect și data sunt obligatorii",
"Submit": "Submit",
"Subtotal": "Subtotal",
"Subtotal manopere:": "Subtotal manopere:",
"Subtotal piese:": "Subtotal piese:",
@@ -1488,6 +1628,7 @@
"Sună": "Call",
"Sună-i sau trimite-le un email cu suma datorată.": "Sună-i sau trimite-le un email cu suma datorată.",
"Suport": "Support",
"Supplier": "Supplier",
"Sursă": "Source",
"Sursă & Atribuire": "Sursă & Atribuire",
"Suspendat": "Suspended",
@@ -1512,6 +1653,8 @@
"Tarif/h": "Tarif/h",
"Tarif/oră": "Tarif/oră",
"Tarifare": "Tarifare",
"Task": "Task",
"Tasks": "Tasks",
"Taxă depozitare": "Taxă depozitare",
"Taxă livrare": "Taxă livrare",
"Tehnice": "Tehnice",
@@ -1545,6 +1688,7 @@
"Test notificare push": "Test notificare push",
"Testează bot Telegram": "Testează bot Telegram",
"Theme color": "Theme color",
"Time": "Time",
"Timp lucrat": "Time worked",
"Timp mediu": "Avg time",
"Timp total": "Total time",
@@ -1556,6 +1700,8 @@
"Tip jante": "Tip jante",
"Tipărește": "Print",
"Tipărește etichete QR": "Tipărește etichete QR",
"Title": "Title",
"To": "To",
"Toate": "All",
"Toate atelierele": "All workshops",
"Toate autovehiculele": "All vehicles",
@@ -1590,6 +1736,7 @@
"Total ieșiri": "Total ieșiri",
"Total intrări": "Total intrări",
"Total net": "Total net",
"Total paid": "Total paid",
"Total plătit": "Total paid",
"Total rezultate": "Total results",
"Total venituri": "Total venituri",
@@ -1606,8 +1753,10 @@
"Transfer": "Transfer",
"Transfer bancar": "Bank transfer",
"Transfer bancar: pune doar IBAN-ul tău, fără cont gateway": "Transfer bancar: pune doar IBAN-ul tău, fără cont gateway",
"Transmission": "Transmission",
"Transport": "Transport",
"Tranz.": "Tranz.",
"Trashed": "Trashed",
"Trial expiră la": "Trial expiră la",
"Trimis": "Sent",
"Trimis · fără răspuns": "Sent · no response",
@@ -1626,6 +1775,7 @@
"Trimite prin email": "Send by email",
"Trimite reminder după X zile fără vizită": "Trimite reminder după X zile fără vizită",
"Trimite reset parolă": "Trimite reset parolă",
"Type": "Type",
"UM": "Unit",
"URL secret pentru POST direct cu lead-uri din site-ul tău.": "URL secret pentru POST direct cu lead-uri din site-ul tău.",
"Ulei": "Oil",
@@ -1637,6 +1787,7 @@
"Ultima sincronizare": "Last synced",
"Ultimul cod citit:": "Ultimul cod citit:",
"Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).",
"Updated at": "Updated at",
"Upgrade": "Upgrade",
"Urgent": "Urgent",
"Urgente": "Urgent",
@@ -1645,7 +1796,9 @@
"Următor": "Next",
"Următorul": "Next",
"Următorul →": "Următorul →",
"User": "User",
"User API": "User API",
"User name": "User",
"Useri": "Useri",
"Utilități": "Utilities",
"Utilizator": "User",
@@ -1667,6 +1820,13 @@
"Valoare": "Valoare",
"Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}": "Variabile disponibile: {name}, {car}, {date}, {time}, {amount}, {service}, {mileage}",
"Vară": "Summer",
"Vat": "VAT",
"Vat rate": "VAT rate",
"Vehicle": "Vehicle",
"Vehicle class": "Vehicle class",
"Vehicle make": "Vehicle make",
"Vehicle model": "Vehicle model",
"Vehicle plate": "Vehicle plate",
"Vehicul": "Vehicle",
"Vehicul existent": "Existing vehicle",
"Vehicul nou": "New vehicle",
@@ -1683,7 +1843,9 @@
"Vezi imagine": "View image",
"Vezi mai mult": "View more",
"Vezi tot": "View all",
"View": "View",
"Viitoare": "Viitoare",
"Vin": "VIN",
"Vineri": "Friday",
"Visa, Mastercard prin Stripe": "Visa, Mastercard prin Stripe",
"Vizibil": "Visible",
@@ -1700,6 +1862,7 @@
"Vă mulțumim!": "Vă mulțumim!",
"Văzut": "Seen",
"WBAFE81070CY34521": "WBAFE81070CY34521",
"Warehouse": "Warehouse",
"Watch video tutorials at": "Watch video tutorials at",
"We suggest starting with the following.": "We suggest starting with the following.",
"Web Push neconfigurat": "Web Push neconfigurat",
@@ -1709,11 +1872,17 @@
"Webhook intrări (formulare site)": "Webhook intrări (formulare site)",
"Webhook secret": "Webhook secret",
"Webhook setat — botul e gata": "Webhook setat — botul e gata",
"Website": "Website",
"Weekend": "Weekend",
"Welcome": "Welcome",
"WhatsApp": "WhatsApp",
"Widget": "Widget",
"With trashed": "With trashed",
"Without trashed": "Without trashed",
"Work": "Work",
"Works": "Works",
"XLS": "XLS",
"Year": "Year",
"Yes": "Yes",
"ZIP": "ZIP",
"ZIP cu fișiere JSON (1 per tabel) + media + manifest.json.": "ZIP cu fișiere JSON (1 per tabel) + media + manifest.json.",