From cf81cbe3ca45c65428ce2ec9a6b9f29408e46833 Mon Sep 17 00:00:00 2001 From: Timo Piiroinen Date: Tue, 19 Apr 2022 10:07:25 +0300 Subject: [PATCH 1/3] Change the imported filenames to inlcude underscore in two part language names. (issue #19218) Signed-off-by: Timo Piiroinen --- src/language-helper.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/language-helper.ts b/src/language-helper.ts index cbf2aa2c4a..a3f178b5e4 100644 --- a/src/language-helper.ts +++ b/src/language-helper.ts @@ -92,10 +92,26 @@ export class AppLocalization { this.resetLocalizedUI(); } + private denormalize(locale: string): string { + if (locale === "en") { + locale = "en-EN"; + } + if (locale.indexOf("-") >= 0) { + const langDesc = 1; + const partsReq = 2; + const part = locale.split("-"); + if (part.length >= partsReq) { + part[langDesc] = part[langDesc].toUpperCase(); + } + return part.join("_"); + } + return locale; + } + public fetchTranslationJson(locale: string): Record { try { console.log("Fetching translation json for locale: " + locale); - return require(`./i18n/strings/${locale}.json`); + return require(`./i18n/strings/${this.denormalize(locale)}.json`); } catch (e) { console.log(`Could not fetch translation json for locale: '${locale}'`, e); return null; From 37aaa4044bdf37da267cee825d90c353c6b5cd41 Mon Sep 17 00:00:00 2001 From: Timo Piiroinen Date: Wed, 20 Apr 2022 14:03:53 +0300 Subject: [PATCH 2/3] Refactoring the code Signed-off-by: Timo Piiroinen --- src/language-helper.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/language-helper.ts b/src/language-helper.ts index a3f178b5e4..b7250a7844 100644 --- a/src/language-helper.ts +++ b/src/language-helper.ts @@ -97,13 +97,12 @@ export class AppLocalization { locale = "en-EN"; } if (locale.indexOf("-") >= 0) { - const langDesc = 1; - const partsReq = 2; - const part = locale.split("-"); - if (part.length >= partsReq) { - part[langDesc] = part[langDesc].toUpperCase(); + const localeSubIndex = 1; + const parts = locale.split("-"); + if (parts.length > localeSubIndex) { + parts[localeSubIndex] = parts[localeSubIndex].toUpperCase(); } - return part.join("_"); + return parts.join("_"); } return locale; } From d682b9d0235fe33b6a7cd2f5e60d888ec74aedd7 Mon Sep 17 00:00:00 2001 From: Timo Piiroinen Date: Fri, 22 Apr 2022 10:38:55 +0300 Subject: [PATCH 3/3] Refactored code and added comment Signed-off-by: Timo Piiroinen --- src/language-helper.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/language-helper.ts b/src/language-helper.ts index b7250a7844..47fe4318c4 100644 --- a/src/language-helper.ts +++ b/src/language-helper.ts @@ -92,19 +92,16 @@ export class AppLocalization { this.resetLocalizedUI(); } + // Format language strings from normalized form to non-normalized form (e.g. en-gb to en_GB) private denormalize(locale: string): string { if (locale === "en") { - locale = "en-EN"; + locale = "en_EN"; } - if (locale.indexOf("-") >= 0) { - const localeSubIndex = 1; - const parts = locale.split("-"); - if (parts.length > localeSubIndex) { - parts[localeSubIndex] = parts[localeSubIndex].toUpperCase(); - } - return parts.join("_"); + const parts = locale.split("-"); + if (parts.length > 1) { + parts[1] = parts[1].toUpperCase(); } - return locale; + return parts.join("_"); } public fetchTranslationJson(locale: string): Record {