diff --git a/extensions/typescript/package.json b/extensions/typescript/package.json index 5015ff4d9d8..f7d1fb0d940 100644 --- a/extensions/typescript/package.json +++ b/extensions/typescript/package.json @@ -56,12 +56,12 @@ ], "configuration": { "type": "object", - "title": "TypeScript configuration", + "title": "%configuration.typescript%", "properties": { "typescript.useCodeSnippetsOnMethodSuggest": { "type": "boolean", "default": false, - "description": "Complete functions with their parameter signature." + "description": "%typescript.useCodeSnippetsOnMethodSuggest.dec%" }, "typescript.tsdk": { "type": ["string", "null"], diff --git a/extensions/typescript/package.nls.de.json b/extensions/typescript/package.nls.de.json deleted file mode 100644 index 107d65d589a..00000000000 --- a/extensions/typescript/package.nls.de.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "typescript.reloadProjects.title": "Lade Project neu", - "typescript.tsdk.desc": "Legt das Verzeichnis fest in dem sich der tsserver und lib*.d.ts Dateien befinden." -} \ No newline at end of file diff --git a/extensions/typescript/package.nls.json b/extensions/typescript/package.nls.json index 992a446b39f..09fbf02c2b0 100644 --- a/extensions/typescript/package.nls.json +++ b/extensions/typescript/package.nls.json @@ -1,4 +1,6 @@ { "typescript.reloadProjects.title": "Reload Project", + "configuration.typescript": "TypeScript configuration", + "typescript.useCodeSnippetsOnMethodSuggest.dec": "Complete functions with their parameter signature.", "typescript.tsdk.desc": "Specifies the folder path containing the tsserver and lib*.d.ts files to use." } \ No newline at end of file diff --git a/src/vs/workbench/node/extensionPoints.ts b/src/vs/workbench/node/extensionPoints.ts index 3bcc954cee1..129bf88b5ca 100644 --- a/src/vs/workbench/node/extensionPoints.ts +++ b/src/vs/workbench/node/extensionPoints.ts @@ -12,7 +12,7 @@ import {groupBy, values} from 'vs/base/common/collections'; import paths = require('vs/base/common/paths'); import json = require('vs/base/common/json'); import Types = require('vs/base/common/types'); -import {IPluginsMessageCollector} from 'vs/platform/plugins/common/pluginsRegistry'; +import {IPluginsMessageCollector, IMessageCollector} from 'vs/platform/plugins/common/pluginsRegistry'; import {isValidPluginDescription} from 'vs/platform/plugins/node/pluginVersionValidator'; import * as semver from 'semver'; @@ -30,7 +30,7 @@ const nlsConfig = function(): NlsConfiguration { } catch (err) { return { locale: undefined, - pseudo: true + pseudo: false }; } } @@ -69,7 +69,7 @@ export class PluginScanner { * Strings to replace are one values of a key. So for example string[] are ignored. * This is done to speed things up. */ - private static replaceStrings(literal: T, messages: { [key: string]: string; }): void { + private static replaceStrings(literal: T, messages: { [key: string]: string; }, builder: IMessageCollector): void { Object.keys(literal).forEach(key => { if (literal.hasOwnProperty(key)) { let value = literal[key]; @@ -85,14 +85,16 @@ export class PluginScanner { message = '\uFF3B' + message.replace(/[aouei]/g, '$&$&') + '\uFF3D'; } literal[key] = message; + } else { + builder.warn(`Couldn't find message for key ${messageKey}.`); } } } else if (Types.isObject(value)) { - PluginScanner.replaceStrings(value, messages); + PluginScanner.replaceStrings(value, messages, builder); } else if (Types.isArray(value)) { (value).forEach(element => { if (Types.isObject(element)) { - PluginScanner.replaceStrings(element, messages); + PluginScanner.replaceStrings(element, messages, builder); } }); } @@ -140,8 +142,7 @@ export class PluginScanner { let basename = absoluteManifestPath.substr(0, absoluteManifestPath.length - extension.length); return pfs.fileExists(basename + '.nls' + extension).then(exists => { if (!exists) { - // To make the compiler happy. This is not necessary from a runtime perspective. - return TPromise.as(pluginDescFromFile); + return pluginDescFromFile; } return PluginScanner.findMessageBundle(basename).then(messageBundle => { if (!messageBundle) { @@ -156,7 +157,7 @@ export class PluginScanner { }); return pluginDescFromFile; } - PluginScanner.replaceStrings(pluginDescFromFile, messages); + PluginScanner.replaceStrings(pluginDescFromFile, messages, builder); return pluginDescFromFile; }); });