feat(frontend): new strip components, suggestions dropdown, empty state
CorrespondenzPersonBar (Row 1), CorrespondenzFilterControls (Row 2 with live count + sort), CorrespondentSuggestionsDropdown (fetch-on-focus, keyboard nav), SinglePersonHintBar, CorrespondenzEmptyState (recent persons from localStorage). New i18n shim in messages-extra.ts until root-owned paraglide files can be regenerated. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
37
frontend/src/lib/messages-extra.ts
Normal file
37
frontend/src/lib/messages-extra.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Extra message functions for i18n keys added after the last paraglide compile.
|
||||
*
|
||||
* TODO: Remove this file once the root-owned paraglide files in src/lib/paraglide/
|
||||
* are regenerated (run `npm run dev` or the paraglide compile step as the owning user).
|
||||
* At that point, these functions will be generated into _index.js and the components
|
||||
* that import from here should switch back to importing from $lib/paraglide/messages.js.
|
||||
*
|
||||
* Note: these fall back to German only — locale switching is handled by the generated
|
||||
* paraglide files, not this shim.
|
||||
*/
|
||||
|
||||
// Svelte auto-escapes interpolated values — do not use {@html} with these strings.
|
||||
|
||||
export const conv_hint_single_person = (inputs: { name: string }) =>
|
||||
`Alle Briefe von ${inputs.name} — wähle einen Korrespondenten oben um einzugrenzen`;
|
||||
|
||||
export const conv_hint_single_person_filtered = (inputs: {
|
||||
name: string;
|
||||
from: string;
|
||||
to: string;
|
||||
sortLabel: string;
|
||||
}) => `Alle Briefe von ${inputs.name} · ${inputs.from}–${inputs.to} · ${inputs.sortLabel}`;
|
||||
|
||||
export const conv_strip_period = () => 'Zeitraum';
|
||||
export const conv_strip_from_placeholder = () => 'Von…';
|
||||
export const conv_strip_to_placeholder = () => 'Bis…';
|
||||
export const conv_strip_all_correspondents = () => 'Alle Korrespondenten';
|
||||
export const conv_strip_sort_newest = () => 'Neueste';
|
||||
export const conv_strip_sort_oldest = () => 'Älteste';
|
||||
export const conv_suggestions_heading = () => 'Häufigste Korrespondenten';
|
||||
export const conv_suggestions_all_label = (inputs: { name: string }) =>
|
||||
`Alle Korrespondenten von ${inputs.name}`;
|
||||
export const conv_letters_count = (inputs: { count: number }) => `${inputs.count} Briefe`;
|
||||
export const conv_empty_search_placeholder = () => 'Person suchen…';
|
||||
export const conv_empty_recent_label = () => 'Zuletzt geöffnet';
|
||||
export const conv_no_party = () => '—';
|
||||
Reference in New Issue
Block a user