##// END OF EJS Templates
fixed NlsBundle locale package loading...
fixed NlsBundle locale package loading corrected DjxFragment params and return value fixed regression in DjxWidgetBase attach points processing fixed empty RenditionBase startup

File last commit:

r109:4a375b9c654a default
r112:2ccfaae984e9 v1.4.4 default
Show More
i18n.ts
51 lines | 1.6 KiB | video/mp2t | TypeScriptLexer
cin
Converted to subproject djx, removed dojo-typings
r65 import { id as mid} from "module";
import { MapOf } from "@implab/core-amd/interfaces";
cin
linting
r109 import { LocaleProvider, NlsBundle } from "./NlsBundle";
cin
Converted to subproject djx, removed dojo-typings
r65 import { isPromise } from "@implab/core-amd/safe";
import { locale as sysLocale } from "dojo/_base/kernel";
import { TraceSource } from "@implab/core-amd/log/TraceSource";
const trace = TraceSource.get(mid);
trace.debug("Current sysLocale: {0}", sysLocale);
export interface OnLoad {
cin
linting
r109 (result?: unknown): void;
error(err: unknown): void;
cin
Converted to subproject djx, removed dojo-typings
r65 }
cin
linting
r109 export function bundle<T extends object>(nls: T, locales?: MapOf<LocaleProvider<object>>) {
cin
Converted to subproject djx, removed dojo-typings
r65 const nlsBundle = new NlsBundle(nls, locales);
const fn = (_locale?: string) => {
const locale = _locale || sysLocale;
const result = nlsBundle.getLocale(locale);
if (isPromise(result))
throw new Error(`The bundle '${locale}' isn't loaded`);
else
return result;
};
fn.define = (pack: Partial<T>) => pack;
cin
linting
r109 fn.load = async (id: string, require: Require, cb: OnLoad, config: {isBuild?: boolean}) => {
cin
Converted to subproject djx, removed dojo-typings
r65 const locale = id || sysLocale;
if (config && config.isBuild) {
cb();
} else {
try {
await nlsBundle.getLocale(locale);
cb();
} catch (e) {
if(cb.error) {
cb.error(e);
} else {
// in case the loader doesn't support error reporting
trace.error("Error loading {0}: {1}", locale, e);
}
}
}
};
return fn;
}