drop.chapril.org-firefoxsend/app/locale.js

27 lines
781 B
JavaScript
Raw Normal View History

2022-07-26 13:03:10 +02:00
import { FluentBundle, FluentResource } from '@fluent/bundle';
function makeBundle(locale, ftl) {
const bundle = new FluentBundle(locale, { useIsolating: false });
2022-07-26 13:03:10 +02:00
bundle.addResource(new FluentResource(ftl));
return bundle;
}
export async function getTranslator(locale) {
const bundles = [];
const { default: en } = await import('../public/locales/en-US/send.ftl');
if (locale !== 'en-US') {
2019-07-11 19:47:42 +02:00
const { default: ftl } = await import(
`../public/locales/${locale}/send.ftl`
);
bundles.push(makeBundle(locale, ftl));
}
bundles.push(makeBundle('en-US', en));
return function(id, data) {
for (let bundle of bundles) {
if (bundle.hasMessage(id)) {
2022-07-26 13:03:10 +02:00
return bundle.formatPattern(bundle.getMessage(id).value, data);
}
}
};
}