Use translations in the translation files instead of hard-coded strings for the language names

This commit is contained in:
2026-05-21 22:32:39 +02:00
parent 420f47dca4
commit 258a4025bc
7 changed files with 68 additions and 8 deletions
@@ -19,17 +19,17 @@ import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { loadLanguage, LANGUAGES_RTL } from '@/i18n'; import { loadLanguage, LANGUAGES_RTL } from '@/i18n';
const { locale } = useI18n(); const { t, locale } = useI18n();
const isOpen = ref(false); const isOpen = ref(false);
const languages = [ const languages = [
{ code: 'en', label: 'English', flag: '🇬🇧' }, { code: 'en', flag: '🇬🇧' },
{ code: 'de', label: 'Deutsch', flag: '🇩🇪' }, { code: 'de', flag: '🇩🇪' },
{ code: 'fr', label: 'Français', flag: '🇫🇷' }, { code: 'fr', flag: '🇫🇷' },
{ code: 'es', label: 'Español', flag: '🇪🇸' }, { code: 'es', flag: '🇪🇸' },
{ code: 'it', label: 'Italiano', flag: '🇮🇹' }, { code: 'it', flag: '🇮🇹' },
{ code: 'pt', label: 'Português', flag: '🇵🇹' }, { code: 'pt', flag: '🇵🇹' },
]; ];
const currentLanguage = computed( const currentLanguage = computed(
@@ -77,7 +77,7 @@ function closeOnBlur() {
@click="selectLanguage(lang.code)" @click="selectLanguage(lang.code)"
> >
<span class="flag">{{ lang.flag }}</span> <span class="flag">{{ lang.flag }}</span>
<span class="lang-label">{{ lang.label }}</span> <span class="lang-label">{{ t(`preferences.locale.languages.${lang.code}`) }}</span>
</li> </li>
</ul> </ul>
</div> </div>
+10
View File
@@ -24,6 +24,16 @@
"dark": "Zum dunklen Modus wechseln", "dark": "Zum dunklen Modus wechseln",
"auto": "Zum System-Farbschema wechseln" "auto": "Zum System-Farbschema wechseln"
} }
},
"locale": {
"languages": {
"en": "English",
"de": "Deutsch",
"fr": "Français",
"es": "Español",
"it": "Italiano",
"pt": "Português"
}
} }
}, },
"slogan": "Gebaut zum Suchen." "slogan": "Gebaut zum Suchen."
+10
View File
@@ -24,6 +24,16 @@
"dark": "Switch to dark mode", "dark": "Switch to dark mode",
"auto": "Switch to the system color scheme" "auto": "Switch to the system color scheme"
} }
},
"locale": {
"languages": {
"en": "English",
"de": "Deutsch",
"fr": "Français",
"es": "Español",
"it": "Italiano",
"pt": "Português"
}
} }
}, },
"slogan": "Built to search." "slogan": "Built to search."
+10
View File
@@ -24,6 +24,16 @@
"dark": "Cambiar al modo oscuro", "dark": "Cambiar al modo oscuro",
"auto": "Usar el esquema de color del sistema" "auto": "Usar el esquema de color del sistema"
} }
},
"locale": {
"languages": {
"en": "English",
"de": "Deutsch",
"fr": "Français",
"es": "Español",
"it": "Italiano",
"pt": "Português"
}
} }
}, },
"slogan": "Hecho para buscar." "slogan": "Hecho para buscar."
+10
View File
@@ -24,6 +24,16 @@
"dark": "Passer en mode sombre", "dark": "Passer en mode sombre",
"auto": "Utiliser le thème système" "auto": "Utiliser le thème système"
} }
},
"locale": {
"languages": {
"en": "English",
"de": "Deutsch",
"fr": "Français",
"es": "Español",
"it": "Italiano",
"pt": "Português"
}
} }
}, },
"slogan": "Conçu pour chercher." "slogan": "Conçu pour chercher."
+10
View File
@@ -24,6 +24,16 @@
"dark": "Passa alla modalità scura", "dark": "Passa alla modalità scura",
"auto": "Usa la combinazione colori di sistema" "auto": "Usa la combinazione colori di sistema"
} }
},
"locale": {
"languages": {
"en": "English",
"de": "Deutsch",
"fr": "Français",
"es": "Español",
"it": "Italiano",
"pt": "Português"
}
} }
}, },
"slogan": "Costruito per cercare." "slogan": "Costruito per cercare."
+10
View File
@@ -24,6 +24,16 @@
"dark": "Mudar para modo escuro", "dark": "Mudar para modo escuro",
"auto": "Usar esquema de cores do sistema" "auto": "Usar esquema de cores do sistema"
} }
},
"locale": {
"languages": {
"en": "English",
"de": "Deutsch",
"fr": "Français",
"es": "Español",
"it": "Italiano",
"pt": "Português"
}
} }
}, },
"slogan": "Feito para pesquisar." "slogan": "Feito para pesquisar."