refactor(i18n): show language names as endonyms in picker (#514)

* refactor(i18n): show language names as endonyms in picker

* docs(changelog): add language-endonyms entry for #514
This commit is contained in:
Frank Stellmacher
2026-05-08 00:19:35 +02:00
committed by GitHub
parent c982362884
commit 8b781a848d
9 changed files with 64 additions and 51 deletions
+8
View File
@@ -121,6 +121,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* **Font picker** lost its inner dropdown button. Opening the Font sub-section now reveals the full font list directly; one click sets the font.
* **OpenDyslexic** moves to the top of the font list so dyslexic readers don't scroll past 14 sans-serifs to find their option.
### Settings — language picker uses endonyms
**By [@Psychotoxical](https://github.com/Psychotoxical), suggested by cucadmuh, PR [#514](https://github.com/Psychotoxical/psysonic/pull/514)**
* The Settings language picker now shows each language **written in itself**`English`, `Deutsch`, `Español`, `Français`, `Nederlands`, `Norsk`, `Русский`, `中文` — same eight labels in every locale instead of translating each name into the current UI language.
* A native speaker can recognise their own language regardless of which UI language is currently active; same convention used by Wikipedia and most OS-level language pickers.
* Filled in `languageEs` for the six locales (de/fr/nl/nb/ru/zh) where it was missing — the Spanish entry was previously falling back to `'Spanish'` from `en.ts` on every non-EN/non-ES UI.
### Dependencies — npm / Cargo refresh and rodio 0.22
**By [@cucadmuh](https://github.com/cucadmuh), PR [#463](https://github.com/Psychotoxical/psysonic/pull/463)**
+7 -6
View File
@@ -579,13 +579,14 @@ export const deTranslation = {
settings: {
title: 'Einstellungen',
language: 'Sprache',
languageEn: 'Englisch',
languageEn: 'English',
languageDe: 'Deutsch',
languageFr: 'Französisch',
languageNl: 'Niederländisch',
languageZh: 'Chinesisch',
languageNb: 'Norwegisch',
languageRu: 'Russisch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Русский',
languageZh: '中文',
font: 'Schriftart',
fontHintOpenDyslexic: 'Legasthenie-freundlich · keine Chinesisch-Unterstützung',
theme: 'Design',
+7 -7
View File
@@ -582,13 +582,13 @@ export const enTranslation = {
title: 'Settings',
language: 'Language',
languageEn: 'English',
languageDe: 'German',
languageFr: 'French',
languageNl: 'Dutch',
languageZh: 'Chinese',
languageNb: 'Norwegian',
languageRu: 'Russian',
languageEs: 'Spanish',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Русский',
languageZh: '中文',
font: 'Font',
fontHintOpenDyslexic: 'Dyslexia-friendly · no Chinese support',
theme: 'Theme',
+7 -7
View File
@@ -571,14 +571,14 @@ export const esTranslation = {
settings: {
title: 'Configuración',
language: 'Idioma',
languageEn: 'Inglés',
languageDe: 'Alemán',
languageFr: 'Francés',
languageNl: 'Neerlandés',
languageZh: 'Chino',
languageNb: 'Noruego',
languageRu: 'Ruso',
languageEn: 'English',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Русский',
languageZh: '中文',
font: 'Fuente',
fontHintOpenDyslexic: 'Compatible con dislexia · sin soporte para chino',
theme: 'Tema',
+7 -6
View File
@@ -569,13 +569,14 @@ export const frTranslation = {
settings: {
title: 'Paramètres',
language: 'Langue',
languageEn: 'Anglais',
languageDe: 'Allemand',
languageEn: 'English',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Néerlandais',
languageZh: 'Chinois',
languageNb: 'Norvégien',
languageRu: 'Russe',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Русский',
languageZh: '中文',
font: 'Police',
fontHintOpenDyslexic: 'Adapté à la dyslexie · sans prise en charge du chinois',
theme: 'Thème',
+7 -6
View File
@@ -569,13 +569,14 @@ export const nbTranslation = {
settings: {
title: 'Innstillinger',
language: 'Språk',
languageEn: 'Engelsk',
languageDe: 'Tysk',
languageFr: 'Fransk',
languageNl: 'Nederlandsk',
languageZh: 'Kinesisk',
languageEn: 'English',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Russisk',
languageRu: 'Русский',
languageZh: '中文',
font: 'Skrifttype',
fontHintOpenDyslexic: 'Dyslexivennlig · ingen kinesisk støtte',
theme: 'Tema',
+7 -6
View File
@@ -568,13 +568,14 @@ export const nlTranslation = {
settings: {
title: 'Instellingen',
language: 'Taal',
languageEn: 'Engels',
languageDe: 'Duits',
languageFr: 'Frans',
languageEn: 'English',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageZh: 'Chinees',
languageNb: 'Noors',
languageRu: 'Russisch',
languageNb: 'Norsk',
languageRu: 'Русский',
languageZh: '中文',
font: 'Lettertype',
fontHintOpenDyslexic: 'Dyslexie-vriendelijk · geen Chinese ondersteuning',
theme: 'Thema',
+7 -7
View File
@@ -602,14 +602,14 @@ export const ruTranslation = {
settings: {
title: 'Настройки',
language: 'Язык',
languageEn: 'Английский',
languageDe: 'Немецкий',
languageFr: 'Французский',
languageNl: 'Нидерландский',
languageZh: 'Китайский',
languageNb: 'Норвежский',
languageEn: 'English',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Русский',
languageRu2: 'Русский 2',
languageZh: '中文',
font: 'Шрифт',
fontHintOpenDyslexic: 'Подходит для дислексии · без поддержки китайского',
theme: 'Тема',
+7 -6
View File
@@ -563,13 +563,14 @@ export const zhTranslation = {
settings: {
title: '设置',
language: '语言',
languageEn: '英语',
languageDe: '德语',
languageFr: '法语',
languageNl: '荷兰语',
languageEn: 'English',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Русский',
languageZh: '中文',
languageNb: '挪威',
languageRu: '俄语',
font: '字体',
fontHintOpenDyslexic: '阅读障碍友好 · 不支持中文',
theme: '主题',