From cddd06149219881a32c0ab46e81c9743edf66f54 Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Thu, 28 Jun 2018 16:53:22 -0700 Subject: [PATCH] Map zh-cn,zh-tw to zh-hans,zh-hant Fixes #53275 --- .../localizations.contribution.ts | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts b/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts index 36261a78fe9..2944b605a8c 100644 --- a/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts +++ b/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts @@ -141,8 +141,9 @@ export class LocalizationWorkbenchContribution extends Disposable implements IWo return; } - const ceintlExtensionSearch = this.galleryService.query({ names: [`MS-CEINTL.vscode-language-pack-${locale}`], pageSize: 1 }); - const tagSearch = this.galleryService.query({ text: `tag:lp-${locale}`, pageSize: 1 }); + const currentLocale = this.getPossibleChineseMapping(locale); + const ceintlExtensionSearch = this.galleryService.query({ names: [`MS-CEINTL.vscode-language-pack-${currentLocale}`], pageSize: 1 }); + const tagSearch = this.galleryService.query({ text: `tag:lp-${currentLocale}`, pageSize: 1 }); TPromise.join([ceintlExtensionSearch, tagSearch]).then(([ceintlResult, tagResult]) => { if (ceintlResult.total === 0 && tagResult.total === 0) { @@ -156,11 +157,11 @@ export class LocalizationWorkbenchContribution extends Disposable implements IWo return; } - TPromise.join([this.galleryService.getManifest(extensionToFetchTranslationsFrom), this.galleryService.getCoreTranslation(extensionToFetchTranslationsFrom, locale)]) + TPromise.join([this.galleryService.getManifest(extensionToFetchTranslationsFrom), this.galleryService.getCoreTranslation(extensionToFetchTranslationsFrom, currentLocale)]) .then(([manifest, translation]) => { - const loc = manifest && manifest.contributes && manifest.contributes.localizations && manifest.contributes.localizations.filter(x => x.languageId.toLowerCase() === locale)[0]; - const languageName = loc ? (loc.languageName || locale) : locale; - const languageDisplayName = loc ? (loc.localizedLanguageName || loc.languageName || locale) : locale; + const loc = manifest && manifest.contributes && manifest.contributes.localizations && manifest.contributes.localizations.filter(x => this.getPossibleChineseMapping(x.languageId) === currentLocale)[0]; + const languageName = loc ? (loc.languageName || currentLocale) : currentLocale; + const languageDisplayName = loc ? (loc.localizedLanguageName || loc.languageName || currentLocale) : currentLocale; const translationsFromPack = translation && translation.contents ? translation.contents['vs/platform/node/minimalTranslations'] : {}; const promptMessageKey = extensionToInstall ? 'installAndRestartMessage' : 'showLanguagePackExtensions'; const useEnglish = !translationsFromPack[promptMessageKey]; @@ -191,7 +192,7 @@ export class LocalizationWorkbenchContribution extends Disposable implements IWo this.viewletService.openViewlet(EXTENSIONS_VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { - viewlet.search(`tag:lp-${locale}`); + viewlet.search(`tag:lp-${currentLocale}`); viewlet.focus(); }); } @@ -235,6 +236,11 @@ export class LocalizationWorkbenchContribution extends Disposable implements IWo } + private getPossibleChineseMapping(locale: string): string { + locale = locale.toLowerCase(); + return locale === 'zh-cn' ? 'zh-hans' : locale === 'zh-tw' ? 'zh-hant' : locale; + } + private getLanguagePackExtension(language: string): TPromise { return this.localizationService.getLanguageIds(LanguageType.Core) .then(coreLanguages => { -- GitLab