Load needed translation on demand
This commit is contained in:
parent
fab0d53f7e
commit
7ef4caa691
2 changed files with 29 additions and 28 deletions
|
@ -248,8 +248,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
|
||||||
|
|
||||||
String best;
|
String best;
|
||||||
|
|
||||||
for (int i = 0; i < translations.size(); i++) {
|
EditorTranslationList *etl = _editor_translations;
|
||||||
String locale = translations[i]->get_locale();
|
|
||||||
|
while (etl->data) {
|
||||||
|
|
||||||
|
const String &locale = etl->lang;
|
||||||
lang_hint += ",";
|
lang_hint += ",";
|
||||||
lang_hint += locale;
|
lang_hint += locale;
|
||||||
|
|
||||||
|
@ -260,6 +263,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
|
||||||
if (best == String() && host_lang.begins_with(locale)) {
|
if (best == String() && host_lang.begins_with(locale)) {
|
||||||
best = locale;
|
best = locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
etl++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (best == String()) {
|
if (best == String()) {
|
||||||
|
@ -874,11 +879,29 @@ void EditorSettings::setup_language() {
|
||||||
if (lang == "en")
|
if (lang == "en")
|
||||||
return; //none to do
|
return; //none to do
|
||||||
|
|
||||||
for (int i = 0; i < translations.size(); i++) {
|
EditorTranslationList *etl = _editor_translations;
|
||||||
if (translations[i]->get_locale() == lang) {
|
|
||||||
TranslationServer::get_singleton()->set_tool_translation(translations[i]);
|
while (etl->data) {
|
||||||
break;
|
|
||||||
|
if (etl->lang == lang) {
|
||||||
|
|
||||||
|
Vector<uint8_t> data;
|
||||||
|
data.resize(etl->uncomp_size);
|
||||||
|
Compression::decompress(data.ptrw(), etl->uncomp_size, etl->data, etl->comp_size, Compression::MODE_DEFLATE);
|
||||||
|
|
||||||
|
FileAccessMemory *fa = memnew(FileAccessMemory);
|
||||||
|
fa->open_custom(data.ptr(), data.size());
|
||||||
|
|
||||||
|
Ref<Translation> tr = TranslationLoaderPO::load_translation(fa, NULL, "translation_" + String(etl->lang));
|
||||||
|
|
||||||
|
if (tr.is_valid()) {
|
||||||
|
tr->set_locale(etl->lang);
|
||||||
|
TranslationServer::get_singleton()->set_tool_translation(tr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
etl++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1443,27 +1466,6 @@ EditorSettings::EditorSettings() {
|
||||||
optimize_save = true;
|
optimize_save = true;
|
||||||
save_changed_setting = true;
|
save_changed_setting = true;
|
||||||
|
|
||||||
EditorTranslationList *etl = _editor_translations;
|
|
||||||
|
|
||||||
while (etl->data) {
|
|
||||||
|
|
||||||
Vector<uint8_t> data;
|
|
||||||
data.resize(etl->uncomp_size);
|
|
||||||
Compression::decompress(data.ptrw(), etl->uncomp_size, etl->data, etl->comp_size, Compression::MODE_DEFLATE);
|
|
||||||
|
|
||||||
FileAccessMemory *fa = memnew(FileAccessMemory);
|
|
||||||
fa->open_custom(data.ptr(), data.size());
|
|
||||||
|
|
||||||
Ref<Translation> tr = TranslationLoaderPO::load_translation(fa, NULL, "translation_" + String(etl->lang));
|
|
||||||
|
|
||||||
if (tr.is_valid()) {
|
|
||||||
tr->set_locale(etl->lang);
|
|
||||||
translations.push_back(tr);
|
|
||||||
}
|
|
||||||
|
|
||||||
etl++;
|
|
||||||
}
|
|
||||||
|
|
||||||
_load_defaults();
|
_load_defaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,6 @@ private:
|
||||||
int last_order;
|
int last_order;
|
||||||
|
|
||||||
Ref<Resource> clipboard;
|
Ref<Resource> clipboard;
|
||||||
Vector<Ref<Translation> > translations;
|
|
||||||
Map<String, Ref<ShortCut> > shortcuts;
|
Map<String, Ref<ShortCut> > shortcuts;
|
||||||
|
|
||||||
String resource_path;
|
String resource_path;
|
||||||
|
|
Loading…
Reference in a new issue