Skip to content

Commit

Permalink
allow language switching
Browse files Browse the repository at this point in the history
  • Loading branch information
zbycz committed Mar 1, 2023
1 parent e346f91 commit d9ded30
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions src/services/tagging/translations.ts
Original file line number Diff line number Diff line change
@@ -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];
};

0 comments on commit d9ded30

Please sign in to comment.