Change set_locale to fallback to the global language (#6910)
This commit is contained in:
parent
6f09841e24
commit
470ead74db
1 changed files with 27 additions and 6 deletions
|
@ -779,6 +779,11 @@ Vector<String> TranslationServer::get_all_locale_names(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static String get_trimmed_locale(const String& p_locale) {
|
||||||
|
|
||||||
|
return p_locale.substr(0,2);
|
||||||
|
}
|
||||||
|
|
||||||
static bool is_valid_locale(const String& p_locale) {
|
static bool is_valid_locale(const String& p_locale) {
|
||||||
|
|
||||||
const char **ptr=locale_list;
|
const char **ptr=locale_list;
|
||||||
|
@ -839,9 +844,17 @@ void Translation::_set_messages(const DVector<String>& p_messages){
|
||||||
|
|
||||||
void Translation::set_locale(const String& p_locale) {
|
void Translation::set_locale(const String& p_locale) {
|
||||||
|
|
||||||
ERR_EXPLAIN("Invalid Locale: "+p_locale);
|
if(!is_valid_locale(p_locale)) {
|
||||||
ERR_FAIL_COND(!is_valid_locale(p_locale));
|
String trimmed_locale = get_trimmed_locale(p_locale);
|
||||||
locale=p_locale;
|
|
||||||
|
ERR_EXPLAIN("Invalid Locale: "+trimmed_locale);
|
||||||
|
ERR_FAIL_COND(!is_valid_locale(trimmed_locale));
|
||||||
|
|
||||||
|
locale=trimmed_locale;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
locale=p_locale;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Translation::add_message( const StringName& p_src_text, const StringName& p_xlated_text ) {
|
void Translation::add_message( const StringName& p_src_text, const StringName& p_xlated_text ) {
|
||||||
|
@ -906,9 +919,17 @@ Translation::Translation() {
|
||||||
|
|
||||||
void TranslationServer::set_locale(const String& p_locale) {
|
void TranslationServer::set_locale(const String& p_locale) {
|
||||||
|
|
||||||
ERR_EXPLAIN("Invalid Locale: "+p_locale);
|
if(!is_valid_locale(p_locale)) {
|
||||||
ERR_FAIL_COND(!is_valid_locale(p_locale));
|
String trimmed_locale = get_trimmed_locale(p_locale);
|
||||||
locale=p_locale;
|
|
||||||
|
ERR_EXPLAIN("Invalid Locale: "+trimmed_locale);
|
||||||
|
ERR_FAIL_COND(!is_valid_locale(trimmed_locale));
|
||||||
|
|
||||||
|
locale=trimmed_locale;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
locale=p_locale;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String TranslationServer::get_locale() const {
|
String TranslationServer::get_locale() const {
|
||||||
|
|
Loading…
Reference in a new issue