Skip to content

Commit 68d9833

Browse files
committed
Enable changing editor language without restart
1 parent cae3d72 commit 68d9833

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

editor/editor_node.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7369,7 +7369,7 @@ EditorNode::EditorNode() {
73697369
main_menu->set_switch_on_hover(true);
73707370

73717371
file_menu = memnew(PopupMenu);
7372-
file_menu->set_name(TTR("Scene"));
7372+
file_menu->set_name(TTRC("Scene"));
73737373
main_menu->add_child(file_menu);
73747374
main_menu->set_menu_tooltip(0, TTR("Operations with scene files."));
73757375

@@ -7494,7 +7494,7 @@ EditorNode::EditorNode() {
74947494
#endif
74957495

74967496
project_menu = memnew(PopupMenu);
7497-
project_menu->set_name(TTR("Project"));
7497+
project_menu->set_name(TTRC("Project"));
74987498
main_menu->add_child(project_menu);
74997499

75007500
project_menu->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/project_settings", TTRC("Project Settings..."), Key::NONE, TTRC("Project Settings")), PROJECT_OPEN_SETTINGS);
@@ -7552,11 +7552,11 @@ EditorNode::EditorNode() {
75527552

75537553
// Options are added and handled by DebuggerEditorPlugin.
75547554
debug_menu = memnew(PopupMenu);
7555-
debug_menu->set_name(TTR("Debug"));
7555+
debug_menu->set_name(TTRC("Debug"));
75567556
main_menu->add_child(debug_menu);
75577557

75587558
settings_menu = memnew(PopupMenu);
7559-
settings_menu->set_name(TTR("Editor"));
7559+
settings_menu->set_name(TTRC("Editor"));
75607560
main_menu->add_child(settings_menu);
75617561

75627562
#ifdef MACOS_ENABLED
@@ -7607,7 +7607,7 @@ EditorNode::EditorNode() {
76077607
#endif
76087608

76097609
help_menu = memnew(PopupMenu);
7610-
help_menu->set_name(TTR("Help"));
7610+
help_menu->set_name(TTRC("Help"));
76117611
if (global_menu && NativeMenu::get_singleton()->has_system_menu(NativeMenu::HELP_MENU_ID)) {
76127612
help_menu->set_system_menu(NativeMenu::HELP_MENU_ID);
76137613
}

editor/editor_settings.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ bool EditorSettings::_set(const StringName &p_name, const Variant &p_value) {
6868
if (changed && initialized) {
6969
changed_settings.insert(p_name);
7070
emit_signal(SNAME("settings_changed"));
71+
72+
if (p_name == SNAME("interface/editor/editor_language")) {
73+
setup_language();
74+
}
7175
}
7276
return true;
7377
}
@@ -1256,9 +1260,9 @@ void EditorSettings::create() {
12561260

12571261
void EditorSettings::setup_language() {
12581262
String lang = get("interface/editor/editor_language");
1259-
TranslationServer::get_singleton()->set_locale(lang);
12601263

12611264
if (lang == "en") {
1265+
TranslationServer::get_singleton()->set_locale(lang);
12621266
return; // Default, nothing to do.
12631267
}
12641268
// Load editor translation for configured/detected locale.
@@ -1270,6 +1274,8 @@ void EditorSettings::setup_language() {
12701274

12711275
// Load extractable translation for projects.
12721276
load_extractable_translations(lang);
1277+
1278+
TranslationServer::get_singleton()->set_locale(lang);
12731279
}
12741280

12751281
void EditorSettings::setup_network() {

scene/main/scene_tree.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -770,9 +770,7 @@ void SceneTree::_main_window_focus_in() {
770770
void SceneTree::_notification(int p_notification) {
771771
switch (p_notification) {
772772
case NOTIFICATION_TRANSLATION_CHANGED: {
773-
if (!Engine::get_singleton()->is_editor_hint()) {
774-
get_root()->propagate_notification(p_notification);
775-
}
773+
get_root()->propagate_notification(p_notification);
776774
} break;
777775

778776
case NOTIFICATION_OS_MEMORY_WARNING:

0 commit comments

Comments
 (0)