From 4d378650684450d165d6bbff738ad7d8124536f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 2 Oct 2018 14:54:40 +0200 Subject: [PATCH 1/2] MOBILE-2383 lang: Add en-us language support --- src/assets/lang/en-us.json | 16 ++++++++++++++++ src/config.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 src/assets/lang/en-us.json diff --git a/src/assets/lang/en-us.json b/src/assets/lang/en-us.json new file mode 100644 index 000000000..139a6c7d4 --- /dev/null +++ b/src/assets/lang/en-us.json @@ -0,0 +1,16 @@ +{ + "addon.mod_assign.markingworkflowstate": "Grading workflow state", + "addon.mod_assign.markingworkflowstateinmarking": "In grading", + "addon.mod_assign.markingworkflowstatenotmarked": "Not graded", + "addon.mod_assign.markingworkflowstatereadyforreview": "Grading completed", + "addon.mod_quiz.marks": "Points", + "core.courses.notenroled": "You are not enrolled in this course", + "core.decsep": ".", + "core.labelsep": ":", + "core.listsep": ",", + "core.login.loginsteps": "For full access to this site, you first need to create an account.", + "core.paymentinstant": "Use the button below to pay and be enrolled within minutes!", + "core.settings.license": "License", + "core.thisdirection": "ltr", + "core.user.lastname": "Last name" +} \ No newline at end of file diff --git a/src/config.json b/src/config.json index 27634fc6f..280bd3e00 100644 --- a/src/config.json +++ b/src/config.json @@ -6,7 +6,7 @@ "versionname" : "3.5.2", "cache_expiration_time" : 300000, "default_lang" : "en", - "languages": {"ar": "عربي", "bg": "Български", "ca": "Català", "cs": "Čeština", "da": "Dansk", "de": "Deutsch", "de-du": "Deutsch - Du", "el": "Ελληνικά", "en": "English", "es": "Español", "es-mx": "Español - México", "eu": "Euskara", "fa": "فارسی", "fi": "Suomi", "fr" : "Français", "he" : "עברית", "hu": "magyar", "it": "Italiano", "ja": "日本語", "ko" : "한국어", "lt" : "Lietuvių", "mr": "मराठी", "nl": "Nederlands", "pl": "Polski", "pt-br": "Português - Brasil", "pt": "Português - Portugal", "ro": "Română", "ru": "Русский", "sr-cr": "Српски", "sr-lt": "Srpski", "sv": "Svenska", "tr" : "Türkçe", "uk" : "Українська", "zh-cn" : "简体中文", "zh-tw" : "正體中文"}, + "languages": {"ar": "عربي", "bg": "Български", "ca": "Català", "cs": "Čeština", "da": "Dansk", "de": "Deutsch", "de-du": "Deutsch - Du", "el": "Ελληνικά", "en": "English", "en-us": "English - United States","es": "Español", "es-mx": "Español - México", "eu": "Euskara", "fa": "فارسی", "fi": "Suomi", "fr" : "Français", "he" : "עברית", "hu": "magyar", "it": "Italiano", "ja": "日本語", "ko" : "한국어", "lt" : "Lietuvių", "mr": "मराठी", "nl": "Nederlands", "pl": "Polski", "pt-br": "Português - Brasil", "pt": "Português - Portugal", "ro": "Română", "ru": "Русский", "sr-cr": "Српски", "sr-lt": "Srpski", "sv": "Svenska", "tr" : "Türkçe", "uk" : "Українська", "zh-cn" : "简体中文", "zh-tw" : "正體中文"}, "wsservice" : "moodle_mobile_app", "wsextservice" : "local_mobile", "demo_sites": {"student": {"url": "https://school.demo.moodle.net", "username": "student", "password": "moodle"}, "teacher": {"url": "https://school.demo.moodle.net", "username": "teacher", "password": "moodle"}}, From bb23a319c882726aefee05cc0fef1cd3f3ffd8a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 2 Oct 2018 15:26:19 +0200 Subject: [PATCH 2/2] MOBILE-2383 lang: Load parent lang if found --- scripts/langindex.json | 1 + src/lang/en.json | 1 + src/providers/lang.ts | 28 +++++++++++++++++++++++++--- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/scripts/langindex.json b/scripts/langindex.json index e9a449623..f10a008d0 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -1412,6 +1412,7 @@ "core.openinbrowser": "local_moodlemobileapp", "core.othergroups": "group", "core.pagea": "moodle", + "core.parentlanguage": "langconfig", "core.paymentinstant": "moodle", "core.percentagenumber": "local_moodlemobileapp", "core.phone": "moodle", diff --git a/src/lang/en.json b/src/lang/en.json index 50b27e26b..0ead70cf3 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -174,6 +174,7 @@ "openinbrowser": "Open in browser", "othergroups": "Other groups", "pagea": "Page {{$a}}", + "parentlanguage": "", "paymentinstant": "Use the button below to pay and be enrolled within minutes!", "percentagenumber": "{{$a}}%", "phone": "Phone", diff --git a/src/providers/lang.ts b/src/providers/lang.ts index 95dffb104..cff4cd632 100644 --- a/src/providers/lang.ts +++ b/src/providers/lang.ts @@ -40,8 +40,7 @@ export class CoreLangProvider { platform.ready().then(() => { this.getCurrentLanguage().then((language) => { - translate.use(language); - moment.locale(language); + this.changeCurrentLanguage(language); }); }); @@ -97,7 +96,30 @@ export class CoreLangProvider { // Change the language, resolving the promise when we receive the first value. promises.push(new Promise((resolve, reject): void => { const subscription = this.translate.use(language).subscribe((data) => { - resolve(data); + // It's a language override, load the original one first. + const fallbackLang = this.translate.instant('core.parentlanguage'); + + if (fallbackLang != '' && fallbackLang != language) { + const fallbackSubs = this.translate.use(fallbackLang).subscribe((fallbackData) => { + data = Object.assign(fallbackData, data); + resolve(data); + + // Data received, unsubscribe. Use a timeout because we can receive a value immediately. + setTimeout(() => { + fallbackSubs.unsubscribe(); + }); + }, (error) => { + // Resolve with the original language. + resolve(data); + + // Error received, unsubscribe. Use a timeout because we can receive a value immediately. + setTimeout(() => { + fallbackSubs.unsubscribe(); + }); + }); + } else { + resolve(data); + } // Data received, unsubscribe. Use a timeout because we can receive a value immediately. setTimeout(() => {