feat(i18n): convert 38 hardcoded static labels + safe blade wrap + 226 keys

- Convert all remaining static \$modelLabel/\$pluralModelLabel to getter
  methods with __() (AppointmentResource, WorkOrderResource, MasterResource,
  ServiceTemplateResource, LaborResource, and 33 others)
- Safe blade wrap v2 (37 files, 201 wraps): fixed the regex to not match
  `->`, `=>`, `!<` — previous aggressive pass broke @if directives
- Bulk-translate lowercase model-label keys (programări, fișe lucru,
  tehnicieni, șabloane servicii, norme-ore, etc.) — these were the RO
  strings appearing in page titles/breadcrumbs
- Add human RU/EN for mechanic-kpi (Mecanic/Lucrări/Norma ore/etc.)
  and calendar-board words

Tests 306 green. Blade compiles cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 06:17:10 +00:00
parent 3911012c65
commit 7077fff3b3
63 changed files with 800 additions and 284 deletions
@@ -16,12 +16,12 @@
<td style="padding:14px 18px;font-size:18px;text-align:right;font-weight:700;color:{{ $themeColor }};">
{{ $appointment->date?->format('d.m.Y') }}
</td></tr>
<tr><td style="padding:8px 18px;font-size:13px;color:#374151;">Ora</td>
<tr><td style="padding:8px 18px;font-size:13px;color:#374151;">{{ __('Ora') }}</td>
<td style="padding:8px 18px;font-size:14px;text-align:right;font-weight:600;">
{{ \Illuminate\Support\Str::substr($appointment->time_start, 0, 5) }} {{ \Illuminate\Support\Str::substr($appointment->time_end, 0, 5) }}
</td></tr>
@if ($appointment->title)
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Subiect</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Subiect') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;">{{ $appointment->title }}</td></tr>
@endif
@if ($vehicle)
@@ -32,11 +32,11 @@
</td></tr>
@endif
@if ($master)
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Maistru</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Maistru') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;">{{ $master->name }}</td></tr>
@endif
@if ($post)
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Pod</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Pod') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;">{{ $post->name }}</td></tr>
@endif
</table>
@@ -16,7 +16,7 @@
<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>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">Metoda</td>
<tr><td style="padding:8px 18px;font-size:12px;color:#6b7280;">{{ __('Metoda') }}</td>
<td style="padding:8px 18px;font-size:12px;text-align:right;">
{{ \App\Models\Tenant\Payment::METHODS[$payment->method] ?? $payment->method }}
</td></tr>
@@ -25,7 +25,7 @@
<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;">Vehicul</div>
<div style="font-size:11px;text-transform:uppercase;color:#6b7280;letter-spacing:.5px;">{{ __('Vehicul') }}</div>
<div style="font-size:16px;font-weight:700;margin-top:4px;">
{{ $vehicle->make }} {{ $vehicle->model }} {{ $vehicle->year ?? '' }}
@if ($vehicle->plate) <span style="color:{{ $themeColor }};">[{{ $vehicle->plate }}]</span> @endif
@@ -11,7 +11,7 @@
<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>
<div style="font-size: 14px; color: #6b7280;">{{ __('Comanda') }}</div>
<div style="font-size: 22px; font-weight: 700; margin-bottom: 8px;">#{{ $order->number }}</div>
<div style="color: #6b7280; font-size: 13px;">
{{ $order->created_at->isoFormat('D MMM YYYY, HH:mm') }} ·
@@ -19,7 +19,7 @@
</div>
</div>
<h3 style="font-size: 16px; margin-bottom: 8px;">Produsele tale</h3>
<h3 style="font-size: 16px; margin-bottom: 8px;">{{ __('Produsele tale') }}</h3>
<table style="width: 100%; border-collapse: collapse; margin-bottom: 18px; font-size: 14px;">
@foreach ($items as $item)
<tr>
@@ -34,7 +34,7 @@
@endforeach
@if ((float) $order->delivery_fee > 0)
<tr>
<td style="padding: 8px 0; color: #6b7280;">Livrare</td>
<td style="padding: 8px 0; color: #6b7280;">{{ __('Livrare') }}</td>
<td style="padding: 8px 0; text-align: right;">{{ number_format((float) $order->delivery_fee, 2) }} {{ $currency }}</td>
</tr>
@endif
@@ -32,7 +32,7 @@
</tr>
@if ($paid > 0)
<tr>
<td style="padding:6px 16px;font-size:12px;color:#6b7280;">Achitat</td>
<td style="padding:6px 16px;font-size:12px;color:#6b7280;">{{ __('Achitat') }}</td>
<td style="padding:6px 16px;font-size:12px;text-align:right;color:#059669;">{{ number_format($paid, 2, '.', ' ') }} {{ $currency }}</td>
</tr>
@endif
@@ -51,6 +51,6 @@
</div>
@endif
<p style="margin-top:20px;">{{ __('Atașat veți găsi') }} <b>{{ __('fișa de lucru completă') }}</b> (PDF).</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