Internationalisation
Every string is a key. Source is US English. The instrument must remain an instrument in every locale: numbers first-class, alerts shortest, rails flipping in RTL, time axes staying chronological.
Ether does not treat translation as a post-pass on English screenshots.
Strings are keys
- Every operator-facing string is an ICU message key. No concatenated sentences (
"Welcome, " + name + "!"). - Placeholders are named. Plurals and selects use ICU, not handmade if/else in UI code.
- Do not build sentences by stitching translated fragments. Translators need the whole claim.
Expansion
Design for +40% expansion versus English. Labels wrap; they never clip. Buttons, rails, and badges must survive a longer German or Finnish string without overflowing into the reading.
- Prefer wrapping to truncation. If you truncate, provide the full string (tooltip or expand), not an inaccessible ellipsis.
- Do not size containers to the English word.
Layout and RTL
- Logical CSS properties (
margin-inline-start,inset-inline-end,padding-inline). Physical left/right only when the thing is geographic, not directional. - Rails flip in RTL. Navigation and inspector change sides with the inline direction.
- Time axes stay chronological. A spark and a range axis do not mirror into a reversed timeline. Time reads start → end in the locale’s reading of time, not as a flipped drawing.
Formats
- Use locale formatters for numbers, dates, and lists. Do not hard-code
,or.as thousands separators. - Prose dates in English source:
28 Aug 2026. Other locales use their formatter, not a translated abbreviation of the English pattern unless that is the locale convention. - Times in the operator’s timezone, labelled.
- Percent, currency, and compact notation go through the formatter. Tabular numerals still apply.
Shortcuts and chrome
- No first-letter shortcuts that assume Latin labels (
Ffor Filter). If a command has a key, the key is assigned, not derived from the translated word. - Wordmark ETHER is untranslated in every locale.
- Images and the mark have no embedded English. The sweep is language-neutral. Captions are separate strings.
Alerts
Alerts stay the shortest line in every locale. Translators are instructed to keep Alert register clipped: consequence first, then the action. Do not let a polite expansion turn an incident into a paragraph.
Pseudo-localisation
Development builds support pseudo-loc (expanded, marked, accented source strings) so layout and clipping fail in engineering, not in a language drop.
Related
- Writing — US English source rules
- Tone of voice — Alert register
- Terminology — words that must not be replaced with near-synonyms
- Assets — untranslated wordmark, logical layout