commit 9428a552d0b74599d1b7741f3e8d8af2c6e8b7e0
parent 7693e454b098380c20e9f311208dbb4e728c7949
Author: Katja (ctucx) <git@ctu.cx>
Date: Sat, 19 Apr 2025 17:36:47 +0200
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';