nls processor: be aware of relative path to extensions

This commit is contained in:
Joao Moreno 2018-05-29 09:41:37 +02:00
parent a6ed1ac5e6
commit 638e4357f0
2 changed files with 21 additions and 7 deletions

View file

@ -549,7 +549,8 @@ export class NLSProcessor extends BaseProcessor {
for (const localization of localizations) {
for (const translation of localization.translations) {
if (translation.id === 'vscode' && !!translation.path) {
translations[localization.languageId.toUpperCase()] = `extension/${util.normalize(translation.path)}`;
const translationPath = util.normalize(translation.path.replace(/^\.[\/\\]/, ''));
translations[localization.languageId.toUpperCase()] = `extension/${translationPath}`;
}
}
}

View file

@ -942,22 +942,35 @@ describe('toVsixManifest', () => {
version: '0.0.1',
engines: Object.create(null),
contributes: {
localizations: [{
languageId: 'de',
translations: [{ id: 'vscode', path: 'fake.json' }, { id: 'vscode.go', path: 'what.json' }]
}]
localizations: [
{
languageId: 'de',
translations: [
{ id: 'vscode', path: 'de.json' },
{ id: 'vscode.go', path: 'what.json' }
]
},
{
languageId: 'pt',
translations: [
{ id: 'vscode', path: './translations/pt.json' }
]
}
]
}
};
const files = [
{ path: 'extension/fake.json', contents: new Buffer('') }
{ path: 'extension/de.json', contents: new Buffer('') },
{ path: 'extension/translations/pt.json', contents: new Buffer('') }
];
return _toVsixManifest(manifest, files)
.then(parseXmlManifest)
.then(result => {
const assets = result.PackageManifest.Assets[0].Asset;
assert(assets.some(asset => asset.$.Type === 'Microsoft.VisualStudio.Code.Translation.DE' && asset.$.Path === 'extension/fake.json'));
assert(assets.some(asset => asset.$.Type === 'Microsoft.VisualStudio.Code.Translation.DE' && asset.$.Path === 'extension/de.json'));
assert(assets.some(asset => asset.$.Type === 'Microsoft.VisualStudio.Code.Translation.PT' && asset.$.Path === 'extension/translations/pt.json'));
});
});