in src/nls.build.ts [126:180]
public load(name: string, req: AMDLoader.IRelativeRequire, load: AMDLoader.IPluginLoadCallback, config: AMDLoader.IConfigurationOptions): void {
config = config || {};
if (!name || name.length === 0) {
load({
localize: localize
});
} else {
let suffix;
if (Resources && Resources.getString) {
suffix = '.nls.keys';
req([name + suffix], function (keyMap) {
load({
localize: function (moduleKey, index) {
if (!keyMap[moduleKey])
return 'NLS error: unknown key ' + moduleKey;
let mk = keyMap[moduleKey].keys;
if (index >= mk.length)
return 'NLS error unknown index ' + index;
let subKey = mk[index];
let args = [];
args[0] = moduleKey + '_' + subKey;
for (let _i = 0; _i < (arguments.length - 2); _i++) {
args[_i + 1] = arguments[_i + 2];
}
return Resources.getString.apply(Resources, args);
}
});
});
} else {
if (config.isBuild) {
req([name + '.nls', name + '.nls.keys'], function (messages: string[], keys: string[]) {
NLSPlugin.BUILD_MAP[name] = messages;
NLSPlugin.BUILD_MAP_KEYS[name] = keys;
load(messages);
});
} else {
let pluginConfig = config['vs/nls'] || {};
let language = pluginConfig.availableLanguages ? findLanguageForModule(pluginConfig.availableLanguages, name) : null;
suffix = '.nls';
if (language !== null && language !== NLSPlugin.DEFAULT_TAG) {
suffix = suffix + '.' + language;
}
req([name + suffix], function (messages) {
if (Array.isArray(messages)) {
(<any>messages).localize = createScopedLocalize(messages);
} else {
messages.localize = createScopedLocalize(messages[name]);
}
load(messages);
});
}
}
}
}