katja's git: oeffisearch

fast and simple tripplanner

commit 9428a552d0b74599d1b7741f3e8d8af2c6e8b7e0
parent 7693e454b098380c20e9f311208dbb4e728c7949
Author: Katja (ctucx) <git@ctu.cx>
Date: Sat, 19 Apr 2025 17:36:47 +0200

languages: rename to `translate`, move language strings to own file
10 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/src/baseView.js b/src/baseView.js
@@ -1,5 +1,5 @@
 import { LitElement, html, nothing } from 'lit';
-import { t } from './languages.js';
+import { t } from './translate.js';
 
 import { baseStyles, flexboxStyles, overlaysStyles, buttonInputStyles, iconStyles } from './styles.js';
 
diff --git a/src/departuresView.js b/src/departuresView.js
@@ -5,7 +5,7 @@ import { sleep, queryBackgroundColor, setThemeColor } from './helpers.js';
 import { platformTemplate, timeTemplate } from './templates.js';
 import { processLeg } from './app_functions.js';
 import { getHafasClient } from './hafasClient.js';
-import { t } from './languages.js';
+import { t } from './translate.js';
 
 import { headerStyles, tableStyles, departuresViewStyles } from './styles.js';
 
diff --git a/src/journeyView.js b/src/journeyView.js
@@ -5,7 +5,7 @@ import { createEvents } from 'ics';
 import { sleep, queryBackgroundColor, setThemeColor } from './helpers.js';
 import { db } from './dataStorage.js';
 import { settings } from './settings.js';
-import { t } from './languages.js';
+import { t } from './translate.js';
 import { getJourney, refreshJourney } from './app_functions.js';
 import { remarksModal, platformTemplate, stopTemplate, timeTemplate } from './templates.js';
 import { formatPoint, formatDuration, formatPrice, formatTrainTypes, formatLineAdditionalName, formatLineDisplayName } from './formatters.js';
diff --git a/src/journeysView.js b/src/journeysView.js
@@ -5,7 +5,7 @@ import { getJourneys, getMoreJourneys, refreshJourneys, getFromPoint, getToPoint
 import { formatPoint, formatDuration, formatPrice } from './formatters.js';
 import { timeTemplate } from './templates.js';
 import { settings } from './settings.js';
-import { t } from './languages.js';
+import { t } from './translate.js';
 
 import { headerStyles, tableStyles, journeysViewStyles } from './styles.js';
 
diff --git a/src/languages.js b/src/languages.js
@@ -1,28 +1,4 @@
-import { settingsState } from './settings.js';
-
-export const getDefaultLanguage = () => {
-	const userLang = navigator.language || navigator.userLanguage;
-
-	if (languages[userLang] !== undefined) return userLang;
-
-	return 'en';
-};
-
-export const getLanguages = () => Object.keys(languages);
-
-export const t = (key, ...params) => {
-	let translation = languages[settingsState.language][key];
-
-	if (!translation) translation = languages['en'][key]
-	if (!translation) return key;
-
-	while (params.length >= 1)
-		translation = translation.replace('{}', params.shift());
-
-	return translation;
-};
-
-const languages = {
+export const languages = {
 	'de': {
 		'accessibility':         'Barrierefreiheit',
 		'accessibilityNone':     'Keine Einschränkungen',

@@ -109,6 +85,7 @@ const languages = {
 		'now':                 'Jetzt',
 		'minTransferTime':     'Umstiegszeit (Minuten)',
 		'trainType':           'Zugtyp',
+		'close':               'Schließen'
 	},
 
 	'nl': {

@@ -266,5 +243,6 @@ const languages = {
 		'now':                 'Now',
 		'minTransferTime':     'Transfer time (Minutes)',
 		'trainType':           'Train type',
+		'close':               'Close'
 	}
 };
diff --git a/src/searchView.js b/src/searchView.js
@@ -2,7 +2,7 @@ import { LitElement, html, nothing } from 'lit';
 import { BaseView } from './baseView.js';
 
 import { db } from './dataStorage.js';
-import { t } from './languages.js';
+import { t } from './translate.js';
 import { client } from './hafasClient.js';
 import { getIBNRbyDS100 } from './ds100.js';
 import { formatPoint } from './formatters.js';
diff --git a/src/settings.js b/src/settings.js
@@ -2,7 +2,7 @@ import { createStore } from 'zustand/vanilla';
 import { persist, createJSONStorage } from 'zustand/middleware'
 
 import { db, initDataStorage } from './dataStorage.js';
-import { getDefaultLanguage } from './languages.js';
+import { getDefaultLanguage } from './translate.js';
 import { getDefaultProfile } from './hafasClient.js';
 
 export let   settingsState;
diff --git a/src/settingsView.js b/src/settingsView.js
@@ -2,7 +2,7 @@ import { html, nothing } from 'lit';
 import { BaseView } from './baseView.js';
 
 import { sleep, queryBackgroundColor, setThemeColor } from './helpers.js';
-import { getLanguages, t } from './languages.js';
+import { getLanguages, t } from './translate.js';
 import { settings } from './settings.js';
 import { initHafasClient, profiles } from './hafasClient.js';
 import { clearDataStorage } from './dataStorage.js';
diff --git a/src/translate.js b/src/translate.js
@@ -0,0 +1,24 @@
+import { settingsState } from './settings.js';
+import { languages } from './languages.js';
+
+export const getDefaultLanguage = () => {
+	const userLang = navigator.language || navigator.userLanguage;
+
+	if (languages[userLang] !== undefined) return userLang;
+
+	return 'en';
+};
+
+export const getLanguages = () => Object.keys(languages);
+
+export const t = (key, ...params) => {
+	let translation = languages[settingsState.language][key];
+
+	if (!translation) translation = languages['en'][key]
+	if (!translation) return key;
+
+	while (params.length >= 1)
+		translation = translation.replace('{}', params.shift());
+
+	return translation;
+};
diff --git a/src/tripView.js b/src/tripView.js
@@ -7,7 +7,7 @@ import { remarksModal, platformTemplate, stopTemplate, timeTemplate } from './te
 import { processLeg } from './app_functions.js';
 import { formatDuration, formatLineAdditionalName, formatLineDisplayName, formatTrainTypes } from './formatters.js';
 import { getHafasClient } from './hafasClient.js';
-import { t } from './languages.js';
+import { t } from './translate.js';
 
 import { headerStyles, tableStyles, journeyViewStyles } from './styles.js';