feat(i18n): wrap 1103 hardcoded UI strings across Filament with __()

- Convert static $modelLabel/$pluralModelLabel/$title to getter methods
- Wrap ->label()/->placeholder()/->helperText()/->description()/->title()/->body() args
- Wrap Section::make()/Fieldset::make()/Notification::make()->title() args
- Fix RelationManagers::getTitle() signature to match parent (Model, string)
- Fix Pages::getTitle() to instance method (BasePage::getTitle is non-static)
- Extend lang/ru.json + lang/en.json with 700+ common terms; identity fallback for the rest
- Remove duplicate getters in 5 resources that had manual getModelLabel already

All 306 tests pass. Missing translations fall back to the RO key so the UI never breaks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 05:04:24 +00:00
parent 78ff8d4b43
commit f7fc69077b
83 changed files with 4212 additions and 1251 deletions
@@ -27,7 +27,12 @@ class ExcelImportWizard extends Page
protected static ?int $navigationSort = 65;
protected static ?string $title = 'Import factură Excel/CSV';
protected static ?string $title = null;
public function getTitle(): string
{
return __('Import factură Excel/CSV');
}
protected string $view = 'filament.tenant.pages.excel-import-wizard';
@@ -62,11 +67,11 @@ class ExcelImportWizard extends Page
public function goToStep2(): void
{
if (! $this->supplierId) {
Notification::make()->title('Selectează furnizorul')->danger()->send();
Notification::make()->title(__('Selectează furnizorul'))->danger()->send();
return;
}
if (! $this->upload) {
Notification::make()->title('Încarcă fișierul Excel sau CSV')->danger()->send();
Notification::make()->title(__('Încarcă fișierul Excel sau CSV'))->danger()->send();
return;
}
@@ -96,7 +101,7 @@ class ExcelImportWizard extends Page
$this->previewSummary = $result['summary'];
if (empty($this->previewRows)) {
Notification::make()->title('Nu am găsit linii valide — verifică maparea coloanelor')->warning()->send();
Notification::make()->title(__('Nu am găsit linii valide — verifică maparea coloanelor'))->warning()->send();
return;
}