fix(web): otte steder hvor grænsefladen blev ved med at være dansk
Skærmbillederne skulle tages på engelsk, og det var dét, der fandt dem: en konto sat til engelsk fik stadig "Forsinket" over de forsinkede opgaver, "Uden sektion" over den første kolonne på tavlen, "Aldrig" i gentagelses- menuen, "hver dag" på rækken, "til instansen · inviteret af" på invitationen, "3 projekter" på kontoen, og hele historikken — nitten hændelser, alle på dansk. En funktion, der kun virker på det ene sprog, er en funktion, der er i stykker. Gentagelsen er den eneste, der ikke bare manglede en nøgle. Serveren skriver `recurrence_text` på dansk og skal blive ved med det: én besked går over WebSocket til alle i projektet på én gang, og de læser ikke det samme sprog. Så de regler, der har et navn, får det i when.js — på den side, der ved, hvis skærm det er — og alt mere specifikt falder tilbage til serverens ord. Mellemrummet i historikken er skrevet ud. Svelte fjerner det, der åbner en blok, så "inviterede" og adressen løb sammen til ét ord. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4b5f3f0864
commit
dce8800f93
@@ -49,3 +49,32 @@ export function fullDate(iso) {
|
||||
year: 'numeric'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* The repeat rules worth a menu entry, and what to call them.
|
||||
*
|
||||
* Here rather than in the drawer that draws the menu, because the row draws the
|
||||
* same rule as a badge and the two had already disagreed: the menu said "Hver
|
||||
* dag" in both languages, and the badge said whatever the server said.
|
||||
*
|
||||
* The server sends `recurrence_text` with every task and sends it in Danish. It
|
||||
* has to: one payload goes over the WebSocket to everybody in the project at
|
||||
* once, and they do not all read the same language. So the rules that have a name
|
||||
* are named here, on the side that knows whose screen this is, and anything more
|
||||
* specific — "hver anden tirsdag", typed into the title — falls back to what the
|
||||
* server wrote.
|
||||
*/
|
||||
export const REPEATS = [
|
||||
{ rule: '', label: 'detail.never' },
|
||||
{ rule: 'FREQ=DAILY', label: 'detail.daily' },
|
||||
{ rule: 'FREQ=WEEKLY', label: 'detail.weekly' },
|
||||
{ rule: 'FREQ=WEEKLY;INTERVAL=2', label: 'detail.fortnightly' },
|
||||
{ rule: 'FREQ=MONTHLY', label: 'detail.monthly' },
|
||||
{ rule: 'FREQ=YEARLY', label: 'detail.yearly' }
|
||||
];
|
||||
|
||||
/** What a repeating task says on its row. */
|
||||
export function repeatLabel(rule, fallback = '') {
|
||||
const known = REPEATS.find((option) => option.rule && option.rule === rule);
|
||||
return known ? t(known.label) : fallback;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user