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
@@ -39,7 +39,7 @@
</style>
<div class="fn-bar">
<span style="font-size:13px;font-weight:500;">Perioadă:</span>
<span style="font-size:13px;font-weight:500;">{{ __('Perioadă:') }}</span>
@foreach ($periods as $key => $label)
<button type="button" wire:click="setPeriod('{{ $key }}')"
class="fn-pill {{ $period === $key ? 'active' : '' }}">{{ $label }}</button>
@@ -55,19 +55,19 @@
@if ($tab === 'overview')
<div class="fn-grid fn-grid-4">
<div class="fn-card"><div class="fn-stat-l">Încasări</div><div class="fn-stat-v fn-success">{{ number_format($data['income'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">{{ __('Încasări') }}</div><div class="fn-stat-v fn-success">{{ number_format($data['income'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">Cheltuieli</div><div class="fn-stat-v fn-danger">{{ number_format($data['expenses'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">Profit</div><div class="fn-stat-v {{ $data['profit'] >= 0 ? 'fn-success' : 'fn-danger' }}">{{ number_format($data['profit'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">Datorii clienți</div><div class="fn-stat-v fn-warning">{{ number_format($data['debtTotal'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">{{ __('Datorii clienți') }}</div><div class="fn-stat-v fn-warning">{{ number_format($data['debtTotal'], 2, '.', ' ') }} MDL</div></div>
</div>
@elseif ($tab === 'cashflow')
<div class="fn-grid fn-grid-2" style="margin-bottom: 16px;">
<div class="fn-card"><div class="fn-stat-l">Total intrări</div><div class="fn-stat-v fn-success">{{ number_format($data['totalIn'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">Total ieșiri</div><div class="fn-stat-v fn-danger">{{ number_format($data['totalOut'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">{{ __('Total intrări') }}</div><div class="fn-stat-v fn-success">{{ number_format($data['totalIn'], 2, '.', ' ') }} MDL</div></div>
<div class="fn-card"><div class="fn-stat-l">{{ __('Total ieșiri') }}</div><div class="fn-stat-v fn-danger">{{ number_format($data['totalOut'], 2, '.', ' ') }} MDL</div></div>
</div>
<div class="fn-card">
<div class="fn-h3">Cashflow zilnic verde = încasări, roșu = cheltuieli</div>
<div class="fn-h3">{{ __('Cashflow zilnic — verde = încasări, roșu = cheltuieli') }}</div>
<div class="fn-chart">
@foreach ($data['rows'] as $r)
<div class="fn-chart-day" title="{{ $r['date'] }}: in {{ number_format($r['in']) }} / out {{ number_format($r['out']) }}">
@@ -90,18 +90,18 @@
<div class="fn-h3">Venituri</div>
<table class="fn-tbl">
<tr><td>Manopere</td><td class="fn-r">{{ number_format($data['worksRevenue'], 2, '.', ' ') }}</td></tr>
<tr><td>Piese (vânzare)</td><td class="fn-r">{{ number_format($data['partsRevenue'], 2, '.', ' ') }}</td></tr>
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">Total venituri</td><td class="fn-r fn-bold fn-success">{{ number_format($data['totalRevenue'], 2, '.', ' ') }}</td></tr>
<tr><td>{{ __('Piese (vânzare)') }}</td><td class="fn-r">{{ number_format($data['partsRevenue'], 2, '.', ' ') }}</td></tr>
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">{{ __('Total venituri') }}</td><td class="fn-r fn-bold fn-success">{{ number_format($data['totalRevenue'], 2, '.', ' ') }}</td></tr>
</table>
</div>
<div class="fn-card">
<div class="fn-h3">Costuri</div>
<table class="fn-tbl">
<tr><td>Cost piese (achiziție)</td><td class="fn-r fn-danger">{{ number_format($data['partsCost'], 2, '.', ' ') }}</td></tr>
<tr><td>{{ __('Cost piese (achiziție)') }}</td><td class="fn-r fn-danger">{{ number_format($data['partsCost'], 2, '.', ' ') }}</td></tr>
@foreach ($data['expensesByCat'] as $row)
<tr><td>{{ \App\Models\Tenant\Expense::CATEGORIES[$row->category] ?? $row->category }}</td><td class="fn-r fn-danger">{{ number_format((float) $row->total, 2, '.', ' ') }}</td></tr>
@endforeach
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">Total costuri</td><td class="fn-r fn-bold fn-danger">{{ number_format($data['partsCost'] + $data['totalExpenses'], 2, '.', ' ') }}</td></tr>
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">{{ __('Total costuri') }}</td><td class="fn-r fn-bold fn-danger">{{ number_format($data['partsCost'] + $data['totalExpenses'], 2, '.', ' ') }}</td></tr>
</table>
</div>
</div>
@@ -117,17 +117,17 @@
<div class="fn-card">
<div class="fn-h3">Active</div>
<table class="fn-tbl">
<tr><td>Numerar net (toate plățile - cheltuieli)</td><td class="fn-r fn-bold fn-success">{{ number_format($data['netCash'], 2, '.', ' ') }} MDL</td></tr>
<tr><td>Datorii clienți (de încasat)</td><td class="fn-r fn-warning">{{ number_format($data['debt'], 2, '.', ' ') }} MDL</td></tr>
<tr><td>Stoc piese (la preț achiziție)</td><td class="fn-r">{{ number_format($data['stockValue'], 2, '.', ' ') }} MDL</td></tr>
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">Total active</td><td class="fn-r fn-bold">{{ number_format($data['netCash'] + $data['debt'] + $data['stockValue'], 2, '.', ' ') }}</td></tr>
<tr><td>{{ __('Numerar net (toate plățile - cheltuieli)') }}</td><td class="fn-r fn-bold fn-success">{{ number_format($data['netCash'], 2, '.', ' ') }} MDL</td></tr>
<tr><td>{{ __('Datorii clienți (de încasat)') }}</td><td class="fn-r fn-warning">{{ number_format($data['debt'], 2, '.', ' ') }} MDL</td></tr>
<tr><td>{{ __('Stoc piese (la preț achiziție)') }}</td><td class="fn-r">{{ number_format($data['stockValue'], 2, '.', ' ') }} MDL</td></tr>
<tr style="border-top:2px solid #e5e7eb;"><td class="fn-bold">{{ __('Total active') }}</td><td class="fn-r fn-bold">{{ number_format($data['netCash'] + $data['debt'] + $data['stockValue'], 2, '.', ' ') }}</td></tr>
</table>
</div>
<div class="fn-card">
<div class="fn-h3">Toate timpurile</div>
<div class="fn-h3">{{ __('Toate timpurile') }}</div>
<table class="fn-tbl">
<tr><td>Total încasat</td><td class="fn-r fn-success">{{ number_format($data['allTimePayments'], 2, '.', ' ') }} MDL</td></tr>
<tr><td>Total cheltuit</td><td class="fn-r fn-danger">{{ number_format($data['allTimeExpenses'], 2, '.', ' ') }} MDL</td></tr>
<tr><td>{{ __('Total încasat') }}</td><td class="fn-r fn-success">{{ number_format($data['allTimePayments'], 2, '.', ' ') }} MDL</td></tr>
<tr><td>{{ __('Total cheltuit') }}</td><td class="fn-r fn-danger">{{ number_format($data['allTimeExpenses'], 2, '.', ' ') }} MDL</td></tr>
</table>
</div>
</div>