Language picker: present regional variants (pt-BR, es-MX, fr-CA, en-CA, zh-Hans/zh-Hant) so the list stays scannable #1053

Closed
opened 2026-10-25 16:29:13 +00:00 by tiagoagueda · 0 comments
Owner

Spun out of #269 (its "From #71" point 5).

0.5 offers several regional variants of one language:

  • pt-PT and pt-BR
  • es and es-MX
  • fr-FR and fr-CA
  • en-GB and en-CA
  • zh-Hans and zh-Hant

With 56 languages selected and more scaffolded, the language picker (Settings, sign-up, the instance default) is one long list. A person looking for their language has to scan it, and two entries that read almost the same ("français (France)", "français (Canada)") sit apart or together depending only on sorting.

Questions to settle in this issue

  1. Grouping: should variants sit under their language (one heading "Português" with Portugal and Brasil beneath), or stay flat entries sorted by native name?
  2. Default variant: if a browser asks for plain pt, es, fr, en or zh, which variant does Postulo pick? Today it is whatever Django's fallback finds first.
  3. Chinese naming: label the two by script ("简体中文", "繁體中文") rather than by region, since zh-Hans/zh-Hant are script tags.
  4. Search: a type-to-filter box once the list passes some length, matching native and English names alike ("German" finds "Deutsch").

Done when

  • The picker shows variants the agreed way, everywhere it appears.
  • Accept-Language: pt (and es, fr, en, zh) lands on the agreed variant, with a test.
  • Typing either a native or an English name narrows the list, with a test.
Spun out of #269 (its "From #71" point 5). 0.5 offers several regional variants of one language: - `pt-PT` and `pt-BR` - `es` and `es-MX` - `fr-FR` and `fr-CA` - `en-GB` and `en-CA` - `zh-Hans` and `zh-Hant` With 56 languages selected and more scaffolded, the language picker (Settings, sign-up, the instance default) is one long list. A person looking for their language has to scan it, and two entries that read almost the same ("français (France)", "français (Canada)") sit apart or together depending only on sorting. ## Questions to settle in this issue 1. **Grouping:** should variants sit under their language (one heading "Português" with Portugal and Brasil beneath), or stay flat entries sorted by native name? 2. **Default variant:** if a browser asks for plain `pt`, `es`, `fr`, `en` or `zh`, which variant does Postulo pick? Today it is whatever Django's fallback finds first. 3. **Chinese naming:** label the two by script ("简体中文", "繁體中文") rather than by region, since `zh-Hans`/`zh-Hant` are script tags. 4. **Search:** a type-to-filter box once the list passes some length, matching native and English names alike ("German" finds "Deutsch"). ## Done when - The picker shows variants the agreed way, everywhere it appears. - `Accept-Language: pt` (and `es`, `fr`, `en`, `zh`) lands on the agreed variant, with a test. - Typing either a native or an English name narrows the list, with a test.
tiagoagueda added this to the 0.5.0 milestone 2026-10-25 16:30:35 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#1053
No description provided.