From d17da64a31ee08caf20edec7f66906144efe1ae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 13 May 2021 17:03:57 +0200 Subject: [PATCH] MOBILE-3615 menu: Use parent language if any on docs url --- .../myoverview/addon-block-myoverview.html | 3 ++- src/core/services/lang.ts | 17 +++++++++++++++-- src/core/services/utils/url.ts | 3 ++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html index 56e361736..dd8b91778 100644 --- a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html +++ b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html @@ -51,7 +51,8 @@ [disabled]="showFilters.future == 'disabled'"> {{ 'addon.block_myoverview.future' | translate }} - + {{ 'addon.block_myoverview.past' | translate }} diff --git a/src/core/services/lang.ts b/src/core/services/lang.ts index 89b987416..9f1de3abe 100644 --- a/src/core/services/lang.ts +++ b/src/core/services/lang.ts @@ -118,6 +118,19 @@ export class CoreLangProvider { return value.charAt(0).toUpperCase() + value.slice(1); } + /** + * Get the parent language defined on the language strings. + * + * @param currentLanguage Current language. + * @returns If a parent language is set, return the index name. + */ + getParentLanguage(currentLanguage: string): string | undefined { + const parentLang = Translate.instant('core.parentlanguage'); + if (parentLang != '' && parentLang != 'core.parentlanguage' && parentLang != currentLanguage) { + return parentLang; + } + } + /** * Change current language. * @@ -131,9 +144,9 @@ export class CoreLangProvider { promises.push(new Promise((resolve, reject) => { CoreSubscriptions.once(Translate.use(language), data => { // It's a language override, load the original one first. - const fallbackLang = Translate.instant('core.parentlanguage'); + const fallbackLang = this.getParentLanguage(language); - if (fallbackLang != '' && fallbackLang != 'core.parentlanguage' && fallbackLang != language) { + if (fallbackLang) { CoreSubscriptions.once( Translate.use(fallbackLang), fallbackData => { diff --git a/src/core/services/utils/url.ts b/src/core/services/utils/url.ts index e9920d1fd..258070011 100644 --- a/src/core/services/utils/url.ts +++ b/src/core/services/utils/url.ts @@ -242,7 +242,8 @@ export class CoreUrlUtilsProvider { } try { - const lang = await CoreLang.getCurrentLanguage(); + let lang = await CoreLang.getCurrentLanguage(); + lang = CoreLang.getParentLanguage(lang) || lang; return docsUrl.replace('/en/', '/' + lang + '/'); } catch (error) {