diff options
Diffstat (limited to 'src/vs/platform/languagePacks/common/languagePacks.ts')
-rw-r--r-- | src/vs/platform/languagePacks/common/languagePacks.ts | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/vs/platform/languagePacks/common/languagePacks.ts b/src/vs/platform/languagePacks/common/languagePacks.ts index 146cbce7401..098cbe3a471 100644 --- a/src/vs/platform/languagePacks/common/languagePacks.ts +++ b/src/vs/platform/languagePacks/common/languagePacks.ts @@ -22,6 +22,7 @@ export interface ILanguagePackService { readonly _serviceBrand: undefined; getAvailableLanguages(): Promise<Array<ILanguagePackItem>>; getInstalledLanguages(): Promise<Array<ILanguagePackItem>>; + getLocale(extension: IGalleryExtension): string | undefined; } export abstract class LanguagePackBaseService extends Disposable implements ILanguagePackService { @@ -51,7 +52,7 @@ export abstract class LanguagePackBaseService extends Disposable implements ILan const languagePackExtensions = result.firstPage.filter(e => e.properties.localizedLanguages?.length && e.tags.some(t => t.startsWith('lp-'))); const allFromMarketplace: ILanguagePackItem[] = languagePackExtensions.map(lp => { const languageName = lp.properties.localizedLanguages?.[0]; - const locale = lp.tags.find(t => t.startsWith('lp-'))!.split('lp-')[1]; + const locale = this.getLocale(lp)!; const baseQuickPick = this.createQuickPickItem({ locale, label: languageName }); return { ...baseQuickPick, @@ -68,6 +69,10 @@ export abstract class LanguagePackBaseService extends Disposable implements ILan return allFromMarketplace; } + getLocale(extension: IGalleryExtension): string | undefined { + return extension.tags.find(t => t.startsWith('lp-'))?.split('lp-')[1]; + } + protected createQuickPickItem(languageItem: { locale: string; label?: string | undefined }): IQuickPickItem { const label = languageItem.label ?? languageItem.locale; let description: string | undefined = languageItem.locale !== languageItem.label ? languageItem.locale : undefined; |