Do not auto add default script and country codes to the locale.

This commit is contained in:
jitspoe 2024-10-12 01:04:42 -04:00 committed by Relintai
parent 06cc39ad91
commit b0701da063
2 changed files with 24 additions and 17 deletions

View File

@ -254,6 +254,10 @@ void TranslationServer::init_locale_info() {
} }
String TranslationServer::standardize_locale(const String &p_locale) const { String TranslationServer::standardize_locale(const String &p_locale) const {
return _standardize_locale(p_locale, false);
}
String TranslationServer::_standardize_locale(const String &p_locale, bool p_add_defaults) const {
// Replaces '-' with '_' for macOS style locales. // Replaces '-' with '_' for macOS style locales.
String univ_locale = p_locale.replace("-", "_"); String univ_locale = p_locale.replace("-", "_");
@ -315,6 +319,7 @@ String TranslationServer::standardize_locale(const String &p_locale) const {
} }
// Add script code base on language and country codes for some ambiguous cases. // Add script code base on language and country codes for some ambiguous cases.
if (p_add_defaults) {
if (script.empty()) { if (script.empty()) {
for (int i = 0; i < locale_script_info.size(); i++) { for (int i = 0; i < locale_script_info.size(); i++) {
const LocaleScriptInfo &info = locale_script_info[i]; const LocaleScriptInfo &info = locale_script_info[i];
@ -336,6 +341,7 @@ String TranslationServer::standardize_locale(const String &p_locale) const {
} }
} }
} }
}
// Combine results. // Combine results.
String locale = lang; String locale = lang;
@ -352,8 +358,8 @@ String TranslationServer::standardize_locale(const String &p_locale) const {
} }
int TranslationServer::compare_locales(const String &p_locale_a, const String &p_locale_b) const { int TranslationServer::compare_locales(const String &p_locale_a, const String &p_locale_b) const {
String locale_a = standardize_locale(p_locale_a); String locale_a = _standardize_locale(p_locale_a, true);
String locale_b = standardize_locale(p_locale_b); String locale_b = _standardize_locale(p_locale_b, true);
if (locale_a == locale_b) { if (locale_a == locale_b) {
// Exact match. // Exact match.

View File

@ -123,6 +123,7 @@ public:
int compare_locales(const String &p_locale_a, const String &p_locale_b) const; int compare_locales(const String &p_locale_a, const String &p_locale_b) const;
String standardize_locale(const String &p_locale) const; String standardize_locale(const String &p_locale) const;
String _standardize_locale(const String &p_locale, bool p_add_defaults) const;
Vector<String> get_all_languages() const; Vector<String> get_all_languages() const;
String get_language_name(const String &p_language) const; String get_language_name(const String &p_language) const;