Jonny Borges
Committed by GitHub

Merge pull request #394 from jasonlaw/master

Translation return null value when no entry found
@@ -655,6 +655,16 @@ class GetImpl implements GetService { @@ -655,6 +655,16 @@ class GetImpl implements GetService {
655 translations.addAll(tr); 655 translations.addAll(tr);
656 } 656 }
657 657
  658 + void appendTranslations(Map<String, Map<String, String>> tr) {
  659 + tr.forEach((key, map) {
  660 + if (Get.translations.containsKey(key)) {
  661 + Get.translations[key].addAll(map);
  662 + } else {
  663 + Get.translations[key] = map;
  664 + }
  665 + });
  666 + }
  667 +
658 void changeTheme(ThemeData theme) { 668 void changeTheme(ThemeData theme) {
659 getxController.setTheme(theme); 669 getxController.setTheme(theme);
660 } 670 }
@@ -257,15 +257,22 @@ abstract class Translations { @@ -257,15 +257,22 @@ abstract class Translations {
257 257
258 extension Trans on String { 258 extension Trans on String {
259 String get tr { 259 String get tr {
  260 + // Returns the key if locale is null.
260 if (Get.locale?.languageCode == null) return this; 261 if (Get.locale?.languageCode == null) return this;
261 - if (Get.translations  
262 - .containsKey("${Get.locale.languageCode}_${Get.locale.countryCode}")) { 262 +
  263 + // Checks whether the language code and country code are present, and whether the key is also present.
  264 + if (Get.translations.containsKey(
  265 + "${Get.locale.languageCode}_${Get.locale.countryCode}") &&
  266 + Get.translations["${Get.locale.languageCode}_${Get.locale.countryCode}"]
  267 + .containsKey(this)) {
263 return Get.translations[ 268 return Get.translations[
264 "${Get.locale.languageCode}_${Get.locale.countryCode}"][this]; 269 "${Get.locale.languageCode}_${Get.locale.countryCode}"][this];
265 - } else if (Get.translations.containsKey(Get.locale.languageCode)) { 270 +
  271 + // Checks if there is a callback language in the absence of the specific country, and if it contains that key.
  272 + } else if (Get.translations.containsKey(Get.locale.languageCode) &&
  273 + Get.translations[Get.locale.languageCode].containsKey(this)) {
266 return Get.translations[Get.locale.languageCode][this]; 274 return Get.translations[Get.locale.languageCode][this];
267 - } else if (Get.translations.isNotEmpty) {  
268 - return Get.translations.values.first[this]; 275 + // If there is no corresponding language or corresponding key, return the key.
269 } else { 276 } else {
270 return this; 277 return this;
271 } 278 }