feat(rbac): human labels + descriptions for all 50 permissions
- Add Permissions::permissionLabels() mapping every slug to a human-readable RO label (e.g. 'clients.view_all' → 'Vezi toți clienții'). - RoleResource permission checkboxes now show translated labels as titles + technical slug as description (so admins see both the meaning and the key). - PermissionOverridesRelationManager Select 'permission_id' now shows 'Human label (technical.slug)' format, plus helper text explaining GRANT/DENY. Same format on the display column. - +57 translations (50 permission labels in RU/EN + role page supporting keys + module labels). All 306 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -132,6 +132,65 @@ class Permissions
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Human-readable label for each permission slug. Used by role editor + audit UI. */
|
||||||
|
public static function permissionLabels(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'clients.view_all' => 'Vezi toți clienții',
|
||||||
|
'clients.view_own' => 'Vezi doar clienții proprii',
|
||||||
|
'clients.create' => 'Adaugă client',
|
||||||
|
'clients.edit' => 'Editează client',
|
||||||
|
'clients.delete' => 'Șterge client',
|
||||||
|
'clients.export' => 'Exportă clienți (CSV)',
|
||||||
|
'vehicles.view_all' => 'Vezi toate mașinile',
|
||||||
|
'vehicles.create' => 'Adaugă mașină',
|
||||||
|
'vehicles.edit' => 'Editează mașină',
|
||||||
|
'vehicles.delete' => 'Șterge mașină',
|
||||||
|
'work_orders.view_all' => 'Vezi toate fișele',
|
||||||
|
'work_orders.view_own_assigned' => 'Vezi doar fișele proprii asignate',
|
||||||
|
'work_orders.create' => 'Deschide fișă nouă',
|
||||||
|
'work_orders.edit' => 'Editează fișă',
|
||||||
|
'work_orders.delete' => 'Șterge fișă',
|
||||||
|
'work_orders.change_status' => 'Schimbă statusul fișei',
|
||||||
|
'work_orders.approve_discount_5' => 'Aprobă discount ≤ 5%',
|
||||||
|
'work_orders.approve_discount_20' => 'Aprobă discount ≤ 20%',
|
||||||
|
'work_orders.approve_discount_any' => 'Aprobă discount fără limită',
|
||||||
|
'work_orders.print' => 'Tipărește / PDF fișă',
|
||||||
|
'finance.view_overview' => 'Vezi panou finanțe',
|
||||||
|
'finance.view_pl' => 'Vezi profit & pierdere (P&L)',
|
||||||
|
'finance.view_internal_margin' => 'Vezi marja internă (baza de salariu)',
|
||||||
|
'finance.create_payment' => 'Înregistrează plată',
|
||||||
|
'finance.delete_payment' => 'Șterge plată',
|
||||||
|
'finance.create_expense' => 'Înregistrează cheltuială',
|
||||||
|
'finance.export' => 'Exportă rapoarte financiare',
|
||||||
|
'salaries.view_own' => 'Vezi propriul salariu',
|
||||||
|
'salaries.view_all' => 'Vezi salariile tuturor',
|
||||||
|
'salaries.calculate' => 'Calculează salarii',
|
||||||
|
'salaries.mark_paid' => 'Marchează salariul ca plătit',
|
||||||
|
'inventory.view' => 'Vezi stoc (piese)',
|
||||||
|
'inventory.create_part' => 'Adaugă piesă în catalog',
|
||||||
|
'inventory.edit_part' => 'Editează piesă',
|
||||||
|
'inventory.delete_part' => 'Șterge piesă',
|
||||||
|
'inventory.adjust_stock' => 'Ajustează stocul manual',
|
||||||
|
'inventory.create_purchase' => 'Creează comandă de aprovizionare',
|
||||||
|
'inventory.receive_goods' => 'Recepționează marfă',
|
||||||
|
'suppliers.view' => 'Vezi furnizori',
|
||||||
|
'suppliers.edit' => 'Editează furnizor',
|
||||||
|
'suppliers.delete' => 'Șterge furnizor',
|
||||||
|
'admin.users.view' => 'Vezi utilizatori',
|
||||||
|
'admin.users.manage' => 'Gestionează utilizatori (creează/blochează)',
|
||||||
|
'admin.roles.manage' => 'Editează roluri & drepturi',
|
||||||
|
'admin.settings.edit' => 'Editează setările companiei',
|
||||||
|
'admin.settings.integrations' => 'Configurează integrări externe',
|
||||||
|
'admin.api_tokens.manage' => 'Gestionează tokene API',
|
||||||
|
'admin.audit_log.view' => 'Vezi jurnalul de audit',
|
||||||
|
'admin.backup.download' => 'Descarcă backup',
|
||||||
|
'ai_assistant.use' => 'Folosește AI Assistant',
|
||||||
|
'ai_assistant.configure_keys' => 'Configurează chei API pentru AI',
|
||||||
|
'analytics.view' => 'Vezi rapoarte & analitică',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Role-permission matrix per TZ §2.4.
|
* Role-permission matrix per TZ §2.4.
|
||||||
* Returns: ['owner' => [perm1, perm2, ...], ...]
|
* Returns: ['owner' => [perm1, perm2, ...], ...]
|
||||||
|
|||||||
+13
-2
@@ -35,7 +35,14 @@ class PermissionOverridesRelationManager extends RelationManager
|
|||||||
->label(__('Drept'))
|
->label(__('Drept'))
|
||||||
->required()
|
->required()
|
||||||
->searchable()
|
->searchable()
|
||||||
->options(fn () => Permission::orderBy('name')->pluck('name', 'id'))
|
->options(function () {
|
||||||
|
$labels = Permissions::permissionLabels();
|
||||||
|
return Permission::orderBy('name')->get()
|
||||||
|
->mapWithKeys(fn ($p) => [
|
||||||
|
$p->id => ($labels[$p->name] ? __($labels[$p->name]) . " ({$p->name})" : $p->name),
|
||||||
|
])->all();
|
||||||
|
})
|
||||||
|
->helperText(__('Alege dreptul concret pe care vrei să-l acorzi (GRANT) sau să-l refuzi (DENY) pentru acest utilizator, indiferent de rolul lui.'))
|
||||||
->columnSpanFull(),
|
->columnSpanFull(),
|
||||||
Forms\Components\Select::make('mode')
|
Forms\Components\Select::make('mode')
|
||||||
->required()
|
->required()
|
||||||
@@ -61,7 +68,11 @@ class PermissionOverridesRelationManager extends RelationManager
|
|||||||
Tables\Columns\TextColumn::make('permission.name')
|
Tables\Columns\TextColumn::make('permission.name')
|
||||||
->label(__('Drept'))
|
->label(__('Drept'))
|
||||||
->searchable()
|
->searchable()
|
||||||
->sortable(),
|
->sortable()
|
||||||
|
->formatStateUsing(function ($state) {
|
||||||
|
$labels = Permissions::permissionLabels();
|
||||||
|
return isset($labels[$state]) ? __($labels[$state]) . " ({$state})" : $state;
|
||||||
|
}),
|
||||||
Tables\Columns\TextColumn::make('mode')
|
Tables\Columns\TextColumn::make('mode')
|
||||||
->badge()
|
->badge()
|
||||||
->colors(['success' => 'grant', 'danger' => 'deny'])
|
->colors(['success' => 'grant', 'danger' => 'deny'])
|
||||||
|
|||||||
+56
-2
@@ -108,11 +108,13 @@
|
|||||||
"Adaugă imagine": "Add image",
|
"Adaugă imagine": "Add image",
|
||||||
"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ă 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ă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Add vehicles manually or import from CSV. Use VIN search for quick decode and auto-fill of brand/model/year.",
|
"Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Add vehicles manually or import from CSV. Use VIN search for quick decode and auto-fill of brand/model/year.",
|
||||||
|
"Adaugă mașină": "Add vehicle",
|
||||||
"Adaugă notă": "Add note",
|
"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ă 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 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ă piesă": "Add part",
|
"Adaugă piesă": "Add part",
|
||||||
"Adaugă piesă implicită": "Add default part",
|
"Adaugă piesă implicită": "Add default part",
|
||||||
|
"Adaugă piesă în catalog": "Add part to catalog",
|
||||||
"Adaugă plată": "Add payment",
|
"Adaugă plată": "Add payment",
|
||||||
"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 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ă 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.",
|
||||||
@@ -128,6 +130,7 @@
|
|||||||
"Adaugă vehicul": "Add vehicle",
|
"Adaugă vehicul": "Add vehicle",
|
||||||
"Address": "Address",
|
"Address": "Address",
|
||||||
"Admin tenant (la creare)": "Admin tenant (la creare)",
|
"Admin tenant (la creare)": "Admin tenant (la creare)",
|
||||||
|
"Administrare": "Administration",
|
||||||
"Administrator": "Administrator",
|
"Administrator": "Administrator",
|
||||||
"Adresă": "Address",
|
"Adresă": "Address",
|
||||||
"Adresă IP": "IP address",
|
"Adresă IP": "IP address",
|
||||||
@@ -141,11 +144,13 @@
|
|||||||
"Ai uitat parola?": "Forgot password?",
|
"Ai uitat parola?": "Forgot password?",
|
||||||
"Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".": "Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".",
|
"Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".": "Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".",
|
||||||
"Aici apar clienții care și-au creat cont în magazinul online (/shop/register).": "Customers who register in the online shop (/shop/register) appear here.",
|
"Aici apar clienții care și-au creat cont în magazinul online (/shop/register).": "Customers who register in the online shop (/shop/register) appear here.",
|
||||||
|
"Ajustează stocul manual": "Adjust stock manually",
|
||||||
"Ale mele": "Mine",
|
"Ale mele": "Mine",
|
||||||
"Aleatoriu": "Random",
|
"Aleatoriu": "Random",
|
||||||
"Alege categorie": "Choose category",
|
"Alege categorie": "Choose category",
|
||||||
"Alege client": "Choose client",
|
"Alege client": "Choose client",
|
||||||
"Alege dată": "Choose date",
|
"Alege dată": "Choose date",
|
||||||
|
"Alege dreptul concret pe care vrei să-l acorzi (GRANT) sau să-l refuzi (DENY) pentru acest utilizator, indiferent de rolul lui.": "Choose the specific permission you want to grant (GRANT) or deny (DENY) for this user, regardless of their role.",
|
||||||
"Alege limbă": "Choose language",
|
"Alege limbă": "Choose language",
|
||||||
"Alege maistru": "Choose master",
|
"Alege maistru": "Choose master",
|
||||||
"Alege mecanic": "Choose mechanic",
|
"Alege mecanic": "Choose mechanic",
|
||||||
@@ -172,6 +177,7 @@
|
|||||||
"An fabricație": "Production year",
|
"An fabricație": "Production year",
|
||||||
"An model": "Model year",
|
"An model": "Model year",
|
||||||
"An model (estimat)": "Model year (est.)",
|
"An model (estimat)": "Model year (est.)",
|
||||||
|
"Analitică": "Analytics",
|
||||||
"Angajat din": "Employed since",
|
"Angajat din": "Employed since",
|
||||||
"Ani": "Years",
|
"Ani": "Years",
|
||||||
"Anonim": "Anonymous",
|
"Anonim": "Anonymous",
|
||||||
@@ -205,6 +211,9 @@
|
|||||||
"Aprobat de": "Approved by",
|
"Aprobat de": "Approved by",
|
||||||
"Aprobat de client": "Approved by client",
|
"Aprobat de client": "Approved by client",
|
||||||
"Aprobă": "Approve",
|
"Aprobă": "Approve",
|
||||||
|
"Aprobă discount fără limită": "Approve discount without limit",
|
||||||
|
"Aprobă discount ≤ 20%": "Approve discount ≤ 20%",
|
||||||
|
"Aprobă discount ≤ 5%": "Approve discount ≤ 5%",
|
||||||
"Arată": "Show",
|
"Arată": "Show",
|
||||||
"Arhivat": "Archived",
|
"Arhivat": "Archived",
|
||||||
"Arhivează": "Archive",
|
"Arhivează": "Archive",
|
||||||
@@ -266,7 +275,7 @@
|
|||||||
"Beneficiar:": "Beneficiar:",
|
"Beneficiar:": "Beneficiar:",
|
||||||
"Benzină": "Petrol",
|
"Benzină": "Petrol",
|
||||||
"Berlină": "Sedan",
|
"Berlină": "Sedan",
|
||||||
"Bifează ce poate face acest rol. Modificările au efect imediat.": "Bifează ce poate face acest rol. Modificările au efect imediat.",
|
"Bifează ce poate face acest rol. Modificările au efect imediat.": "Check what this role can do. Changes take effect immediately.",
|
||||||
"Bifă": "Check",
|
"Bifă": "Check",
|
||||||
"Bine ai venit": "Welcome",
|
"Bine ai venit": "Welcome",
|
||||||
"Blocat": "Blocked",
|
"Blocat": "Blocked",
|
||||||
@@ -307,6 +316,7 @@
|
|||||||
"Calculat salariul {$period} pentru {$count} utilizatori": "Calculat salariul {$period} pentru {$count} utilizatori",
|
"Calculat salariul {$period} pentru {$count} utilizatori": "Calculat salariul {$period} pentru {$count} utilizatori",
|
||||||
"Calculație": "Quote",
|
"Calculație": "Quote",
|
||||||
"Calculează luna curentă": "Calculate current month",
|
"Calculează luna curentă": "Calculate current month",
|
||||||
|
"Calculează salarii": "Calculate salaries",
|
||||||
"Calendar": "Calendar",
|
"Calendar": "Calendar",
|
||||||
"Calendar vizual": "Visual calendar",
|
"Calendar vizual": "Visual calendar",
|
||||||
"Camion": "Truck",
|
"Camion": "Truck",
|
||||||
@@ -435,6 +445,8 @@
|
|||||||
"Condition": "Condition",
|
"Condition": "Condition",
|
||||||
"Condiții (toate trebuie îndeplinite)": "Conditions (all must match)",
|
"Condiții (toate trebuie îndeplinite)": "Conditions (all must match)",
|
||||||
"Configurare:": "Setup:",
|
"Configurare:": "Setup:",
|
||||||
|
"Configurează chei API pentru AI": "Configure AI API keys",
|
||||||
|
"Configurează integrări externe": "Configure external integrations",
|
||||||
"Configurează procentele pentru calcul salariu. Marja internă (nu TVA) se scade din prețul de manoperă pentru a determina baza salariului.": "Configure percentages for salary calculation. The internal margin (not VAT) is deducted from the labor price to determine salary base.",
|
"Configurează procentele pentru calcul salariu. Marja internă (nu TVA) se scade din prețul de manoperă pentru a determina baza salariului.": "Configure percentages for salary calculation. The internal margin (not VAT) is deducted from the labor price to determine salary base.",
|
||||||
"Configurări": "Configuration",
|
"Configurări": "Configuration",
|
||||||
"Configurări avansate": "Advanced settings",
|
"Configurări avansate": "Advanced settings",
|
||||||
@@ -494,6 +506,7 @@
|
|||||||
"Credit": "Credit",
|
"Credit": "Credit",
|
||||||
"Creează automat articolele noi în nomenclatură": "Auto-create new items in catalog",
|
"Creează automat articolele noi în nomenclatură": "Auto-create new items in catalog",
|
||||||
"Creează cerere": "Create lead",
|
"Creează cerere": "Create lead",
|
||||||
|
"Creează comandă de aprovizionare": "Create purchase order",
|
||||||
"Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.": "Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.",
|
"Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.": "Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.",
|
||||||
"Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.": "Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.",
|
"Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.": "Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.",
|
||||||
"Crescător": "Ascending",
|
"Crescător": "Ascending",
|
||||||
@@ -597,6 +610,7 @@
|
|||||||
"Descarcă": "Download",
|
"Descarcă": "Download",
|
||||||
"Descarcă PDF": "Download PDF",
|
"Descarcă PDF": "Download PDF",
|
||||||
"Descarcă QR (SVG)": "Download QR (SVG)",
|
"Descarcă QR (SVG)": "Download QR (SVG)",
|
||||||
|
"Descarcă backup": "Download backup",
|
||||||
"Descarcă factura": "Download invoice",
|
"Descarcă factura": "Download invoice",
|
||||||
"Descarcă template": "Download template",
|
"Descarcă template": "Download template",
|
||||||
"Deschide": "Open",
|
"Deschide": "Open",
|
||||||
@@ -604,6 +618,7 @@
|
|||||||
"Deschide deal": "Open deal",
|
"Deschide deal": "Open deal",
|
||||||
"Deschide fișa": "Open order",
|
"Deschide fișa": "Open order",
|
||||||
"Deschide fișa pentru aprobare lucrare/piesă.": "Open the order to approve work/part.",
|
"Deschide fișa pentru aprobare lucrare/piesă.": "Open the order to approve work/part.",
|
||||||
|
"Deschide fișă nouă": "Open new order",
|
||||||
"Deschide tenantul": "Deschide tenantul",
|
"Deschide tenantul": "Deschide tenantul",
|
||||||
"Deschide →": "Open →",
|
"Deschide →": "Open →",
|
||||||
"Deschis": "Opened",
|
"Deschis": "Opened",
|
||||||
@@ -677,12 +692,19 @@
|
|||||||
"Edit": "Edit",
|
"Edit": "Edit",
|
||||||
"Editare": "Edit",
|
"Editare": "Edit",
|
||||||
"Editează": "Edit",
|
"Editează": "Edit",
|
||||||
|
"Editează client": "Edit client",
|
||||||
"Editează cod echivalent": "Edit equivalent code",
|
"Editează cod echivalent": "Edit equivalent code",
|
||||||
"Editează drepturi": "Edit permissions",
|
"Editează drepturi": "Edit permissions",
|
||||||
"Editează excepția": "Edit override",
|
"Editează excepția": "Edit override",
|
||||||
|
"Editează fișă": "Edit order",
|
||||||
|
"Editează furnizor": "Edit supplier",
|
||||||
|
"Editează mașină": "Edit vehicle",
|
||||||
|
"Editează piesă": "Edit part",
|
||||||
"Editează piesă implicită": "Edit default part",
|
"Editează piesă implicită": "Edit default part",
|
||||||
"Editează produs": "Edit product",
|
"Editează produs": "Edit product",
|
||||||
|
"Editează roluri & drepturi": "Edit roles & permissions",
|
||||||
"Editează rând": "Edit row",
|
"Editează rând": "Edit row",
|
||||||
|
"Editează setările companiei": "Edit company settings",
|
||||||
"Efectuat": "Outgoing",
|
"Efectuat": "Outgoing",
|
||||||
"Eficiență": "Efficiency",
|
"Eficiență": "Efficiency",
|
||||||
"Electric": "Electric",
|
"Electric": "Electric",
|
||||||
@@ -735,6 +757,8 @@
|
|||||||
"Expiră la (opțional)": "Expires at (optional)",
|
"Expiră la (opțional)": "Expires at (optional)",
|
||||||
"Export": "Export",
|
"Export": "Export",
|
||||||
"Export CSV": "Export CSV",
|
"Export CSV": "Export CSV",
|
||||||
|
"Exportă clienți (CSV)": "Export clients (CSV)",
|
||||||
|
"Exportă rapoarte financiare": "Export financial reports",
|
||||||
"Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:": "Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:",
|
"Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:": "Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:",
|
||||||
"Express": "Express",
|
"Express": "Express",
|
||||||
"Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.": "Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.",
|
"Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.": "Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.",
|
||||||
@@ -781,6 +805,7 @@
|
|||||||
"Fișă asociată": "Linked order",
|
"Fișă asociată": "Linked order",
|
||||||
"Fișă de lucru": "Work order",
|
"Fișă de lucru": "Work order",
|
||||||
"Fișă lucru": "Work order",
|
"Fișă lucru": "Work order",
|
||||||
|
"Folosește AI Assistant": "Use AI Assistant",
|
||||||
"Folosește „Check-in depozit": "Use \"Check-in storage\"",
|
"Folosește „Check-in depozit": "Use \"Check-in storage\"",
|
||||||
"Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.": "Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.",
|
"Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.": "Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.",
|
||||||
"Folosit dacă markup = 0.": "Used when markup = 0.",
|
"Folosit dacă markup = 0.": "Used when markup = 0.",
|
||||||
@@ -830,6 +855,8 @@
|
|||||||
"Generează raport": "Generate report",
|
"Generează raport": "Generate report",
|
||||||
"Generează token": "Generate token",
|
"Generează token": "Generate token",
|
||||||
"Generez ZIP...": "Generez ZIP...",
|
"Generez ZIP...": "Generez ZIP...",
|
||||||
|
"Gestionează tokene API": "Manage API tokens",
|
||||||
|
"Gestionează utilizatori (creează/blochează)": "Manage users (create/block)",
|
||||||
"Global": "Global",
|
"Global": "Global",
|
||||||
"Gol — trage un card aici": "Empty — drop a card here",
|
"Gol — trage un card aici": "Empty — drop a card here",
|
||||||
"Grafic": "Chart",
|
"Grafic": "Chart",
|
||||||
@@ -1029,6 +1056,7 @@
|
|||||||
"Marchează acest tenant ca demo (datele pot fi resetate periodic).": "Marchează acest tenant ca demo (datele pot fi resetate periodic).",
|
"Marchează acest tenant ca demo (datele pot fi resetate periodic).": "Marchează acest tenant ca demo (datele pot fi resetate periodic).",
|
||||||
"Marchează anulat": "Mark as cancelled",
|
"Marchează anulat": "Mark as cancelled",
|
||||||
"Marchează plătit": "Mark as paid",
|
"Marchează plătit": "Mark as paid",
|
||||||
|
"Marchează salariul ca plătit": "Mark salary as paid",
|
||||||
"Marchează setul ca ridicat de client.": "Mark set as picked up by client.",
|
"Marchează setul ca ridicat de client.": "Mark set as picked up by client.",
|
||||||
"Marchează terminat": "Mark as done",
|
"Marchează terminat": "Mark as done",
|
||||||
"Marcă": "Brand",
|
"Marcă": "Brand",
|
||||||
@@ -1531,6 +1559,7 @@
|
|||||||
"Recepționată parțial": "Partially received",
|
"Recepționată parțial": "Partially received",
|
||||||
"Recepționată total": "Fully received",
|
"Recepționată total": "Fully received",
|
||||||
"Recepționează": "Receive",
|
"Recepționează": "Receive",
|
||||||
|
"Recepționează marfă": "Receive goods",
|
||||||
"Recomandat": "Recommended",
|
"Recomandat": "Recommended",
|
||||||
"Recomandate": "Recommended",
|
"Recomandate": "Recommended",
|
||||||
"Recomandă": "Recommend",
|
"Recomandă": "Recommend",
|
||||||
@@ -1601,7 +1630,7 @@
|
|||||||
"Rolul principal — sincronizat automat cu drepturile RBAC.": "Primary role — automatically synced with RBAC permissions.",
|
"Rolul principal — sincronizat automat cu drepturile RBAC.": "Primary role — automatically synced with RBAC permissions.",
|
||||||
"Roluri suplimentare": "Additional roles",
|
"Roluri suplimentare": "Additional roles",
|
||||||
"Roluri suplimentare peste rolul primar — drepturile se cumulează.": "Additional roles on top of the primary — permissions accumulate.",
|
"Roluri suplimentare peste rolul primar — drepturile se cumulează.": "Additional roles on top of the primary — permissions accumulate.",
|
||||||
"Rolurile sistem (owner/admin/etc.) au numele blocat": "Rolurile sistem (owner/admin/etc.) au numele blocat",
|
"Rolurile sistem (owner/admin/etc.) au numele blocat": "System roles (owner/admin/etc.) have locked names",
|
||||||
"Română": "Romanian",
|
"Română": "Romanian",
|
||||||
"Rotire": "Rotate",
|
"Rotire": "Rotate",
|
||||||
"Roți": "Wheels",
|
"Roți": "Wheels",
|
||||||
@@ -1643,6 +1672,7 @@
|
|||||||
"Scaner cod QR / Bare": "Scaner cod QR / Bare",
|
"Scaner cod QR / Bare": "Scaner cod QR / Bare",
|
||||||
"Scheduled at": "Scheduled at",
|
"Scheduled at": "Scheduled at",
|
||||||
"Schimb ulei + filtru": "Oil + filter change",
|
"Schimb ulei + filtru": "Oil + filter change",
|
||||||
|
"Schimbă statusul fișei": "Change order status",
|
||||||
"Scoate din magazin": "Scoate din magazin",
|
"Scoate din magazin": "Scoate din magazin",
|
||||||
"Scrie mesajul tău...": "Type your message...",
|
"Scrie mesajul tău...": "Type your message...",
|
||||||
"Scule / consumabile": "Tools / consumables",
|
"Scule / consumabile": "Tools / consumables",
|
||||||
@@ -1849,6 +1879,7 @@
|
|||||||
"Tip implicit": "Default type",
|
"Tip implicit": "Default type",
|
||||||
"Tip jante": "Rim type",
|
"Tip jante": "Rim type",
|
||||||
"Tipărește": "Print",
|
"Tipărește": "Print",
|
||||||
|
"Tipărește / PDF fișă": "Print / PDF order",
|
||||||
"Tipărește etichete QR": "Print QR labels",
|
"Tipărește etichete QR": "Print QR labels",
|
||||||
"Title": "Title",
|
"Title": "Title",
|
||||||
"To": "To",
|
"To": "To",
|
||||||
@@ -1998,9 +2029,24 @@
|
|||||||
"Verificat": "Verified",
|
"Verificat": "Verified",
|
||||||
"Verifică emailul": "Check your email",
|
"Verifică emailul": "Check your email",
|
||||||
"Verifică și amintește": "Verify and remind",
|
"Verifică și amintește": "Verify and remind",
|
||||||
|
"Vezi doar clienții proprii": "View only own clients",
|
||||||
|
"Vezi doar fișele proprii asignate": "View only own assigned orders",
|
||||||
|
"Vezi furnizori": "View suppliers",
|
||||||
"Vezi imagine": "View image",
|
"Vezi imagine": "View image",
|
||||||
|
"Vezi jurnalul de audit": "View audit log",
|
||||||
"Vezi mai mult": "View more",
|
"Vezi mai mult": "View more",
|
||||||
|
"Vezi marja internă (baza de salariu)": "View internal margin (salary base)",
|
||||||
|
"Vezi panou finanțe": "View finance overview",
|
||||||
|
"Vezi profit & pierdere (P&L)": "View P&L",
|
||||||
|
"Vezi propriul salariu": "View own salary",
|
||||||
|
"Vezi rapoarte & analitică": "View reports & analytics",
|
||||||
|
"Vezi salariile tuturor": "View all salaries",
|
||||||
|
"Vezi stoc (piese)": "View stock (parts)",
|
||||||
|
"Vezi toate fișele": "View all orders",
|
||||||
|
"Vezi toate mașinile": "View all vehicles",
|
||||||
"Vezi tot": "View all",
|
"Vezi tot": "View all",
|
||||||
|
"Vezi toți clienții": "View all clients",
|
||||||
|
"Vezi utilizatori": "View users",
|
||||||
"Viber": "Viber",
|
"Viber": "Viber",
|
||||||
"View": "View",
|
"View": "View",
|
||||||
"Viitoare": "Viitoare",
|
"Viitoare": "Viitoare",
|
||||||
@@ -2339,8 +2385,10 @@
|
|||||||
"Încărcare service": "Workshop load",
|
"Încărcare service": "Workshop load",
|
||||||
"Înregistrare": "Register",
|
"Înregistrare": "Register",
|
||||||
"Înregistrat": "Registered",
|
"Înregistrat": "Registered",
|
||||||
|
"Înregistrează cheltuială": "Record expense",
|
||||||
"Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.": "Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.",
|
"Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.": "Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.",
|
||||||
"Înregistrează lucrările trimise la ateliere externe (turbo, cutii, vopsitorie). Costul terțului + markup intră automat în totalul fișei asociate.": "Register jobs sent to external workshops (turbo, gearboxes, paint). Subcontractor cost + markup automatically add up in the linked order total.",
|
"Înregistrează lucrările trimise la ateliere externe (turbo, cutii, vopsitorie). Costul terțului + markup intră automat în totalul fișei asociate.": "Register jobs sent to external workshops (turbo, gearboxes, paint). Subcontractor cost + markup automatically add up in the linked order total.",
|
||||||
|
"Î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.",
|
"Î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...",
|
"Întreabă-mă orice — diagnostic, sumar, sugestii, redactare mesaje către clienți...": "Ask me anything — diagnostics, summary, suggestions, drafting client messages...",
|
||||||
"Șabloane servicii": "Service templates",
|
"Șabloane servicii": "Service templates",
|
||||||
@@ -2349,8 +2397,14 @@
|
|||||||
"Șablon serviciu": "Service template",
|
"Șablon serviciu": "Service template",
|
||||||
"Șablonul nu are rânduri": "Template has no rows",
|
"Șablonul nu are rânduri": "Template has no rows",
|
||||||
"Șterge": "Delete",
|
"Șterge": "Delete",
|
||||||
|
"Șterge client": "Delete client",
|
||||||
"Șterge conversația?": "Delete conversation?",
|
"Șterge conversația?": "Delete conversation?",
|
||||||
|
"Șterge fișă": "Delete order",
|
||||||
|
"Șterge furnizor": "Delete supplier",
|
||||||
"Șterge imagine": "Delete image",
|
"Șterge imagine": "Delete image",
|
||||||
|
"Șterge mașină": "Delete vehicle",
|
||||||
|
"Șterge piesă": "Delete part",
|
||||||
|
"Șterge plată": "Delete payment",
|
||||||
"Șterge produs": "Delete product",
|
"Șterge produs": "Delete product",
|
||||||
"Șterge rând": "Delete row",
|
"Șterge rând": "Delete row",
|
||||||
"Șterge selectate": "Delete selected",
|
"Șterge selectate": "Delete selected",
|
||||||
|
|||||||
+57
-3
@@ -108,11 +108,13 @@
|
|||||||
"Adaugă imagine": "Добавить изображение",
|
"Adaugă imagine": "Добавить изображение",
|
||||||
"Adaugă manopere și piese care se aplică împreună când selectezi acest șablon pe o fișă.": "Добавьте работы и запчасти, которые применяются вместе при выборе этого шаблона в наряде.",
|
"Adaugă manopere și piese care se aplică împreună când selectezi acest șablon pe o fișă.": "Добавьте работы и запчасти, которые применяются вместе при выборе этого шаблона в наряде.",
|
||||||
"Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Добавляйте авто вручную или импортируйте из CSV. Используйте поиск VIN для быстрого декодера и авто-заполнения марка/модель/год.",
|
"Adaugă mașini manual sau importă din CSV. Folosește VIN-căutare pentru decoder rapid și completare automată brand/model/an.": "Добавляйте авто вручную или импортируйте из CSV. Используйте поиск VIN для быстрого декодера и авто-заполнения марка/модель/год.",
|
||||||
|
"Adaugă mașină": "Добавить авто",
|
||||||
"Adaugă notă": "Добавить заметку",
|
"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ă 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 care se montează de obicei la această manoperă — se adaugă automat în fișă când selectezi manopera.": "Добавьте запчасти, которые обычно устанавливаются в этой работе — они автоматически добавятся в наряд при выборе работы.",
|
||||||
"Adaugă piesă": "Добавить запчасть",
|
"Adaugă piesă": "Добавить запчасть",
|
||||||
"Adaugă piesă implicită": "Добавить запчасть по умолчанию",
|
"Adaugă piesă implicită": "Добавить запчасть по умолчанию",
|
||||||
|
"Adaugă piesă în catalog": "Добавить запчасть в каталог",
|
||||||
"Adaugă plată": "Добавить платёж",
|
"Adaugă plată": "Добавить платёж",
|
||||||
"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 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ă 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.",
|
||||||
@@ -128,6 +130,7 @@
|
|||||||
"Adaugă vehicul": "Добавить транспорт",
|
"Adaugă vehicul": "Добавить транспорт",
|
||||||
"Address": "Адрес",
|
"Address": "Адрес",
|
||||||
"Admin tenant (la creare)": "Admin tenant (la creare)",
|
"Admin tenant (la creare)": "Admin tenant (la creare)",
|
||||||
|
"Administrare": "Администрирование",
|
||||||
"Administrator": "Администратор",
|
"Administrator": "Администратор",
|
||||||
"Adresă": "Адрес",
|
"Adresă": "Адрес",
|
||||||
"Adresă IP": "IP-адрес",
|
"Adresă IP": "IP-адрес",
|
||||||
@@ -141,11 +144,13 @@
|
|||||||
"Ai uitat parola?": "Забыли пароль?",
|
"Ai uitat parola?": "Забыли пароль?",
|
||||||
"Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".": "Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".",
|
"Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".": "Aici apar cererile clienților potențiali. Convertește-le în deal-uri sau direct în programări de la butonul „Convertește\".",
|
||||||
"Aici apar clienții care și-au creat cont în magazinul online (/shop/register).": "Здесь появляются клиенты, зарегистрировавшиеся в интернет-магазине (/shop/register).",
|
"Aici apar clienții care și-au creat cont în magazinul online (/shop/register).": "Здесь появляются клиенты, зарегистрировавшиеся в интернет-магазине (/shop/register).",
|
||||||
|
"Ajustează stocul manual": "Ручная корректировка остатка",
|
||||||
"Ale mele": "Мои",
|
"Ale mele": "Мои",
|
||||||
"Aleatoriu": "Случайно",
|
"Aleatoriu": "Случайно",
|
||||||
"Alege categorie": "Выбрать категорию",
|
"Alege categorie": "Выбрать категорию",
|
||||||
"Alege client": "Выбрать клиента",
|
"Alege client": "Выбрать клиента",
|
||||||
"Alege dată": "Выбрать дату",
|
"Alege dată": "Выбрать дату",
|
||||||
|
"Alege dreptul concret pe care vrei să-l acorzi (GRANT) sau să-l refuzi (DENY) pentru acest utilizator, indiferent de rolul lui.": "Выберите конкретное право, которое хотите предоставить (GRANT) или запретить (DENY) для этого пользователя, независимо от его роли.",
|
||||||
"Alege limbă": "Выбрать язык",
|
"Alege limbă": "Выбрать язык",
|
||||||
"Alege maistru": "Выбрать мастера",
|
"Alege maistru": "Выбрать мастера",
|
||||||
"Alege mecanic": "Выбрать механика",
|
"Alege mecanic": "Выбрать механика",
|
||||||
@@ -172,6 +177,7 @@
|
|||||||
"An fabricație": "Год выпуска",
|
"An fabricație": "Год выпуска",
|
||||||
"An model": "Модельный год",
|
"An model": "Модельный год",
|
||||||
"An model (estimat)": "Модельный год (оценка)",
|
"An model (estimat)": "Модельный год (оценка)",
|
||||||
|
"Analitică": "Аналитика",
|
||||||
"Angajat din": "Работает с",
|
"Angajat din": "Работает с",
|
||||||
"Ani": "Годы",
|
"Ani": "Годы",
|
||||||
"Anonim": "Аноним",
|
"Anonim": "Аноним",
|
||||||
@@ -205,6 +211,9 @@
|
|||||||
"Aprobat de": "Утверждено",
|
"Aprobat de": "Утверждено",
|
||||||
"Aprobat de client": "Одобрено клиентом",
|
"Aprobat de client": "Одобрено клиентом",
|
||||||
"Aprobă": "Утвердить",
|
"Aprobă": "Утвердить",
|
||||||
|
"Aprobă discount fără limită": "Одобрить скидку без лимита",
|
||||||
|
"Aprobă discount ≤ 20%": "Одобрить скидку ≤ 20%",
|
||||||
|
"Aprobă discount ≤ 5%": "Одобрить скидку ≤ 5%",
|
||||||
"Arată": "Показать",
|
"Arată": "Показать",
|
||||||
"Arhivat": "В архиве",
|
"Arhivat": "В архиве",
|
||||||
"Arhivează": "В архив",
|
"Arhivează": "В архив",
|
||||||
@@ -266,7 +275,7 @@
|
|||||||
"Beneficiar:": "Beneficiar:",
|
"Beneficiar:": "Beneficiar:",
|
||||||
"Benzină": "Бензин",
|
"Benzină": "Бензин",
|
||||||
"Berlină": "Седан",
|
"Berlină": "Седан",
|
||||||
"Bifează ce poate face acest rol. Modificările au efect imediat.": "Bifează ce poate face acest rol. Modificările au efect imediat.",
|
"Bifează ce poate face acest rol. Modificările au efect imediat.": "Отметьте, что может делать эта роль. Изменения вступают в силу сразу.",
|
||||||
"Bifă": "Флажок",
|
"Bifă": "Флажок",
|
||||||
"Bine ai venit": "Добро пожаловать",
|
"Bine ai venit": "Добро пожаловать",
|
||||||
"Blocat": "Заблокировано",
|
"Blocat": "Заблокировано",
|
||||||
@@ -307,6 +316,7 @@
|
|||||||
"Calculat salariul {$period} pentru {$count} utilizatori": "Calculat salariul {$period} pentru {$count} utilizatori",
|
"Calculat salariul {$period} pentru {$count} utilizatori": "Calculat salariul {$period} pentru {$count} utilizatori",
|
||||||
"Calculație": "Расчёт",
|
"Calculație": "Расчёт",
|
||||||
"Calculează luna curentă": "Рассчитать текущий месяц",
|
"Calculează luna curentă": "Рассчитать текущий месяц",
|
||||||
|
"Calculează salarii": "Расчёт зарплат",
|
||||||
"Calendar": "Календарь",
|
"Calendar": "Календарь",
|
||||||
"Calendar vizual": "Визуальный календарь",
|
"Calendar vizual": "Визуальный календарь",
|
||||||
"Camion": "Грузовик",
|
"Camion": "Грузовик",
|
||||||
@@ -435,6 +445,8 @@
|
|||||||
"Condition": "Состояние",
|
"Condition": "Состояние",
|
||||||
"Condiții (toate trebuie îndeplinite)": "Условия (все должны выполняться)",
|
"Condiții (toate trebuie îndeplinite)": "Условия (все должны выполняться)",
|
||||||
"Configurare:": "Настройка:",
|
"Configurare:": "Настройка:",
|
||||||
|
"Configurează chei API pentru AI": "Настройка API-ключей для AI",
|
||||||
|
"Configurează integrări externe": "Настройка внешних интеграций",
|
||||||
"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": "Конфигурация",
|
"Configurări": "Конфигурация",
|
||||||
"Configurări avansate": "Расширенная конфигурация",
|
"Configurări avansate": "Расширенная конфигурация",
|
||||||
@@ -494,6 +506,7 @@
|
|||||||
"Credit": "Кредит",
|
"Credit": "Кредит",
|
||||||
"Creează automat articolele noi în nomenclatură": "Автоматически создавать новые артикулы",
|
"Creează automat articolele noi în nomenclatură": "Автоматически создавать новые артикулы",
|
||||||
"Creează cerere": "Создать заявку",
|
"Creează cerere": "Создать заявку",
|
||||||
|
"Creează comandă de aprovizionare": "Создать заказ на закупку",
|
||||||
"Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.": "Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.",
|
"Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.": "Creează planuri (ex: Free, Basic, Pro) și atribuie-le companiilor.",
|
||||||
"Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.": "Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.",
|
"Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.": "Creează un bot la @BotFather, lipește token-ul aici și apasă „Setează webhook\". Clienții îți scriu la bot, partajează telefonul, iar codul se leagă automat de fișa lor.",
|
||||||
"Crescător": "По возрастанию",
|
"Crescător": "По возрастанию",
|
||||||
@@ -597,6 +610,7 @@
|
|||||||
"Descarcă": "Скачать",
|
"Descarcă": "Скачать",
|
||||||
"Descarcă PDF": "Скачать PDF",
|
"Descarcă PDF": "Скачать PDF",
|
||||||
"Descarcă QR (SVG)": "Скачать QR (SVG)",
|
"Descarcă QR (SVG)": "Скачать QR (SVG)",
|
||||||
|
"Descarcă backup": "Скачать бэкап",
|
||||||
"Descarcă factura": "Скачать счёт",
|
"Descarcă factura": "Скачать счёт",
|
||||||
"Descarcă template": "Скачать шаблон",
|
"Descarcă template": "Скачать шаблон",
|
||||||
"Deschide": "Открыть",
|
"Deschide": "Открыть",
|
||||||
@@ -604,6 +618,7 @@
|
|||||||
"Deschide deal": "Открыть сделку",
|
"Deschide deal": "Открыть сделку",
|
||||||
"Deschide fișa": "Открыть наряд",
|
"Deschide fișa": "Открыть наряд",
|
||||||
"Deschide fișa pentru aprobare lucrare/piesă.": "Откройте наряд для одобрения работы/запчасти.",
|
"Deschide fișa pentru aprobare lucrare/piesă.": "Откройте наряд для одобрения работы/запчасти.",
|
||||||
|
"Deschide fișă nouă": "Открыть новый наряд",
|
||||||
"Deschide tenantul": "Deschide tenantul",
|
"Deschide tenantul": "Deschide tenantul",
|
||||||
"Deschide →": "Открыть →",
|
"Deschide →": "Открыть →",
|
||||||
"Deschis": "Открыт",
|
"Deschis": "Открыт",
|
||||||
@@ -677,12 +692,19 @@
|
|||||||
"Edit": "Изменить",
|
"Edit": "Изменить",
|
||||||
"Editare": "Изменить",
|
"Editare": "Изменить",
|
||||||
"Editează": "Изменить",
|
"Editează": "Изменить",
|
||||||
|
"Editează client": "Изменить клиента",
|
||||||
"Editează cod echivalent": "Изменить эквивалентный код",
|
"Editează cod echivalent": "Изменить эквивалентный код",
|
||||||
"Editează drepturi": "Изменить права",
|
"Editează drepturi": "Изменить права",
|
||||||
"Editează excepția": "Изменить исключение",
|
"Editează excepția": "Изменить исключение",
|
||||||
|
"Editează fișă": "Изменить наряд",
|
||||||
|
"Editează furnizor": "Изменить поставщика",
|
||||||
|
"Editează mașină": "Изменить авто",
|
||||||
|
"Editează piesă": "Изменить запчасть",
|
||||||
"Editează piesă implicită": "Изменить запчасть по умолчанию",
|
"Editează piesă implicită": "Изменить запчасть по умолчанию",
|
||||||
"Editează produs": "Изменить товар",
|
"Editează produs": "Изменить товар",
|
||||||
|
"Editează roluri & drepturi": "Изменение ролей и прав",
|
||||||
"Editează rând": "Изменить строку",
|
"Editează rând": "Изменить строку",
|
||||||
|
"Editează setările companiei": "Изменение настроек компании",
|
||||||
"Efectuat": "Исходящий",
|
"Efectuat": "Исходящий",
|
||||||
"Eficiență": "Эффективность",
|
"Eficiență": "Эффективность",
|
||||||
"Electric": "Электро",
|
"Electric": "Электро",
|
||||||
@@ -735,6 +757,8 @@
|
|||||||
"Expiră la (opțional)": "Истекает (опционально)",
|
"Expiră la (opțional)": "Истекает (опционально)",
|
||||||
"Export": "Экспорт",
|
"Export": "Экспорт",
|
||||||
"Export CSV": "Экспорт CSV",
|
"Export CSV": "Экспорт CSV",
|
||||||
|
"Exportă clienți (CSV)": "Экспорт клиентов (CSV)",
|
||||||
|
"Exportă rapoarte financiare": "Экспорт финансовых отчётов",
|
||||||
"Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:": "Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:",
|
"Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:": "Exportă toate datele companiei tale într-un fișier ZIP. Util pentru:",
|
||||||
"Express": "Экспресс",
|
"Express": "Экспресс",
|
||||||
"Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.": "Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.",
|
"Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.": "Extrage datele din această factură. Răspunde DOAR cu obiectul JSON, fără text suplimentar și fără ```.",
|
||||||
@@ -781,6 +805,7 @@
|
|||||||
"Fișă asociată": "Связанный наряд",
|
"Fișă asociată": "Связанный наряд",
|
||||||
"Fișă de lucru": "Заказ-наряд",
|
"Fișă de lucru": "Заказ-наряд",
|
||||||
"Fișă lucru": "Заказ-наряд",
|
"Fișă lucru": "Заказ-наряд",
|
||||||
|
"Folosește AI Assistant": "Использовать AI Assistant",
|
||||||
"Folosește „Check-in depozit": "Используйте «Приёмка на склад»",
|
"Folosește „Check-in depozit": "Используйте «Приёмка на склад»",
|
||||||
"Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.": "Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.",
|
"Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.": "Folosește „Check-in depozit\" pe set pentru a înregistra prima depozitare.",
|
||||||
"Folosit dacă markup = 0.": "Используется если наценка = 0.",
|
"Folosit dacă markup = 0.": "Используется если наценка = 0.",
|
||||||
@@ -830,6 +855,8 @@
|
|||||||
"Generează raport": "Сгенерировать отчёт",
|
"Generează raport": "Сгенерировать отчёт",
|
||||||
"Generează token": "Создать токен",
|
"Generează token": "Создать токен",
|
||||||
"Generez ZIP...": "Generez ZIP...",
|
"Generez ZIP...": "Generez ZIP...",
|
||||||
|
"Gestionează tokene API": "Управление API-токенами",
|
||||||
|
"Gestionează utilizatori (creează/blochează)": "Управление пользователями (создание/блокировка)",
|
||||||
"Global": "Глобально",
|
"Global": "Глобально",
|
||||||
"Gol — trage un card aici": "Пусто — перетащите карточку сюда",
|
"Gol — trage un card aici": "Пусто — перетащите карточку сюда",
|
||||||
"Grafic": "График",
|
"Grafic": "График",
|
||||||
@@ -1029,6 +1056,7 @@
|
|||||||
"Marchează acest tenant ca demo (datele pot fi resetate periodic).": "Marchează acest tenant ca demo (datele pot fi resetate periodic).",
|
"Marchează acest tenant ca demo (datele pot fi resetate periodic).": "Marchează acest tenant ca demo (datele pot fi resetate periodic).",
|
||||||
"Marchează anulat": "Отметить как отменено",
|
"Marchează anulat": "Отметить как отменено",
|
||||||
"Marchează plătit": "Отметить как оплачено",
|
"Marchează plătit": "Отметить как оплачено",
|
||||||
|
"Marchează salariul ca plătit": "Отметить зарплату оплаченной",
|
||||||
"Marchează setul ca ridicat de client.": "Отметить комплект как выданный клиенту.",
|
"Marchează setul ca ridicat de client.": "Отметить комплект как выданный клиенту.",
|
||||||
"Marchează terminat": "Отметить как готовое",
|
"Marchează terminat": "Отметить как готовое",
|
||||||
"Marcă": "Марка",
|
"Marcă": "Марка",
|
||||||
@@ -1531,6 +1559,7 @@
|
|||||||
"Recepționată parțial": "Частично принята",
|
"Recepționată parțial": "Частично принята",
|
||||||
"Recepționată total": "Полностью принята",
|
"Recepționată total": "Полностью принята",
|
||||||
"Recepționează": "Принять",
|
"Recepționează": "Принять",
|
||||||
|
"Recepționează marfă": "Приёмка товара",
|
||||||
"Recomandat": "Рекомендуется",
|
"Recomandat": "Рекомендуется",
|
||||||
"Recomandate": "Рекомендуемые",
|
"Recomandate": "Рекомендуемые",
|
||||||
"Recomandă": "Рекомендуется",
|
"Recomandă": "Рекомендуется",
|
||||||
@@ -1601,7 +1630,7 @@
|
|||||||
"Rolul principal — sincronizat automat cu drepturile RBAC.": "Основная роль — автоматически синхронизирована с правами RBAC.",
|
"Rolul principal — sincronizat automat cu drepturile RBAC.": "Основная роль — автоматически синхронизирована с правами RBAC.",
|
||||||
"Roluri suplimentare": "Доп. роли",
|
"Roluri suplimentare": "Доп. роли",
|
||||||
"Roluri suplimentare peste rolul primar — drepturile se cumulează.": "Дополнительные роли поверх основной — права суммируются.",
|
"Roluri suplimentare peste rolul primar — drepturile se cumulează.": "Дополнительные роли поверх основной — права суммируются.",
|
||||||
"Rolurile sistem (owner/admin/etc.) au numele blocat": "Rolurile sistem (owner/admin/etc.) au numele blocat",
|
"Rolurile sistem (owner/admin/etc.) au numele blocat": "Системные роли (owner/admin/и т.д.) имеют заблокированное имя",
|
||||||
"Română": "Румынский",
|
"Română": "Румынский",
|
||||||
"Rotire": "Поворот",
|
"Rotire": "Поворот",
|
||||||
"Roți": "Колёса",
|
"Roți": "Колёса",
|
||||||
@@ -1643,6 +1672,7 @@
|
|||||||
"Scaner cod QR / Bare": "Scaner cod QR / Bare",
|
"Scaner cod QR / Bare": "Scaner cod QR / Bare",
|
||||||
"Scheduled at": "Запланировано",
|
"Scheduled at": "Запланировано",
|
||||||
"Schimb ulei + filtru": "Замена масла + фильтр",
|
"Schimb ulei + filtru": "Замена масла + фильтр",
|
||||||
|
"Schimbă statusul fișei": "Изменить статус наряда",
|
||||||
"Scoate din magazin": "Scoate din magazin",
|
"Scoate din magazin": "Scoate din magazin",
|
||||||
"Scrie mesajul tău...": "Введите ваше сообщение...",
|
"Scrie mesajul tău...": "Введите ваше сообщение...",
|
||||||
"Scule / consumabile": "Инструменты / расходники",
|
"Scule / consumabile": "Инструменты / расходники",
|
||||||
@@ -1742,7 +1772,7 @@
|
|||||||
"Status dosar": "Status dosar",
|
"Status dosar": "Status dosar",
|
||||||
"Status implicit": "Статус по умолчанию",
|
"Status implicit": "Статус по умолчанию",
|
||||||
"Status:": "Статус:",
|
"Status:": "Статус:",
|
||||||
"Stoc": "Остаток",
|
"Stoc": "Склад",
|
||||||
"Stoc adăugat": "Stoc adăugat",
|
"Stoc adăugat": "Stoc adăugat",
|
||||||
"Stoc minim": "Stoc minim",
|
"Stoc minim": "Stoc minim",
|
||||||
"Stoc minim atins": "Достигнут мин. остаток",
|
"Stoc minim atins": "Достигнут мин. остаток",
|
||||||
@@ -1849,6 +1879,7 @@
|
|||||||
"Tip implicit": "Тип по умолчанию",
|
"Tip implicit": "Тип по умолчанию",
|
||||||
"Tip jante": "Тип дисков",
|
"Tip jante": "Тип дисков",
|
||||||
"Tipărește": "Печать",
|
"Tipărește": "Печать",
|
||||||
|
"Tipărește / PDF fișă": "Печать / PDF наряда",
|
||||||
"Tipărește etichete QR": "Печать QR-этикеток",
|
"Tipărește etichete QR": "Печать QR-этикеток",
|
||||||
"Title": "Название",
|
"Title": "Название",
|
||||||
"To": "До",
|
"To": "До",
|
||||||
@@ -1998,9 +2029,24 @@
|
|||||||
"Verificat": "Проверено",
|
"Verificat": "Проверено",
|
||||||
"Verifică emailul": "Проверьте email",
|
"Verifică emailul": "Проверьте email",
|
||||||
"Verifică și amintește": "Проверить и напомнить",
|
"Verifică și amintește": "Проверить и напомнить",
|
||||||
|
"Vezi doar clienții proprii": "Просмотр только своих клиентов",
|
||||||
|
"Vezi doar fișele proprii asignate": "Просмотр только своих нарядов",
|
||||||
|
"Vezi furnizori": "Просмотр поставщиков",
|
||||||
"Vezi imagine": "Просмотр изображения",
|
"Vezi imagine": "Просмотр изображения",
|
||||||
|
"Vezi jurnalul de audit": "Просмотр журнала аудита",
|
||||||
"Vezi mai mult": "Смотреть больше",
|
"Vezi mai mult": "Смотреть больше",
|
||||||
|
"Vezi marja internă (baza de salariu)": "Просмотр внутренней маржи (базы зарплаты)",
|
||||||
|
"Vezi panou finanțe": "Просмотр финансов",
|
||||||
|
"Vezi profit & pierdere (P&L)": "Просмотр P&L",
|
||||||
|
"Vezi propriul salariu": "Просмотр своей зарплаты",
|
||||||
|
"Vezi rapoarte & analitică": "Просмотр отчётов и аналитики",
|
||||||
|
"Vezi salariile tuturor": "Просмотр зарплат всех",
|
||||||
|
"Vezi stoc (piese)": "Просмотр склада (запчасти)",
|
||||||
|
"Vezi toate fișele": "Просмотр всех нарядов",
|
||||||
|
"Vezi toate mașinile": "Просмотр всех авто",
|
||||||
"Vezi tot": "Смотреть все",
|
"Vezi tot": "Смотреть все",
|
||||||
|
"Vezi toți clienții": "Просмотр всех клиентов",
|
||||||
|
"Vezi utilizatori": "Просмотр пользователей",
|
||||||
"Viber": "Viber",
|
"Viber": "Viber",
|
||||||
"View": "Просмотр",
|
"View": "Просмотр",
|
||||||
"Viitoare": "Viitoare",
|
"Viitoare": "Viitoare",
|
||||||
@@ -2339,8 +2385,10 @@
|
|||||||
"Încărcare service": "Загрузка сервиса",
|
"Încărcare service": "Загрузка сервиса",
|
||||||
"Înregistrare": "Регистрация",
|
"Înregistrare": "Регистрация",
|
||||||
"Înregistrat": "Зарегистрирован",
|
"Înregistrat": "Зарегистрирован",
|
||||||
|
"Înregistrează cheltuială": "Регистрация расхода",
|
||||||
"Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.": "Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.",
|
"Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.": "Înregistrează lucrări de tinichigerie, vopsitorie, PDR, detailing, ceramică, PPF sau polish. Hartă daune, dosar asigurare și arhivă foto înainte/după.",
|
||||||
"Înregistrează lucrările trimise la ateliere externe (turbo, cutii, vopsitorie). Costul terțului + markup intră automat în totalul fișei asociate.": "Регистрируйте работы, отправленные в сторонние мастерские (турбина, коробки, покраска). Стоимость субподрядчика + наценка автоматически входят в сумму связанного наряда.",
|
"Înregistrează lucrările trimise la ateliere externe (turbo, cutii, vopsitorie). Costul terțului + markup intră automat în totalul fișei asociate.": "Регистрируйте работы, отправленные в сторонние мастерские (турбина, коробки, покраска). Стоимость субподрядчика + наценка автоматически входят в сумму связанного наряда.",
|
||||||
|
"Î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 и локацию на складе.",
|
"Î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...": "Спросите что угодно — диагноз, резюме, подсказки, тексты клиентам...",
|
"Întreabă-mă orice — diagnostic, sumar, sugestii, redactare mesaje către clienți...": "Спросите что угодно — диагноз, резюме, подсказки, тексты клиентам...",
|
||||||
"Șabloane servicii": "Шаблоны услуг",
|
"Șabloane servicii": "Шаблоны услуг",
|
||||||
@@ -2349,8 +2397,14 @@
|
|||||||
"Șablon serviciu": "Шаблон услуги",
|
"Șablon serviciu": "Шаблон услуги",
|
||||||
"Șablonul nu are rânduri": "В шаблоне пока нет строк",
|
"Șablonul nu are rânduri": "В шаблоне пока нет строк",
|
||||||
"Șterge": "Удалить",
|
"Șterge": "Удалить",
|
||||||
|
"Șterge client": "Удалить клиента",
|
||||||
"Șterge conversația?": "Удалить диалог?",
|
"Șterge conversația?": "Удалить диалог?",
|
||||||
|
"Șterge fișă": "Удалить наряд",
|
||||||
|
"Șterge furnizor": "Удалить поставщика",
|
||||||
"Șterge imagine": "Удалить изображение",
|
"Șterge imagine": "Удалить изображение",
|
||||||
|
"Șterge mașină": "Удалить авто",
|
||||||
|
"Șterge piesă": "Удалить запчасть",
|
||||||
|
"Șterge plată": "Удаление платежа",
|
||||||
"Șterge produs": "Удалить товар",
|
"Șterge produs": "Удалить товар",
|
||||||
"Șterge rând": "Удалить строку",
|
"Șterge rând": "Удалить строку",
|
||||||
"Șterge selectate": "Удалить выбранные",
|
"Șterge selectate": "Удалить выбранные",
|
||||||
|
|||||||
Reference in New Issue
Block a user