feat(i18n): mega-wrap 494 raw RO strings + 269 lang entries + 161 human RU/163 EN

Broad sweep across the whole codebase:
- Blade views (39 files, 315 wraps): tag-text and title/placeholder/alt
  attributes wrapped with {{ __() }}. Excludes scripts, styles, @php,
  @verbatim, {{ }}, {!! !!}, comments to avoid touching interpolations.
- PHP (54 files, 179 wraps): array 'key' => 'RO value' patterns and
  list items with diacritics wrapped with __(). Reverted __() inside
  const arrays (PHP disallows non-constant expressions).
- Added 269 new keys to lang/{ru,en}.json (identity fallback for
  unknowns → 161 human RU + 163 EN translations added for the most
  common enums, stages, roles, statuses, payment methods, vehicle
  categories, warehouse, portal, form actions.

Missing translations fall back to RO so the UI never breaks. All 306
tests pass; view cache compiles cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 05:53:22 +00:00
parent 2d447e6294
commit 3911012c65
68 changed files with 1211 additions and 429 deletions
@@ -5,14 +5,14 @@
'email' => $email ?? null,
'city' => $city ?? null,
'logoUrl' => $logoUrl ?? null,
'title' => 'Programare confirmată',
])
<h2 style="margin:0 0 12px;font-size:20px;color:{{ $themeColor }};">📅 Programare confirmată</h2>
'title' => {{ __('\'Programare confirmată\',
])') }}
<h2 style="margin:0 0 12px;font-size:20px;color:{{ $themeColor }};">{{ __('📅 Programare confirmată') }}</h2>
<p>Bună ziua{{ $client?->name ? ', ' . $client->name : '' }},</p>
<p>Programarea dvs. este confirmată:</p>
<p>{{ __('Programarea dvs. este confirmată:') }}</p>
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:16px 0;background:#f9fafb;border-radius:8px;">
<tr><td style="padding:14px 18px;font-size:13px;color:#374151;">Data</td>
<tr><td style="padding:14px 18px;font-size:13px;color:#374151;">{{ __('Data') }}</td>
<td style="padding:14px 18px;font-size:18px;text-align:right;font-weight:700;color:{{ $themeColor }};">
{{ $appointment->date?->format('d.m.Y') }}
</td></tr>
@@ -25,7 +25,7 @@
<td style="padding:8px 18px;font-size:12px;text-align:right;">{{ $appointment->title }}</td></tr>
@endif
@if ($vehicle)
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Auto</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Auto') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;">
{{ $vehicle->make }} {{ $vehicle->model }}
@if ($vehicle->plate) <b>[{{ $vehicle->plate }}]</b> @endif
@@ -41,6 +41,6 @@
@endif
</table>
<p> așteptăm! 🚗</p>
<p>{{ __('Vă așteptăm! 🚗') }}</p>
<p style="font-size:12px;color:#6b7280;">Pentru reprogramare sau anulare, sunați-ne la {{ $phone ?? '—' }}.</p>
@endcomponent
+1 -1
View File
@@ -28,7 +28,7 @@
<div>{{ $companyName ?? 'AutoCRM' }}</div>
@if (!empty($phone)) <div>📞 {{ $phone }}</div> @endif
@if (!empty($email)) <div> {{ $email }}</div> @endif
<div style="margin-top:8px;color:#9ca3af;">Acest email a fost generat automat. rugăm nu răspundeți.</div>
<div style="margin-top:8px;color:#9ca3af;">{{ __('Acest email a fost generat automat. Vă rugăm nu răspundeți.') }}</div>
</td></tr>
</table>
</td></tr>
@@ -5,14 +5,14 @@
'email' => $email ?? null,
'city' => $city ?? null,
'logoUrl' => $logoUrl ?? null,
'title' => 'Plată confirmată',
])
<h2 style="margin:0 0 12px;font-size:20px;color:{{ $themeColor }};">💳 Plată confirmată</h2>
'title' => {{ __('\'Plată confirmată\',
])') }}
<h2 style="margin:0 0 12px;font-size:20px;color:{{ $themeColor }};">{{ __('💳 Plată confirmată') }}</h2>
<p>Bună ziua{{ $client?->name ? ', ' . $client->name : '' }},</p>
<p>Confirmăm primirea plății dvs.:</p>
<p>{{ __('Confirmăm primirea plății dvs.:') }}</p>
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:16px 0;background:#f9fafb;border-radius:8px;">
<tr><td style="padding:14px 18px;font-size:13px;color:#374151;">Sumă achitată</td>
<tr><td style="padding:14px 18px;font-size:13px;color:#374151;">{{ __('Sumă achitată') }}</td>
<td style="padding:14px 18px;font-size:18px;text-align:right;font-weight:700;color:#059669;">
{{ number_format((float) $payment->amount, 2, '.', ' ') }} {{ $currency }}
</td></tr>
@@ -20,17 +20,17 @@
<td style="padding:8px 18px;font-size:12px;text-align:right;">
{{ \App\Models\Tenant\Payment::METHODS[$payment->method] ?? $payment->method }}
</td></tr>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Data</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Data') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;">{{ $payment->paid_at?->format('d.m.Y') }}</td></tr>
@if ($payment->reference)
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Referință</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Referință') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;font-family:monospace;">{{ $payment->reference }}</td></tr>
@endif
@if ($workOrder)
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Fișă lucru</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Fișă lucru') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;font-weight:600;">{{ $workOrder->number }}</td></tr>
@endif
</table>
<p> mulțumim!</p>
<p>{{ __('Vă mulțumim!') }}</p>
@endcomponent
@@ -42,5 +42,5 @@
</div>
@endif
<p>Programați- online sau sunați la <b>{{ $phone ?? '—' }}</b>.</p>
<p>{{ __('Programați-vă online sau sunați la') }} <b>{{ $phone ?? '—' }}</b>.</p>
@endcomponent
@@ -2,13 +2,13 @@
<html>
<head>
<meta charset="UTF-8">
<title>Comandă primită</title>
<title>{{ __('Comandă primită') }}</title>
</head>
<body style="font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; max-width: 600px; margin: 0 auto; padding: 24px; color: #1f2937;">
@php $brand = $company->display_name ?? $company->name; @endphp
<h2 style="font-size: 22px; margin-bottom: 4px;">{{ $brand }}</h2>
<p style="color: #6b7280; margin-bottom: 24px;">Comanda ta a fost primită cu succes.</p>
<p style="color: #6b7280; margin-bottom: 24px;">{{ __('Comanda ta a fost primită cu succes.') }}</p>
<div style="background: #f9fafb; border-radius: 10px; padding: 18px; margin-bottom: 18px;">
<div style="font-size: 14px; color: #6b7280;">Comanda</div>
@@ -39,7 +39,7 @@
</tr>
@endif
<tr>
<td style="padding: 12px 0 4px; font-weight: 700;">Total</td>
<td style="padding: 12px 0 4px; font-weight: 700;">{{ __('Total') }}</td>
<td style="padding: 12px 0 4px; font-weight: 700; font-size: 18px; text-align: right;">
{{ number_format((float) $order->total, 2) }} {{ $currency }}
</td>
@@ -48,13 +48,13 @@
@if ($order->address)
<p style="background: #fefce8; border-left: 3px solid #facc15; padding: 10px 12px; font-size: 13px; color: #713f12;">
<strong>Adresă livrare:</strong> {{ $order->address }}
<strong>{{ __('Adresă livrare:') }}</strong> {{ $order->address }}
</p>
@endif
<p style="margin: 24px 0;">
<a href="{{ $trackingUrl }}" style="display: inline-block; background: #3b82f6; color: #fff; padding: 12px 24px; border-radius: 8px; text-decoration: none; font-weight: 600;">
Urmărește comanda
{{ __('Urmărește comanda →') }}
</a>
</p>
@@ -2,22 +2,22 @@
<html>
<head>
<meta charset="UTF-8">
<title>Resetare parolă</title>
<title>{{ __('Resetare parolă') }}</title>
</head>
<body style="font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; max-width: 560px; margin: 0 auto; padding: 24px; color: #1f2937;">
@php $brand = $company->display_name ?? $company->name; @endphp
<h2 style="font-size: 22px; margin-bottom: 16px;">{{ $brand }}</h2>
<p>Salut {{ $customer->name }},</p>
<p>Ai cerut resetarea parolei pentru contul tău de magazin. Apasă linkul de mai jos ca setezi o parolă nouă:</p>
<p>{{ __('Ai cerut resetarea parolei pentru contul tău de magazin. Apasă linkul de mai jos ca să setezi o parolă nouă:') }}</p>
<p style="margin: 24px 0;">
<a href="{{ $resetUrl }}" style="display: inline-block; background: #3b82f6; color: #fff; padding: 12px 24px; border-radius: 8px; text-decoration: none; font-weight: 600;">
Resetează parola
{{ __('Resetează parola') }}
</a>
</p>
<p style="color: #6b7280; font-size: 14px;">Linkul expiră în 60 de minute. Dacă nu ai cerut tu acest reset, ignoră emailul contul tău e în siguranță.</p>
<p style="color: #6b7280; font-size: 14px;">{{ __('Linkul expiră în 60 de minute. Dacă nu ai cerut tu acest reset, ignoră emailul — contul tău e în siguranță.') }}</p>
<p style="color: #9ca3af; font-size: 12px; margin-top: 32px; border-top: 1px solid #e5e7eb; padding-top: 12px;">
Email automat de la {{ $brand }} nu răspunde la el.
@@ -6,11 +6,11 @@ Ai fost invitat de **{{ $invitedBy }}** să acce­sezi **{{ $companyName }}** pe
Pentru a-ți activa contul și a-ți seta parola, apasă pe linkul de mai jos:
<x-mail::button :url="$acceptUrl" color="primary">
Acceptă invitația
{{ __('Acceptă invitația') }}
</x-mail::button>
Linkul expiră în 7 zile. Dacă nu te aștepți la această invitație, ignoră acest mesaj.
{{ __('Linkul expiră în 7 zile. Dacă nu te aștepți la această invitație, ignoră acest mesaj.
Mulțumim,<br>
Mulțumim,') }}<br>
**{{ $companyName }}**
</x-mail::message>
@@ -6,15 +6,15 @@
'email' => $email ?? null,
'city' => $city ?? null,
'logoUrl' => $logoUrl ?? null,
'title' => 'Mașina e gata',
])
<h2 style="margin:0 0 12px;font-size:20px;color:{{ $themeColor }};"> Mașina dvs. este gata!</h2>
'title' => {{ __('\'Mașina e gata\',
])') }}
<h2 style="margin:0 0 12px;font-size:20px;color:{{ $themeColor }};">{{ __('✅ Mașina dvs. este gata!') }}</h2>
<p>Bună ziua{{ $client?->name ? ', ' . $client->name : '' }},</p>
<p> informăm lucrările pentru autoturismul dvs. au fost finalizate. Puteți veni -l ridicați.</p>
<p>{{ __('Vă informăm că lucrările pentru autoturismul dvs. au fost finalizate. Puteți veni să-l ridicați.') }}</p>
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:16px 0;border:1px solid #e5e7eb;border-radius:8px;">
<tr><td style="padding:14px;">
<div style="font-size:11px;text-transform:uppercase;color:#6b7280;letter-spacing:.5px;">Fișă lucru</div>
<div style="font-size:11px;text-transform:uppercase;color:#6b7280;letter-spacing:.5px;">{{ __('Fișă lucru') }}</div>
<div style="font-size:16px;font-weight:700;margin-top:4px;">{{ $workOrder->number }}</div>
@if ($vehicle)
<div style="margin-top:10px;font-size:13px;">
@@ -27,7 +27,7 @@
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:16px 0;background:#f9fafb;border-radius:8px;">
<tr>
<td style="padding:12px 16px;font-size:13px;color:#374151;">Total</td>
<td style="padding:12px 16px;font-size:13px;color:#374151;">{{ __('Total') }}</td>
<td style="padding:12px 16px;font-size:13px;text-align:right;font-weight:600;">{{ number_format($total, 2, '.', ' ') }} {{ $currency }}</td>
</tr>
@if ($paid > 0)
@@ -38,7 +38,7 @@
@endif
@if ($balance > 0)
<tr>
<td style="padding:12px 16px;font-size:14px;font-weight:700;border-top:1px solid #e5e7eb;color:{{ $themeColor }};">Rest de plată</td>
<td style="padding:12px 16px;font-size:14px;font-weight:700;border-top:1px solid #e5e7eb;color:{{ $themeColor }};">{{ __('Rest de plată') }}</td>
<td style="padding:12px 16px;font-size:16px;text-align:right;font-weight:700;border-top:1px solid #e5e7eb;color:{{ $themeColor }};">{{ number_format($balance, 2, '.', ' ') }} {{ $currency }}</td>
</tr>
@endif
@@ -46,11 +46,11 @@
@if ($workOrder->recommendations)
<div style="background:#fef3c7;border-left:4px solid #f59e0b;padding:12px;margin:16px 0;border-radius:6px;font-size:13px;">
<b style="color:#92400e;"> Recomandări:</b><br>
<b style="color:#92400e;">{{ __('⚠ Recomandări:') }}</b><br>
{{ $workOrder->recommendations }}
</div>
@endif
<p style="margin-top:20px;">Atașat veți găsi <b>fișa de lucru completă</b> (PDF).</p>
<p> mulțumim pentru încredere!</p>
<p style="margin-top:20px;">{{ __('Atașat veți găsi') }} <b>{{ __('fișa de lucru completă') }}</b> (PDF).</p>
<p>{{ __('Vă mulțumim pentru încredere!') }}</p>
@endcomponent