feat(localisation): specify interface localisation and language selection - #7
Merged
Conversation
…tion The interface has only ever been English. G5 rests on choosing the true word in the user's own vocabulary, and that argument does not survive the user not reading English. Nothing in the catalogue owned the language the interface runs in — only G5's Translation note, which declared interface translation out of scope and now no longer holds. G7 specifies it: English and Dutch to start with English as the source and fallback locale, a locale added by registration and translation rather than a rewrite, first-visit detection from the request's Accept-Language with English as the floor, and a per-user preference stored beside the theme it mirrors that beats detection on every later request. The switch lives in Settings in the Appearance family; every user-facing string is translatable; a missing key falls back to English rather than to a broken surface; the active locale is announced for assistive technology; and selection adds no outbound call. Fourteen requirements, every one marked (Open) — the feature is specified ahead of its implementation, which is the sequence GOV-R4 requires: the specification of a behavioural change merges before the code that implements it. Reconciled around it: G5's Translation section now points to G7 and keeps only the honesty rule that outlives any locale, G5-R14 is reworded to that same effect without renumbering, the data model and platform matrix gain the language preference and the per-platform language signal beside their theme counterparts, and the feature count moves to fifty-two. Signed-off-by: Wessel Verheij <info@nightworks.io>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What
Adds G7 — Interface localisation and language selection, a new cross-cutting
UX feature, and reconciles the neighbouring pages around it.
The interface has only ever been English. G5 already rests on choosing the true
word in the user's own vocabulary; that argument does not survive the user not
reading English. Until now nothing in the catalogue owned the language the
interface runs in — only G5's Translation note, which declared interface
translation out of scope and no longer holds.
The feature (G7)
en) and Dutch (nl) to start, English as the source and fallbacklocale; a further locale costs a registration and a translation, not a rewrite.
Accept-Language, best supportedmatch, with English as the floor when nothing matches.
beats detection on every later request and persists across sessions.
English, never to a raw key or blank; the active locale is announced for
assistive technology; selection adds no outbound call.
Fourteen requirements, G7-R1 … G7-R14, every one marked (Open) — the
feature is specified ahead of its implementation, which is the sequence
GOV-R4
requires: the spec of a behavioural change merges before the code.
Reconciled around it
that outlives any locale; G5-R14 reworded to that effect, not renumbered.
beside theme.
and the repo spec.
Checks
Ran locally before pushing:
integrity.pyclean,typosclean,markdownlint-cli20 issues,lychee0 errors.