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