ctucx.git: trainsearch

web based trip-planner, fork of https://cyberchaos.dev/yuka/trainsearch

commit d690d6a14f5eb6ca9dbade78f0234684a9c68c2f
parent cf12313159be251a18bd24104f5b18948e9132e1
Author: Katja (ctucx) <git@ctu.cx>
Date: Wed, 5 Feb 2025 10:14:41 +0100

settingsView: automaticly render available languages
2 files changed, 5 insertions(+), 13 deletions(-)
M
src/languages.js
|
10
+---------
M
src/settingsView.js
|
8
++++----
diff --git a/src/languages.js b/src/languages.js
@@ -8,15 +8,7 @@ export const getDefaultLanguage = () => {
 	return 'en';
 };
 
-export const getLanguages = () => {
-	let availableLanguages = {};
-
-	Object.keys(languages).forEach((element) => {
-		availableLanguages[element] = languages[settings.language][element];
-	});
-
-	return availableLanguages;
-}
+export const getLanguages = () => Object.keys(languages);
 
 export const t = (key, ...params) => {
 	let translation = languages[settings.language][key];
diff --git a/src/settingsView.js b/src/settingsView.js
@@ -3,7 +3,7 @@ import { db, clearDataStorage } from './dataStorage.js';
 import { modifySettings, settings } from './settings.js';
 import { showModal, hideOverlay } from './overlays.js';
 import { ElementById, hideElement, showElement } from './helpers.js';
-import { t } from './languages.js';
+import { t, getLanguages } from './languages.js';
 import { searchView } from './searchView.js';
 import { initHafasClient } from './hafasClient.js';
 

@@ -17,9 +17,9 @@ const settingsTemplate = () => html`
 		<div class="flex-row">
 			<label for="language">${t('language')}:</label>
 			<select id="language">
-				<option value="en" ?selected=${settings.language === 'en'}>${t('en')}</option>
-				<option value="de" ?selected=${settings.language === 'de'}>${t('de')}</option>
-				<option value="nl" ?selected=${settings.language === 'nl'}>${t('nl')}</option>
+				${getLanguages().map(lang => html`
+					<option value="${lang}" ?selected=${settings.language === lang}>${t(lang)}</option>
+				`)}
 			</select>
 		</div>