UNPKG

radh-ui

Version:

Stencil Component Starter

29 lines (28 loc) 1.04 kB
function getComponentClosestLanguage(element) { let closestElement = element.closest('[lang]'); return closestElement ? closestElement.lang : 'en'; } function fetchLocaleStringsForComponent(componentName, locale) { return new Promise((resolve, reject) => { fetch(`/assets/i18n/${componentName}.${locale}.json`) .then((result) => { if (result.ok) resolve(result.json()); else reject(); }, () => reject()); }); } export async function getLocaleComponentStrings(element) { let componentName = element.tagName.toLowerCase(); let componentLanguage = getComponentClosestLanguage(element); let strings; try { strings = await fetchLocaleStringsForComponent(componentName, componentLanguage); } catch (e) { console.warn(`no locale for ${componentName} (${componentLanguage}) loading default locale en.`); strings = await fetchLocaleStringsForComponent(componentName, 'en'); } return strings; }