UNPKG

@minimaltech/ra-infra

Version:

Minimal Technology ReactJS Infrastructure

41 lines 2.19 kB
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