i18n: wrap all formatStateUsing(fn(\$s)=>X::CONST[\$s]??\$s) with __() (21 files)
Previous sed pass only matched \$state; missed \$s and other arg-name
variants. This time the regex is arg-name-agnostic and touches 21
files across Filament resources & relation managers.
Also wraps two special cases: UserResource role-labels lookup and
LaborResource pricing_mode ternary ('Fix' | 'Pe oră').
+27 human translations for the enum values that were still identity
fallback: WorkOrderWork.STATUSES (De făcut), Purchase.STATUSES,
OnlineOrder.STATUSES, Call.DIRECTIONS/STATUSES, BodyshopJob.TYPES/
STATUSES, TireSet.SEASONS, MessageTemplate.CHANNELS,
DamagePoint.SEVERITIES, ServiceTemplateItem.KINDS.
All 306 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -131,7 +131,7 @@ class SubscriptionResource extends Resource
|
||||
->url(fn ($record) => \App\Filament\Central\Resources\CompanyResource::getUrl('view', ['record' => $record->company_id])),
|
||||
Tables\Columns\TextColumn::make('plan.name')->label(__('Plan'))->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('period')
|
||||
->formatStateUsing(fn ($s) => Subscription::PERIODS[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Subscription::PERIODS[$s] ?? $s))
|
||||
->badge(),
|
||||
Tables\Columns\TextColumn::make('amount')
|
||||
->money(fn ($record) => $record->currency)
|
||||
@@ -139,7 +139,7 @@ class SubscriptionResource extends Resource
|
||||
->weight('bold'),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->badge()
|
||||
->formatStateUsing(fn ($s) => Subscription::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Subscription::STATUSES[$s] ?? $s))
|
||||
->color(fn ($s) => match ($s) {
|
||||
'paid' => 'success',
|
||||
'overdue' => 'danger',
|
||||
|
||||
@@ -36,7 +36,7 @@ class PendingPayments extends BaseWidget
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->badge()
|
||||
->color(fn ($s) => $s === 'overdue' ? 'danger' : 'warning')
|
||||
->formatStateUsing(fn ($s) => Subscription::STATUSES[$s] ?? $s),
|
||||
->formatStateUsing(fn ($s) => __(Subscription::STATUSES[$s] ?? $s)),
|
||||
Tables\Columns\TextColumn::make('due_at')
|
||||
->label(__('Scadent'))
|
||||
->dateTime()
|
||||
|
||||
@@ -99,13 +99,13 @@ class BodyshopJobResource extends Resource
|
||||
Tables\Columns\TextColumn::make('client.name')->label(__('Client'))->searchable()->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('vehicle.plate')->label(__('Auto'))->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('type')
|
||||
->formatStateUsing(fn ($s) => BodyshopJob::TYPES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(BodyshopJob::TYPES[$s] ?? $s))
|
||||
->badge()->color('info'),
|
||||
Tables\Columns\IconColumn::make('is_insurance')->label(__('Asig.'))->boolean()->toggleable(),
|
||||
Tables\Columns\TextColumn::make('damage_points_count')->counts('damagePoints')->label(__('Daune'))->alignRight(),
|
||||
Tables\Columns\TextColumn::make('approved_amount')->label(__('Aprobat'))->money('MDL')->alignRight(),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => BodyshopJob::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(BodyshopJob::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'gray' => ['estimate'],
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ class DamagePointsRelationManager extends RelationManager
|
||||
Tables\Columns\TextColumn::make('kind')->label(__('Tip')),
|
||||
Tables\Columns\TextColumn::make('severity')
|
||||
->label(__('Gravitate'))
|
||||
->formatStateUsing(fn ($s) => DamagePoint::SEVERITIES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(DamagePoint::SEVERITIES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors(['gray' => ['minor'], 'warning' => ['medium'], 'danger' => ['severe']]),
|
||||
Tables\Columns\TextColumn::make('notes')->limit(40)->placeholder('—'),
|
||||
|
||||
@@ -77,7 +77,7 @@ class CallResource extends Resource
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('called_at')->label(__('Data'))->dateTime('d.m.Y H:i')->sortable(),
|
||||
Tables\Columns\TextColumn::make('direction')
|
||||
->formatStateUsing(fn ($s) => Call::DIRECTIONS[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Call::DIRECTIONS[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'success' => ['incoming'],
|
||||
@@ -88,7 +88,7 @@ class CallResource extends Resource
|
||||
Tables\Columns\TextColumn::make('client.name')->label(__('Client'))->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('duration_formatted')->label(__('Durată'))->state(fn (Call $r) => $r->duration_formatted),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => Call::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Call::STATUSES[$s] ?? $s))
|
||||
->badge(),
|
||||
])
|
||||
->filters([
|
||||
|
||||
@@ -88,12 +88,12 @@ class ExpenseResource extends Resource
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('paid_at')->label(__('Data'))->date('d.m.Y')->sortable(),
|
||||
Tables\Columns\TextColumn::make('category')
|
||||
->formatStateUsing(fn ($s) => Expense::CATEGORIES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Expense::CATEGORIES[$s] ?? $s))
|
||||
->badge(),
|
||||
Tables\Columns\TextColumn::make('name')->searchable()->wrap(),
|
||||
Tables\Columns\TextColumn::make('supplier.name')->label(__('Furnizor'))->placeholder('—')->toggleable(),
|
||||
Tables\Columns\TextColumn::make('method')
|
||||
->formatStateUsing(fn ($s) => Expense::METHODS[$s] ?? $s),
|
||||
->formatStateUsing(fn ($s) => __(Expense::METHODS[$s] ?? $s)),
|
||||
Tables\Columns\TextColumn::make('amount')->money('MDL')->alignRight()->sortable()
|
||||
->color('danger')
|
||||
->summarize(Tables\Columns\Summarizers\Sum::make()->money('MDL')->label(__('Total'))),
|
||||
|
||||
@@ -84,7 +84,7 @@ class LaborResource extends Resource
|
||||
Tables\Columns\TextColumn::make('name_ro')->label(__('Manoperă'))->searchable()->sortable(),
|
||||
Tables\Columns\TextColumn::make('pricing_mode')
|
||||
->label(__('Tarifare'))
|
||||
->formatStateUsing(fn ($s) => $s === 'fixed' ? 'Fix' : 'Pe oră')
|
||||
->formatStateUsing(fn ($s) => $s === 'fixed' ? __('Fix') : __('Pe oră'))
|
||||
->badge()
|
||||
->color(fn ($s) => $s === 'fixed' ? 'info' : 'gray'),
|
||||
Tables\Columns\TextColumn::make('hours')->label(__('Ore'))->numeric(decimalPlaces: 2)->alignRight(),
|
||||
|
||||
@@ -97,7 +97,7 @@ class MarkupRuleResource extends Resource
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('priority')->label('#')->sortable(),
|
||||
Tables\Columns\TextColumn::make('type')
|
||||
->formatStateUsing(fn ($s) => MarkupRule::TYPES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(MarkupRule::TYPES[$s] ?? $s))
|
||||
->badge(),
|
||||
Tables\Columns\TextColumn::make('key')->label(__('Cheie'))->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('range_from')->label(__('De la'))->placeholder('—'),
|
||||
|
||||
@@ -76,7 +76,7 @@ class MessageTemplateResource extends Resource
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('name')->searchable()->sortable(),
|
||||
Tables\Columns\TextColumn::make('channel')
|
||||
->formatStateUsing(fn ($s) => MessageTemplate::CHANNELS[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(MessageTemplate::CHANNELS[$s] ?? $s))
|
||||
->badge(),
|
||||
Tables\Columns\TextColumn::make('body')->label(__('Preview'))->limit(60),
|
||||
Tables\Columns\IconColumn::make('is_active')->boolean(),
|
||||
|
||||
@@ -86,9 +86,9 @@ class OnlineOrderResource extends Resource
|
||||
Tables\Columns\TextColumn::make('customer_phone')->label(__('Telefon'))->copyable(),
|
||||
Tables\Columns\TextColumn::make('delivery_method')
|
||||
->label(__('Livrare'))
|
||||
->formatStateUsing(fn ($s) => OnlineOrder::DELIVERY[$s] ?? $s),
|
||||
->formatStateUsing(fn ($s) => __(OnlineOrder::DELIVERY[$s] ?? $s)),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => OnlineOrder::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(OnlineOrder::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'warning' => ['new'],
|
||||
|
||||
@@ -98,7 +98,7 @@ class PaymentResource extends Resource
|
||||
Tables\Columns\TextColumn::make('client.name')->label(__('Client'))->searchable(),
|
||||
Tables\Columns\TextColumn::make('workOrder.number')->label(__('Fișă'))->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('method')
|
||||
->formatStateUsing(fn ($s) => Payment::METHODS[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Payment::METHODS[$s] ?? $s))
|
||||
->badge(),
|
||||
Tables\Columns\TextColumn::make('amount')->money('MDL')->alignRight()->sortable()->summarize(Tables\Columns\Summarizers\Sum::make()->money('MDL')->label(__('Total'))),
|
||||
Tables\Columns\TextColumn::make('reference')->label(__('Ref.'))->placeholder('—')->toggleable(),
|
||||
|
||||
@@ -89,7 +89,7 @@ class PayrollAdjustmentResource extends Resource
|
||||
Tables\Columns\TextColumn::make('date')->date('d.m.Y')->sortable(),
|
||||
Tables\Columns\TextColumn::make('user.name')->label(__('Utilizator'))->searchable(),
|
||||
Tables\Columns\TextColumn::make('type')
|
||||
->formatStateUsing(fn ($s) => PayrollAdjustment::TYPES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(PayrollAdjustment::TYPES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'success' => ['bonus'],
|
||||
|
||||
@@ -88,7 +88,7 @@ class PurchaseResource extends Resource
|
||||
Tables\Columns\TextColumn::make('expected_at')->label(__('Așteptată'))->date('d.m.Y')->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('received_at')->label(__('Recepționată'))->date('d.m.Y')->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => Purchase::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Purchase::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'gray' => ['draft'],
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ class ItemsRelationManager extends RelationManager
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('kind')
|
||||
->label(__('Tip'))
|
||||
->formatStateUsing(fn ($s) => ServiceTemplateItem::KINDS[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(ServiceTemplateItem::KINDS[$s] ?? $s))
|
||||
->badge()
|
||||
->color(fn ($s) => $s === 'labor' ? 'info' : 'gray'),
|
||||
Tables\Columns\TextColumn::make('name')->wrap(),
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ class OrdersRelationManager extends RelationManager
|
||||
Tables\Columns\TextColumn::make('number')->label(__('Nr.')),
|
||||
Tables\Columns\TextColumn::make('created_at')->label(__('Data'))->dateTime('d.m.Y H:i'),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => OnlineOrder::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(OnlineOrder::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'warning' => ['new'],
|
||||
|
||||
@@ -99,7 +99,7 @@ class SubcontractJobResource extends Resource
|
||||
->alignRight()
|
||||
->color(fn ($state) => (float) $state > 0 ? 'success' : ((float) $state < 0 ? 'danger' : 'gray')),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => SubcontractJob::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(SubcontractJob::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'warning' => ['sent', 'in_progress'],
|
||||
|
||||
@@ -115,7 +115,7 @@ class TireSetResource extends Resource
|
||||
->state(fn (TireSet $r) => $r->sizeLabel()),
|
||||
Tables\Columns\TextColumn::make('season')
|
||||
->label(__('Sezon'))
|
||||
->formatStateUsing(fn ($s) => TireSet::SEASONS[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(TireSet::SEASONS[$s] ?? $s))
|
||||
->badge()
|
||||
->colors(['warning' => ['summer'], 'info' => ['winter'], 'gray' => ['allseason']]),
|
||||
Tables\Columns\TextColumn::make('tread_min')->label(__('Uzură min'))
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ class StorageRelationManager extends RelationManager
|
||||
Tables\Columns\TextColumn::make('checked_in_at')->label(__('Primit'))->dateTime('d.m.Y'),
|
||||
Tables\Columns\TextColumn::make('checked_out_at')->label(__('Ridicat'))->dateTime('d.m.Y')->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => TireStorage::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(TireStorage::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors(['success' => ['stored'], 'gray' => ['retrieved']]),
|
||||
Tables\Columns\TextColumn::make('fee')->money('MDL')->alignRight(),
|
||||
|
||||
@@ -146,7 +146,7 @@ class UserResource extends Resource
|
||||
Tables\Columns\TextColumn::make('email')->searchable()->copyable(),
|
||||
Tables\Columns\TextColumn::make('phone')->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('role')
|
||||
->formatStateUsing(fn ($state) => \App\Auth\Permissions::roleLabels()[$state] ?? $state)
|
||||
->formatStateUsing(fn ($state) => __(\App\Auth\Permissions::roleLabels()[$state] ?? $state))
|
||||
->badge(),
|
||||
Tables\Columns\IconColumn::make('app_authentication_secret')
|
||||
->label(__('2FA'))
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ class PartsRelationManager extends RelationManager
|
||||
Tables\Columns\TextColumn::make('sell_price')->label(__('Preț'))->money('MDL')->alignRight(),
|
||||
Tables\Columns\TextColumn::make('total')->money('MDL')->alignRight(),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => WorkOrderPart::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(WorkOrderPart::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors([
|
||||
'gray' => ['needed'],
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ class PaymentsRelationManager extends RelationManager
|
||||
Tables\Columns\TextColumn::make('amount')->money('MDL')->alignRight()
|
||||
->summarize(Tables\Columns\Summarizers\Sum::make()->money('MDL')->label(__('Plătit'))),
|
||||
Tables\Columns\TextColumn::make('method')
|
||||
->formatStateUsing(fn ($s) => Payment::METHODS[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(Payment::METHODS[$s] ?? $s))
|
||||
->badge(),
|
||||
Tables\Columns\TextColumn::make('reference')->placeholder('—'),
|
||||
])
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ class SubcontractJobsRelationManager extends RelationManager
|
||||
->money('MDL')->alignRight()
|
||||
->color(fn ($s) => (float) $s > 0 ? 'success' : ((float) $s < 0 ? 'danger' : 'gray')),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => SubcontractJob::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(SubcontractJob::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors(['warning' => ['sent', 'in_progress'], 'success' => ['done', 'returned'], 'danger' => ['cancelled']]),
|
||||
])
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ class WorksRelationManager extends RelationManager
|
||||
}),
|
||||
Tables\Columns\TextColumn::make('master.name')->label(__('Maistru'))->placeholder('—'),
|
||||
Tables\Columns\TextColumn::make('status')
|
||||
->formatStateUsing(fn ($s) => WorkOrderWork::STATUSES[$s] ?? $s)
|
||||
->formatStateUsing(fn ($s) => __(WorkOrderWork::STATUSES[$s] ?? $s))
|
||||
->badge()
|
||||
->colors(['gray' => ['todo'], 'warning' => ['in_progress'], 'success' => ['done']]),
|
||||
])
|
||||
|
||||
+22
-3
@@ -307,6 +307,7 @@
|
||||
"Caz asigurare": "Caz asigurare",
|
||||
"Caz de asigurare": "Caz de asigurare",
|
||||
"Ce a spus clientul...": "What the client said...",
|
||||
"Ceramică": "Ceramic",
|
||||
"Cere aprobarea": "Request approval",
|
||||
"Cerere": "Lead",
|
||||
"Cerere nouă": "New lead",
|
||||
@@ -514,6 +515,7 @@
|
||||
"Datorii clienți (de încasat)": "Client debts (to collect)",
|
||||
"Daune": "Daune",
|
||||
"De către": "By",
|
||||
"De făcut": "To do",
|
||||
"De la": "From",
|
||||
"De la (preț achiziție)": "From (purchase price)",
|
||||
"De la data": "From date",
|
||||
@@ -569,12 +571,13 @@
|
||||
"Descriere produs": "Product description",
|
||||
"Description": "Description",
|
||||
"Deselect all": "Deselect all",
|
||||
"Detailing": "Detailing",
|
||||
"Detalii": "Details",
|
||||
"Detalii (opțional)": "Details (optional)",
|
||||
"Detalii auto": "Vehicle details",
|
||||
"Detalii client": "Client details",
|
||||
"Detalii comandă": "Order details",
|
||||
"Deviz": "Deviz",
|
||||
"Deviz": "Estimate",
|
||||
"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.",
|
||||
@@ -639,6 +642,7 @@
|
||||
"Email admin": "Email admin",
|
||||
"Email verified at": "Email verified",
|
||||
"Email:": "Email:",
|
||||
"Emisă": "Issued",
|
||||
"Empty": "No results",
|
||||
"Enabled": "Enabled",
|
||||
"End": "End",
|
||||
@@ -668,6 +672,7 @@
|
||||
"Excepții": "Overrides",
|
||||
"Excepții drepturi": "Permission overrides",
|
||||
"Există deja un cont cu acest telefon.": "An account with this phone already exists.",
|
||||
"Expediat": "Shipped",
|
||||
"Expense": "Expense",
|
||||
"Expenses": "Expenses",
|
||||
"Expiră": "Expires",
|
||||
@@ -705,6 +710,7 @@
|
||||
"Finalizat": "Done",
|
||||
"Financiar": "Financial",
|
||||
"Finanțe": "Finance",
|
||||
"Fix": "Fixed",
|
||||
"Fișe": "Orders",
|
||||
"Fișe active": "Active orders",
|
||||
"Fișe deschise": "Open orders",
|
||||
@@ -790,7 +796,7 @@
|
||||
"Identificare": "Identification",
|
||||
"Identitate": "Identitate",
|
||||
"Ieri": "Yesterday",
|
||||
"Ieșire": "Logout",
|
||||
"Ieșire": "Outgoing",
|
||||
"Ieșiri": "Outflow",
|
||||
"Image": "Image",
|
||||
"Images": "Images",
|
||||
@@ -827,6 +833,7 @@
|
||||
"Interval": "Interval",
|
||||
"Interval dată": "Date range",
|
||||
"Interval orar": "Time range",
|
||||
"Intrare": "Incoming",
|
||||
"Intrat": "Intrat",
|
||||
"Inventar": "Inventory",
|
||||
"Invitație": "Invitation",
|
||||
@@ -1195,11 +1202,13 @@
|
||||
"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",
|
||||
"PDR": "PDR",
|
||||
"PNG/ICO, max 512 KB.": "PNG/ICO, max 512 KB.",
|
||||
"PNG/SVG, max 2 MB. Apare în sidebar.": "PNG/SVG, max 2 MB. Apare în sidebar.",
|
||||
"PO": "PO",
|
||||
"POS": "POS",
|
||||
"POST /api/v1/login": "POST /api/v1/login",
|
||||
"PPF": "PPF",
|
||||
"Pagina": "Page",
|
||||
"Pagini": "Pages",
|
||||
"Paid at": "Paid at",
|
||||
@@ -1229,6 +1238,7 @@
|
||||
"Payment method": "Payment method",
|
||||
"Payments": "Payments",
|
||||
"Paynet": "Paynet",
|
||||
"Pe oră": "Hourly",
|
||||
"Pe pauză": "Paused",
|
||||
"Pe status": "Pe status",
|
||||
"Penalizări": "Penalties",
|
||||
@@ -1287,6 +1297,7 @@
|
||||
"Pod / Zi": "Bay / Day",
|
||||
"Pod / spațiu": "Bay / space",
|
||||
"Pod × Zile": "Bay × Days",
|
||||
"Polish": "Polish",
|
||||
"Politica de confidențialitate": "Privacy policy",
|
||||
"Politici": "Policies",
|
||||
"Pontaj": "Timesheet",
|
||||
@@ -1384,6 +1395,7 @@
|
||||
"Published": "Published",
|
||||
"Purchase": "Purchase",
|
||||
"Purchases": "Purchases",
|
||||
"Push": "Push",
|
||||
"Putere": "Power",
|
||||
"Pâlnie": "Pipeline",
|
||||
"Până la": "To",
|
||||
@@ -1401,6 +1413,7 @@
|
||||
"Rapoarte": "Reports",
|
||||
"Raport": "Report",
|
||||
"Rata conversie": "Conversion rate",
|
||||
"Ratat": "Missed",
|
||||
"Rate": "Rate",
|
||||
"Rating": "Rating",
|
||||
"Rating actualizat → {$score}★": "Rating actualizat → {$score}★",
|
||||
@@ -1451,6 +1464,7 @@
|
||||
"Renunță": "Cancel",
|
||||
"Reordonează": "Reorder",
|
||||
"Reparație": "Repair",
|
||||
"Reparație caroserie": "Body repair",
|
||||
"Reparații": "Repairs",
|
||||
"Report": "Report",
|
||||
"Reports": "Reports",
|
||||
@@ -1484,6 +1498,7 @@
|
||||
"Rezultate": "Results",
|
||||
"Rezumat": "Summary",
|
||||
"Reîmprospătează": "Refresh",
|
||||
"Ridicare la service": "Pickup at service",
|
||||
"Ridicat": "High",
|
||||
"Robotizată": "Robotized",
|
||||
"Rol": "Role",
|
||||
@@ -1500,7 +1515,7 @@
|
||||
"Rânduri": "Rows",
|
||||
"Rânduri per pagină": "Rows per page",
|
||||
"Rămas": "Remaining",
|
||||
"Răspuns": "Responded",
|
||||
"Răspuns": "Answered",
|
||||
"Răspuns AI ne-parsabil ca JSON.": "Răspuns AI ne-parsabil ca JSON.",
|
||||
"SMS": "SMS",
|
||||
"SUV": "SUV",
|
||||
@@ -1590,6 +1605,7 @@
|
||||
"Setări plăți salvate": "Setări plăți salvate",
|
||||
"Setări salvate": "Setări salvate",
|
||||
"Setările au fost salvate. Hai să adăugăm primul client.": "Setările au fost salvate. Hai să adăugăm primul client.",
|
||||
"Sever": "Severe",
|
||||
"Sex": "Gender",
|
||||
"Sezon": "Sezon",
|
||||
"Sfat": "Tip",
|
||||
@@ -1839,6 +1855,7 @@
|
||||
"Uzat": "Worn",
|
||||
"Uzură (mm) per poziție": "Uzură (mm) per poziție",
|
||||
"Uzură min": "Min wear",
|
||||
"Ușor": "Minor",
|
||||
"VIN": "VIN",
|
||||
"VIN căutare & piese": "VIN căutare & piese",
|
||||
"VIN trebuie să aibă cel puțin 11 caractere.": "VIN trebuie să aibă cel puțin 11 caractere.",
|
||||
@@ -1887,6 +1904,7 @@
|
||||
"Vizual": "Visual",
|
||||
"Vizualizează": "View",
|
||||
"Vizualizări": "Views",
|
||||
"Vopsire": "Painting",
|
||||
"Vânzări": "Vânzări",
|
||||
"Vârstă max (ani)": "Max age (years)",
|
||||
"Vârstă min (ani)": "Min age (years)",
|
||||
@@ -2177,6 +2195,7 @@
|
||||
"În depozit": "In stock",
|
||||
"În lucru": "In progress",
|
||||
"În pipeline": "In pipeline",
|
||||
"În procesare": "Processing",
|
||||
"În trial": "In trial",
|
||||
"Înainte": "Back",
|
||||
"Înapoi": "Back",
|
||||
|
||||
+28
-9
@@ -162,7 +162,7 @@
|
||||
"Anul acesta": "В этом году",
|
||||
"Anul curent": "Текущий год",
|
||||
"Anul trecut": "Прошлый год",
|
||||
"Anulat": "Отменено",
|
||||
"Anulat": "Отменён",
|
||||
"Anulată": "Отменено",
|
||||
"Anulează": "Отмена",
|
||||
"Anulează fișa": "Отменить наряд",
|
||||
@@ -307,6 +307,7 @@
|
||||
"Caz asigurare": "Caz asigurare",
|
||||
"Caz de asigurare": "Caz de asigurare",
|
||||
"Ce a spus clientul...": "Что сказал клиент...",
|
||||
"Ceramică": "Керамика",
|
||||
"Cere aprobarea": "Запросить одобрение",
|
||||
"Cerere": "Заявка",
|
||||
"Cerere nouă": "Новая заявка",
|
||||
@@ -404,7 +405,7 @@
|
||||
"Configurări avansate": "Расширенная конфигурация",
|
||||
"Confirm password": "Подтверждение пароля",
|
||||
"Confirmare plată primită": "Оплата получена",
|
||||
"Confirmat": "Подтверждено",
|
||||
"Confirmat": "Подтверждён",
|
||||
"Confirmate": "Подтверждено",
|
||||
"Confirmă": "Подтвердить",
|
||||
"Confirmă că mecanicul ia fizic piesa din depozit. Stocul scade acum, fără să aștepți închiderea fișei.": "Confirmă că mecanicul ia fizic piesa din depozit. Stocul scade acum, fără să aștepți închiderea fișei.",
|
||||
@@ -514,6 +515,7 @@
|
||||
"Datorii clienți (de încasat)": "Задолженности клиентов (к получению)",
|
||||
"Daune": "Daune",
|
||||
"De către": "Кем",
|
||||
"De făcut": "К выполнению",
|
||||
"De la": "С",
|
||||
"De la (preț achiziție)": "От (цена закупки)",
|
||||
"De la data": "С даты",
|
||||
@@ -569,12 +571,13 @@
|
||||
"Descriere produs": "Описание товара",
|
||||
"Description": "Описание",
|
||||
"Deselect all": "Снять выбор",
|
||||
"Detailing": "Детейлинг",
|
||||
"Detalii": "Подробности",
|
||||
"Detalii (opțional)": "Детали (опционально)",
|
||||
"Detalii auto": "Данные авто",
|
||||
"Detalii client": "Данные клиента",
|
||||
"Detalii comandă": "Данные заказа",
|
||||
"Deviz": "Deviz",
|
||||
"Deviz": "Смета",
|
||||
"Dezactivare": "Деактивация",
|
||||
"Dezactivează": "Деактивировать",
|
||||
"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.",
|
||||
@@ -639,6 +642,7 @@
|
||||
"Email admin": "Email admin",
|
||||
"Email verified at": "Email подтверждён",
|
||||
"Email:": "Email:",
|
||||
"Emisă": "Создана",
|
||||
"Empty": "Нет результатов",
|
||||
"Enabled": "Включён",
|
||||
"End": "Конец",
|
||||
@@ -668,6 +672,7 @@
|
||||
"Excepții": "Исключения",
|
||||
"Excepții drepturi": "Исключения прав",
|
||||
"Există deja un cont cu acest telefon.": "Аккаунт с этим номером уже существует.",
|
||||
"Expediat": "Отправлен",
|
||||
"Expense": "Расход",
|
||||
"Expenses": "Расходы",
|
||||
"Expiră": "Истекает",
|
||||
@@ -705,6 +710,7 @@
|
||||
"Finalizat": "Завершено",
|
||||
"Financiar": "Финансы",
|
||||
"Finanțe": "Финансы",
|
||||
"Fix": "Фикс.",
|
||||
"Fișe": "Наряды",
|
||||
"Fișe active": "Активные наряды",
|
||||
"Fișe deschise": "Открытые наряды",
|
||||
@@ -790,7 +796,7 @@
|
||||
"Identificare": "Идентификация",
|
||||
"Identitate": "Identitate",
|
||||
"Ieri": "Вчера",
|
||||
"Ieșire": "Выход",
|
||||
"Ieșire": "Исходящий",
|
||||
"Ieșiri": "Расход",
|
||||
"Image": "Изображение",
|
||||
"Images": "Изображения",
|
||||
@@ -827,6 +833,7 @@
|
||||
"Interval": "Интервал",
|
||||
"Interval dată": "Диапазон дат",
|
||||
"Interval orar": "Часовой интервал",
|
||||
"Intrare": "Входящий",
|
||||
"Intrat": "Intrat",
|
||||
"Inventar": "Инвентаризация",
|
||||
"Invitație": "Приглашение",
|
||||
@@ -895,7 +902,7 @@
|
||||
"Livrare": "Livrare",
|
||||
"Livrare (zile)": "Livrare (zile)",
|
||||
"Livrare gratuită peste": "Бесплатная доставка от",
|
||||
"Livrat": "Доставлено",
|
||||
"Livrat": "Доставлен",
|
||||
"Loading": "Загрузка...",
|
||||
"Loc.": "Loc.",
|
||||
"Local": "Локально",
|
||||
@@ -990,7 +997,7 @@
|
||||
"Mecanic implicit": "Механик по умолчанию",
|
||||
"Mecanici": "Механики",
|
||||
"Medie": "Среднее",
|
||||
"Mediu": "Средний",
|
||||
"Mediu": "Среднее",
|
||||
"Merchant Code": "Merchant Code",
|
||||
"Mesaj": "Mesaj",
|
||||
"Mesaj client": "Mesaj client",
|
||||
@@ -1195,11 +1202,13 @@
|
||||
"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",
|
||||
"PDR": "PDR",
|
||||
"PNG/ICO, max 512 KB.": "PNG/ICO, max 512 KB.",
|
||||
"PNG/SVG, max 2 MB. Apare în sidebar.": "PNG/SVG, max 2 MB. Apare în sidebar.",
|
||||
"PO": "PO",
|
||||
"POS": "POS",
|
||||
"POST /api/v1/login": "POST /api/v1/login",
|
||||
"PPF": "PPF",
|
||||
"Pagina": "Страница",
|
||||
"Pagini": "Страницы",
|
||||
"Paid at": "Оплачено",
|
||||
@@ -1229,6 +1238,7 @@
|
||||
"Payment method": "Способ оплаты",
|
||||
"Payments": "Платежи",
|
||||
"Paynet": "Paynet",
|
||||
"Pe oră": "Почасовая",
|
||||
"Pe pauză": "На паузе",
|
||||
"Pe status": "Pe status",
|
||||
"Penalizări": "Штрафы",
|
||||
@@ -1287,6 +1297,7 @@
|
||||
"Pod / Zi": "Пост / День",
|
||||
"Pod / spațiu": "Пост / место",
|
||||
"Pod × Zile": "Пост × Дни",
|
||||
"Polish": "Полироль",
|
||||
"Politica de confidențialitate": "Политика конфиденциальности",
|
||||
"Politici": "Политики",
|
||||
"Pontaj": "Табель",
|
||||
@@ -1384,6 +1395,7 @@
|
||||
"Published": "Опубликовано",
|
||||
"Purchase": "Закупка",
|
||||
"Purchases": "Закупки",
|
||||
"Push": "Push",
|
||||
"Putere": "Мощность",
|
||||
"Pâlnie": "Воронка",
|
||||
"Până la": "До",
|
||||
@@ -1401,6 +1413,7 @@
|
||||
"Rapoarte": "Отчёты",
|
||||
"Raport": "Отчёт",
|
||||
"Rata conversie": "Конверсия",
|
||||
"Ratat": "Пропущенный",
|
||||
"Rate": "Ставка",
|
||||
"Rating": "Рейтинг",
|
||||
"Rating actualizat → {$score}★": "Rating actualizat → {$score}★",
|
||||
@@ -1421,8 +1434,8 @@
|
||||
"Recepționat": "Принято",
|
||||
"Recepționat — batch creat": "Recepționat — batch creat",
|
||||
"Recepționată": "Принято",
|
||||
"Recepționată parțial": "Частично принято",
|
||||
"Recepționată total": "Полностью принято",
|
||||
"Recepționată parțial": "Частично принята",
|
||||
"Recepționată total": "Полностью принята",
|
||||
"Recepționează": "Принять",
|
||||
"Recomandat": "Рекомендуется",
|
||||
"Recomandate": "Рекомендуемые",
|
||||
@@ -1451,6 +1464,7 @@
|
||||
"Renunță": "Отменить",
|
||||
"Reordonează": "Изменить порядок",
|
||||
"Reparație": "Ремонт",
|
||||
"Reparație caroserie": "Ремонт кузова",
|
||||
"Reparații": "Ремонты",
|
||||
"Report": "Отчёт",
|
||||
"Reports": "Отчёты",
|
||||
@@ -1484,6 +1498,7 @@
|
||||
"Rezultate": "Результаты",
|
||||
"Rezumat": "Резюме",
|
||||
"Reîmprospătează": "Обновить",
|
||||
"Ridicare la service": "Самовывоз в сервисе",
|
||||
"Ridicat": "Высокий",
|
||||
"Robotizată": "Робот",
|
||||
"Rol": "Роль",
|
||||
@@ -1500,7 +1515,7 @@
|
||||
"Rânduri": "Строки",
|
||||
"Rânduri per pagină": "Строк на странице",
|
||||
"Rămas": "Осталось",
|
||||
"Răspuns": "Отвечено",
|
||||
"Răspuns": "Отвечен",
|
||||
"Răspuns AI ne-parsabil ca JSON.": "Răspuns AI ne-parsabil ca JSON.",
|
||||
"SMS": "SMS",
|
||||
"SUV": "SUV",
|
||||
@@ -1590,6 +1605,7 @@
|
||||
"Setări plăți salvate": "Setări plăți salvate",
|
||||
"Setări salvate": "Setări salvate",
|
||||
"Setările au fost salvate. Hai să adăugăm primul client.": "Setările au fost salvate. Hai să adăugăm primul client.",
|
||||
"Sever": "Тяжёлое",
|
||||
"Sex": "Пол",
|
||||
"Sezon": "Sezon",
|
||||
"Sfat": "Совет",
|
||||
@@ -1839,6 +1855,7 @@
|
||||
"Uzat": "Изношено",
|
||||
"Uzură (mm) per poziție": "Uzură (mm) per poziție",
|
||||
"Uzură min": "Мин. износ",
|
||||
"Ușor": "Лёгкое",
|
||||
"VIN": "VIN",
|
||||
"VIN căutare & piese": "VIN căutare & piese",
|
||||
"VIN trebuie să aibă cel puțin 11 caractere.": "VIN trebuie să aibă cel puțin 11 caractere.",
|
||||
@@ -1887,6 +1904,7 @@
|
||||
"Vizual": "Визуально",
|
||||
"Vizualizează": "Просмотр",
|
||||
"Vizualizări": "Просмотры",
|
||||
"Vopsire": "Покраска",
|
||||
"Vânzări": "Vânzări",
|
||||
"Vârstă max (ani)": "Макс. возраст (лет)",
|
||||
"Vârstă min (ani)": "Мин. возраст (лет)",
|
||||
@@ -2177,6 +2195,7 @@
|
||||
"În depozit": "На складе",
|
||||
"În lucru": "В работе",
|
||||
"În pipeline": "В воронке",
|
||||
"În procesare": "В обработке",
|
||||
"În trial": "В триале",
|
||||
"Înainte": "Назад",
|
||||
"Înapoi": "Назад",
|
||||
|
||||
Reference in New Issue
Block a user