Ver código fonte

Fallback to "en" when invalid locale is requested

Close #22365.
Rémi Verschelde 7 anos atrás
pai
commit
87535fe291
1 arquivos alterados com 7 adições e 4 exclusões
  1. 7 4
      core/translation.cpp

+ 7 - 4
core/translation.cpp

@@ -938,11 +938,14 @@ void TranslationServer::set_locale(const String &p_locale) {
 
 	if (!is_locale_valid(univ_locale)) {
 		String trimmed_locale = get_trimmed_locale(univ_locale);
+		print_verbose(vformat("Unsupported locale '%s', falling back to '%s'.", p_locale, trimmed_locale));
 
-		ERR_EXPLAIN("Invalid locale: " + trimmed_locale);
-		ERR_FAIL_COND(!is_locale_valid(trimmed_locale));
-
-		locale = trimmed_locale;
+		if (!is_locale_valid(trimmed_locale)) {
+			ERR_PRINTS(vformat("Unsupported locale '%s', falling back to 'en'.", trimmed_locale));
+			locale = "en";
+		} else {
+			locale = trimmed_locale;
+		}
 	} else {
 		locale = univ_locale;
 	}