public load()

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);
						});
					}
				}
			}
		}