From d9ded30aff56e92a21ee97aa9caccf100643c481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Zbytovsk=C3=BD?= Date: Sun, 26 Feb 2023 18:07:48 +0100 Subject: [PATCH] allow language switching --- src/services/tagging/translations.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/services/tagging/translations.ts b/src/services/tagging/translations.ts index 94f313fbe..13a16afb8 100644 --- a/src/services/tagging/translations.ts +++ b/src/services/tagging/translations.ts @@ -1,37 +1,37 @@ import { fetchJson } from '../fetch'; import { Field } from './types/Fields'; - -const lang = 'en'; +import { intl } from '../intl'; // https://cdn.jsdelivr.net/npm/@openstreetmap/id-tagging-schema@6.0.0-rc.1/dist/translations/cs.min.json const cdnUrl = `https://cdn.jsdelivr.net/npm/@openstreetmap`; -let translations; +let translations = {}; export const fetchSchemaTranslations = async () => { - if (translations) return; + if (translations[intl.lang]) return; const presetsPackage = await fetchJson( `${cdnUrl}/id-tagging-schema/package.json`, ); const { version } = presetsPackage; + // this request is cached in browser translations = await fetchJson( - `${cdnUrl}/id-tagging-schema@${version}/dist/translations/${lang}.min.json`, + `${cdnUrl}/id-tagging-schema@${version}/dist/translations/${intl.lang}.min.json`, ); }; export const getPresetTranslation = (key: string) => - translations ? translations[lang].presets.presets[key].name : undefined; + translations ? translations[intl.lang].presets.presets[key].name : undefined; export const getFieldTranslation = (field: Field) => { if (!translations) return undefined; if (field.label?.match(/^{.*}$/)) { const resolved = field.label.substr(1, field.label.length - 2); - return translations[lang].presets.fields[resolved]; + return translations[intl.lang].presets.fields[resolved]; } - // The id 169522276 is different for each language :( + // The id 169522276 is different for each intl.language :( // https://www.transifex.com/openstreetmap/id-editor/translate/#cs/presets/169522276?q=key%3Apresets.fields.XXX - return translations[lang].presets.fields[field.fieldKey]; + return translations[intl.lang].presets.fields[field.fieldKey]; };