@minimaltech/ra-infra
Version:
Minimal Technology ReactJS Infrastructure
41 lines • 2.19 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
import { CoreBindings, englishMessages } from '../../common';
import { inject } from '@loopback/context';
import polyglotI18nProvider from 'ra-i18n-polyglot';
import { BaseProvider } from './base.provider';
const [language] = (navigator?.language || 'en-US').split('-');
let DefaultI18nProvider = class DefaultI18nProvider extends BaseProvider {
i18nProviderOptions;
constructor(i18nProviderOptions) {
super();
this.i18nProviderOptions = i18nProviderOptions;
}
value() {
const { i18nSources = { en: englishMessages }, listLanguages = [{ locale: 'en', name: 'English' }], } = this.i18nProviderOptions;
const listLocales = listLanguages.map(({ locale }) => locale);
const initialLocale = listLocales.includes(language) ? language : 'en';
return polyglotI18nProvider(locale => {
return i18nSources?.[locale] ?? englishMessages;
}, initialLocale, listLanguages, {
allowMissing: true,
onMissingKey: (key, _, __) => key,
});
}
};
DefaultI18nProvider = __decorate([
__param(0, inject(CoreBindings.I18N_PROVIDER_OPTIONS)),
__metadata("design:paramtypes", [Object])
], DefaultI18nProvider);
export { DefaultI18nProvider };
//# sourceMappingURL=default-i18n.provider.js.map