feat(i18n): migrate hardcoded German strings to t() across 104 components/pages — AST-based batch with re-parse gate, 423 new de.json keys; tsc clean; vitest failures byte-identical to clean-tree baseline (pre-existing)
This commit is contained in:
@@ -537,13 +537,13 @@ export function ContactsListPage() {
|
||||
{/* Placeholder for saved custom views */}
|
||||
{savedViews.length === 0 ? (
|
||||
<div className="px-2 py-3 text-center">
|
||||
<p className="text-[11px] text-secondary-400 mb-2">Keine benutzerdefinierten Ansichten</p>
|
||||
<p className="text-[11px] text-secondary-400 mb-2">{t('contactsList.keinebenutzerdefiniertenansichten')}</p>
|
||||
<button
|
||||
onClick={handleSaveView}
|
||||
className="inline-flex items-center gap-1 px-2 py-1 text-[11px] text-primary-600 hover:bg-primary-50 rounded transition-colors"
|
||||
>
|
||||
<Plus className="w-3 h-3" />
|
||||
Aktuelle Ansicht speichern
|
||||
{t('contactsList.aktuelleansichtspeichern')}
|
||||
</button>
|
||||
</div>
|
||||
) : (
|
||||
@@ -572,7 +572,7 @@ export function ContactsListPage() {
|
||||
className="w-full flex items-center gap-1 px-2 py-1.5 rounded text-xs text-primary-600 hover:bg-primary-50 transition-colors"
|
||||
>
|
||||
<Plus className="w-3 h-3" />
|
||||
Aktuelle Ansicht speichern
|
||||
{t('contactsList.aktuelleansichtspeichern')}
|
||||
</button>
|
||||
</>
|
||||
)}
|
||||
@@ -756,7 +756,7 @@ export function ContactsListPage() {
|
||||
|
||||
{/* Saved Filters Modal */}
|
||||
{savedFiltersOpen && (
|
||||
<Modal open={savedFiltersOpen} onClose={() => setSavedFiltersOpen(false)} title="Gespeicherte Filter">
|
||||
<Modal open={savedFiltersOpen} onClose={() => setSavedFiltersOpen(false)} title={t('contactsList.gespeichertefilter')}>
|
||||
<SavedFilters
|
||||
entityType="contacts"
|
||||
currentCriteria={{ search: debouncedSearch, type: contactType, sortBy, sortOrder, folderId }}
|
||||
|
||||
Reference in New Issue
Block a user