i18n(excel-import-wizard): translate stepper (1-4) + Step 3 title + row status badges

- 4 stepper labels (Upload / Mapare coloane / Previzualizare / Confirmare)
  now split so the number stays and only the text runs through __()
- Step 3 heading rewritten with __(':n poziții') placeholder
- 'Selectat: filename.xlsx' hint wrapped
- Row status badges (Găsit/Nou/Nu găsit) split so emoji stays and label
  translates
- 'Articole noi (se vor crea)' summary line wrapped

+8 translations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-18 10:18:39 +00:00
parent 466d182192
commit 7abbfe8509
3 changed files with 24 additions and 8 deletions
+8
View File
@@ -209,6 +209,7 @@
"Articol": "Article", "Articol": "Article",
"Articol nu se potrivește comenzii": "Item does not match order", "Articol nu se potrivește comenzii": "Item does not match order",
"Articole": "Items", "Articole": "Items",
"Articole noi (se vor crea)": "New items (to be created)",
"Ascunde": "Hide", "Ascunde": "Hide",
"Ascuns": "Hidden", "Ascuns": "Hidden",
"Asig.": "Asig.", "Asig.": "Asig.",
@@ -432,6 +433,7 @@
"Configurări": "Configuration", "Configurări": "Configuration",
"Configurări avansate": "Advanced settings", "Configurări avansate": "Advanced settings",
"Confirm password": "Confirm password", "Confirm password": "Confirm password",
"Confirmare": "Confirmation",
"Confirmare plată primită": "Payment received", "Confirmare plată primită": "Payment received",
"Confirmat": "Confirmed", "Confirmat": "Confirmed",
"Confirmate": "Confirmed", "Confirmate": "Confirmed",
@@ -825,6 +827,7 @@
"Grupare:": "Group:", "Grupare:": "Group:",
"Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet", "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet",
"Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.", "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.",
"Găsit": "Found",
"Găsite (cu articol existent)": "Found (with existing article)", "Găsite (cu articol existent)": "Found (with existing article)",
"Hartă daune": "Damage map", "Hartă daune": "Damage map",
"Hatchback": "Hatchback", "Hatchback": "Hatchback",
@@ -1006,6 +1009,7 @@
"Manopere": "Labor", "Manopere": "Labor",
"Manoperă": "Labor", "Manoperă": "Labor",
"Manuală": "Manual", "Manuală": "Manual",
"Mapare coloane": "Column mapping",
"Marca": "Make", "Marca": "Make",
"Marca/Model": "Make/Model", "Marca/Model": "Make/Model",
"Marca/Model:": "Marca/Model:", "Marca/Model:": "Marca/Model:",
@@ -1197,6 +1201,7 @@
"Nu am găsit linii valide — verifică maparea coloanelor": "No valid rows found — check column mapping", "Nu am găsit linii valide — verifică maparea coloanelor": "No valid rows found — check column mapping",
"Nu există date": "No data", "Nu există date": "No data",
"Nu există rezultate": "No results", "Nu există rezultate": "No results",
"Nu găsit": "Not found",
"Nu pot porni camera: ": "Cannot start camera: ", "Nu pot porni camera: ": "Cannot start camera: ",
"Nu re-trimite mai des de X zile": "Nu re-trimite mai des de X zile", "Nu re-trimite mai des de X zile": "Nu re-trimite mai des de X zile",
"Nu te poți șterge pe tine!": "You can't delete yourself!", "Nu te poți șterge pe tine!": "You can't delete yourself!",
@@ -1295,6 +1300,7 @@
"Password": "Password", "Password": "Password",
"Pasul 1: Încarcă fișierul": "Step 1: Upload file", "Pasul 1: Încarcă fișierul": "Step 1: Upload file",
"Pasul 2: Mapează coloanele": "Step 2: Map columns", "Pasul 2: Mapează coloanele": "Step 2: Map columns",
"Pasul 3: Previzualizare — :n poziții": "Step 3: Preview — :n items",
"Pauză": "Pause", "Pauză": "Pause",
"Pay status": "Pay status", "Pay status": "Pay status",
"Pay terms": "Pay terms", "Pay terms": "Pay terms",
@@ -1643,6 +1649,7 @@
"Sedan / Hatchback": "Sedan / Hatchback", "Sedan / Hatchback": "Sedan / Hatchback",
"Select all": "Select all", "Select all": "Select all",
"Selectat": "Selected", "Selectat": "Selected",
"Selectat:": "Selected:",
"Selectate": "Selected", "Selectate": "Selected",
"Selectează": "Select", "Selectează": "Select",
"Selectează dată": "Select date", "Selectează dată": "Select date",
@@ -1921,6 +1928,7 @@
"Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "A default warehouse was created at migration. Add others if you have separate physical locations (branch, hall, mobile).", "Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "A default warehouse was created at migration. Add others if you have separate physical locations (branch, hall, mobile).",
"Updated at": "Updated at", "Updated at": "Updated at",
"Upgrade": "Upgrade", "Upgrade": "Upgrade",
"Upload": "Upload",
"Urgent": "Urgent", "Urgent": "Urgent",
"Urgente": "Urgent", "Urgente": "Urgent",
"Urgență": "Urgency", "Urgență": "Urgency",
+8
View File
@@ -209,6 +209,7 @@
"Articol": "Артикул", "Articol": "Артикул",
"Articol nu se potrivește comenzii": "Товар не соответствует заказу", "Articol nu se potrivește comenzii": "Товар не соответствует заказу",
"Articole": "Позиции", "Articole": "Позиции",
"Articole noi (se vor crea)": "Новые артикулы (будут созданы)",
"Ascunde": "Скрыть", "Ascunde": "Скрыть",
"Ascuns": "Скрыто", "Ascuns": "Скрыто",
"Asig.": "Asig.", "Asig.": "Asig.",
@@ -432,6 +433,7 @@
"Configurări": "Конфигурация", "Configurări": "Конфигурация",
"Configurări avansate": "Расширенная конфигурация", "Configurări avansate": "Расширенная конфигурация",
"Confirm password": "Подтверждение пароля", "Confirm password": "Подтверждение пароля",
"Confirmare": "Подтверждение",
"Confirmare plată primită": "Оплата получена", "Confirmare plată primită": "Оплата получена",
"Confirmat": "Подтверждён", "Confirmat": "Подтверждён",
"Confirmate": "Подтверждено", "Confirmate": "Подтверждено",
@@ -825,6 +827,7 @@
"Grupare:": "Группировка:", "Grupare:": "Группировка:",
"Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet", "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet",
"Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.", "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.": "Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet\") și aplică-l pe o fișă cu un click.",
"Găsit": "Найдено",
"Găsite (cu articol existent)": "Найдено (с существующим артикулом)", "Găsite (cu articol existent)": "Найдено (с существующим артикулом)",
"Hartă daune": "Карта повреждений", "Hartă daune": "Карта повреждений",
"Hatchback": "Хэтчбек", "Hatchback": "Хэтчбек",
@@ -1006,6 +1009,7 @@
"Manopere": "Работы", "Manopere": "Работы",
"Manoperă": "Работа", "Manoperă": "Работа",
"Manuală": "Ручная", "Manuală": "Ручная",
"Mapare coloane": "Сопоставление колонок",
"Marca": "Марка", "Marca": "Марка",
"Marca/Model": "Марка/Модель", "Marca/Model": "Марка/Модель",
"Marca/Model:": "Marca/Model:", "Marca/Model:": "Marca/Model:",
@@ -1197,6 +1201,7 @@
"Nu am găsit linii valide — verifică maparea coloanelor": "Не найдено валидных строк — проверьте маппинг колонок", "Nu am găsit linii valide — verifică maparea coloanelor": "Не найдено валидных строк — проверьте маппинг колонок",
"Nu există date": "Нет данных", "Nu există date": "Нет данных",
"Nu există rezultate": "Нет результатов", "Nu există rezultate": "Нет результатов",
"Nu găsit": "Не найдено",
"Nu pot porni camera: ": "Не удалось запустить камеру: ", "Nu pot porni camera: ": "Не удалось запустить камеру: ",
"Nu re-trimite mai des de X zile": "Nu re-trimite mai des de X zile", "Nu re-trimite mai des de X zile": "Nu re-trimite mai des de X zile",
"Nu te poți șterge pe tine!": "Нельзя удалить себя!", "Nu te poți șterge pe tine!": "Нельзя удалить себя!",
@@ -1295,6 +1300,7 @@
"Password": "Пароль", "Password": "Пароль",
"Pasul 1: Încarcă fișierul": "Шаг 1: Загрузка файла", "Pasul 1: Încarcă fișierul": "Шаг 1: Загрузка файла",
"Pasul 2: Mapează coloanele": "Шаг 2: Сопоставьте колонки", "Pasul 2: Mapează coloanele": "Шаг 2: Сопоставьте колонки",
"Pasul 3: Previzualizare — :n poziții": "Шаг 3: Предпросмотр — :n позиций",
"Pauză": "Пауза", "Pauză": "Пауза",
"Pay status": "Статус оплаты", "Pay status": "Статус оплаты",
"Pay terms": "Условия оплаты", "Pay terms": "Условия оплаты",
@@ -1643,6 +1649,7 @@
"Sedan / Hatchback": "Седан / Хэтчбек", "Sedan / Hatchback": "Седан / Хэтчбек",
"Select all": "Выбрать все", "Select all": "Выбрать все",
"Selectat": "Выбрано", "Selectat": "Выбрано",
"Selectat:": "Выбрано:",
"Selectate": "Выбранные", "Selectate": "Выбранные",
"Selectează": "Выбрать", "Selectează": "Выбрать",
"Selectează dată": "Выберите дату", "Selectează dată": "Выберите дату",
@@ -1921,6 +1928,7 @@
"Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "Склад по умолчанию создан при миграции. Добавьте другие, если есть отдельные физические локации (филиал, ангар, мобильный).", "Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).": "Склад по умолчанию создан при миграции. Добавьте другие, если есть отдельные физические локации (филиал, ангар, мобильный).",
"Updated at": "Обновлён", "Updated at": "Обновлён",
"Upgrade": "Обновление", "Upgrade": "Обновление",
"Upload": "Загрузка",
"Urgent": "Срочно", "Urgent": "Срочно",
"Urgente": "Срочные", "Urgente": "Срочные",
"Urgență": "Срочность", "Urgență": "Срочность",
@@ -37,13 +37,13 @@
<div class="wiz"> <div class="wiz">
<div class="wiz-steps"> <div class="wiz-steps">
<div class="wiz-step {{ $step >= 1 ? 'active' : '' }} {{ $step > 1 ? 'done' : '' }}">1. Upload</div> <div class="wiz-step {{ $step >= 1 ? 'active' : '' }} {{ $step > 1 ? 'done' : '' }}">1. {{ __('Upload') }}</div>
<div class="wiz-step-sep"></div> <div class="wiz-step-sep"></div>
<div class="wiz-step {{ $step == 2 ? 'active' : '' }} {{ $step > 2 ? 'done' : '' }}">2. Mapare coloane</div> <div class="wiz-step {{ $step == 2 ? 'active' : '' }} {{ $step > 2 ? 'done' : '' }}">2. {{ __('Mapare coloane') }}</div>
<div class="wiz-step-sep"></div> <div class="wiz-step-sep"></div>
<div class="wiz-step {{ $step == 3 ? 'active' : '' }} {{ $step > 3 ? 'done' : '' }}">3. Previzualizare</div> <div class="wiz-step {{ $step == 3 ? 'active' : '' }} {{ $step > 3 ? 'done' : '' }}">3. {{ __('Previzualizare') }}</div>
<div class="wiz-step-sep"></div> <div class="wiz-step-sep"></div>
<div class="wiz-step {{ $step == 4 ? 'active' : '' }}">4. Confirmare</div> <div class="wiz-step {{ $step == 4 ? 'active' : '' }}">4. {{ __('Confirmare') }}</div>
</div> </div>
<div class="wiz-card"> <div class="wiz-card">
@@ -65,7 +65,7 @@
<label>{{ __('Fișier Excel (.xlsx) sau CSV *') }}</label> <label>{{ __('Fișier Excel (.xlsx) sau CSV *') }}</label>
<input type="file" wire:model="upload" accept=".xlsx,.xls,.csv" /> <input type="file" wire:model="upload" accept=".xlsx,.xls,.csv" />
@if ($upload) @if ($upload)
<div style="margin-top:6px;font-size:12px;color:#4a5568;">Selectat: {{ $upload->getClientOriginalName() }}</div> <div style="margin-top:6px;font-size:12px;color:#4a5568;">{{ __('Selectat:') }} {{ $upload->getClientOriginalName() }}</div>
@endif @endif
</div> </div>
@@ -157,7 +157,7 @@
{{-- STEP 3: Preview --}} {{-- STEP 3: Preview --}}
@if ($step === 3) @if ($step === 3)
<h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">Pasul 3: Previzualizare {{ $previewSummary['total'] }} poziții</h2> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">{{ __('Pasul 3: Previzualizare — :n poziții', ['n' => $previewSummary['total']]) }}</h2>
<div class="wiz-summary"> <div class="wiz-summary">
<div class="wiz-summary-item"> <div class="wiz-summary-item">
@@ -166,7 +166,7 @@
</div> </div>
<div class="wiz-summary-item"> <div class="wiz-summary-item">
<strong style="color:#92400e;">{{ $previewSummary['new'] }}</strong> <strong style="color:#92400e;">{{ $previewSummary['new'] }}</strong>
Articole noi (se vor crea) {{ __('Articole noi (se vor crea)') }}
</div> </div>
<div class="wiz-summary-item"> <div class="wiz-summary-item">
<strong style="color:#991b1b;">{{ $previewSummary['no_article'] }}</strong> <strong style="color:#991b1b;">{{ $previewSummary['no_article'] }}</strong>
@@ -189,7 +189,7 @@
<td>{{ $row['brand'] }}</td> <td>{{ $row['brand'] }}</td>
<td>{{ rtrim(rtrim(number_format($row['qty'], 2), '0'), '.') }}</td> <td>{{ rtrim(rtrim(number_format($row['qty'], 2), '0'), '.') }}</td>
<td>{{ number_format($row['price'], 2) }}</td> <td>{{ number_format($row['price'], 2) }}</td>
<td><span class="wiz-badge {{ $row['status'] }}">{{ ['found' => '✅ Găsit', 'new' => '⚠️ Nou', 'no_article' => '❓ Nu găsit'][$row['status']] ?? $row['status'] }}</span></td> <td><span class="wiz-badge {{ $row['status'] }}">{{ ['found' => '✅ ' . __('Găsit'), 'new' => '⚠️ ' . __('Nou'), 'no_article' => '❓ ' . __('Nu găsit')][$row['status']] ?? $row['status'] }}</span></td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>