From 1301343f427d4ea6660ee11649a5b65301fc1632 Mon Sep 17 00:00:00 2001 From: Haoyu Qiu Date: Tue, 17 Jun 2025 16:41:42 +0800 Subject: [PATCH] Improve auto-translation of editor's top & bottom bars - The main menu - The run bar - The update spinner - The bottom panel buttons --- editor/editor_audio_buses.cpp | 2 +- editor/editor_node.cpp | 55 ++++++++++--------- editor/editor_run_native.cpp | 7 ++- editor/gui/editor_bottom_panel.cpp | 6 +- editor/gui/editor_run_bar.cpp | 11 ++-- editor/gui/editor_toaster.cpp | 11 ++-- editor/gui/editor_version_button.cpp | 18 +++--- .../animation_player_editor_plugin.cpp | 2 +- .../plugins/animation_tree_editor_plugin.cpp | 2 +- editor/plugins/debugger_editor_plugin.cpp | 24 ++++---- editor/plugins/polygon_2d_editor_plugin.cpp | 2 +- .../resource_preloader_editor_plugin.cpp | 2 +- editor/plugins/shader_editor_plugin.cpp | 2 +- editor/plugins/shader_file_editor_plugin.cpp | 2 +- .../plugins/sprite_frames_editor_plugin.cpp | 2 +- editor/plugins/theme_editor_plugin.cpp | 2 +- editor/plugins/tiles/tiles_editor_plugin.cpp | 4 +- .../plugins/version_control_editor_plugin.cpp | 2 +- .../editor_scene_exporter_gltf_plugin.cpp | 2 +- .../gridmap/editor/grid_map_editor_plugin.cpp | 2 +- .../editor/multiplayer_editor_plugin.cpp | 2 +- .../openxr/editor/openxr_editor_plugin.cpp | 2 +- 22 files changed, 87 insertions(+), 77 deletions(-) diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 77c1dc3e18a..521bd85d535 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -1107,7 +1107,7 @@ void EditorAudioBuses::_rebuild_buses() { EditorAudioBuses *EditorAudioBuses::register_editor() { EditorAudioBuses *audio_buses = memnew(EditorAudioBuses); - EditorNode::get_bottom_panel()->add_item(TTR("Audio"), audio_buses, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_audio_bottom_panel", TTRC("Toggle Audio Bottom Panel"), KeyModifierMask::ALT | Key::A)); + EditorNode::get_bottom_panel()->add_item(TTRC("Audio"), audio_buses, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_audio_bottom_panel", TTRC("Toggle Audio Bottom Panel"), KeyModifierMask::ALT | Key::A)); return audio_buses; } diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index e7b74b79e1d..36e109418f0 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1009,7 +1009,7 @@ void EditorNode::_update_update_spinner() { update_popup->set_item_checked(update_popup->get_item_index(SPINNER_UPDATE_WHEN_CHANGED), !update_continuously); if (update_continuously) { - update_spinner->set_tooltip_text(TTR("Spins when the editor window redraws.\nUpdate Continuously is enabled, which can increase power usage. Click to disable it.")); + update_spinner->set_tooltip_text(TTRC("Spins when the editor window redraws.\nUpdate Continuously is enabled, which can increase power usage. Click to disable it.")); // Use a different color for the update spinner when Update Continuously is enabled, // as this feature should only be enabled for troubleshooting purposes. @@ -1018,7 +1018,7 @@ void EditorNode::_update_update_spinner() { const bool dark_theme = EditorThemeManager::is_dark_theme(); update_spinner->set_self_modulate(theme->get_color(SNAME("error_color"), EditorStringName(Editor)) * (dark_theme ? Color(1.1, 1.1, 1.1) : Color(4.25, 4.25, 4.25))); } else { - update_spinner->set_tooltip_text(TTR("Spins when the editor window redraws.")); + update_spinner->set_tooltip_text(TTRC("Spins when the editor window redraws.")); update_spinner->set_self_modulate(Color(1, 1, 1)); } @@ -7046,7 +7046,8 @@ void EditorNode::_add_renderer_entry(const String &p_renderer_name, bool p_mark_ item_text = TTR("Compatibility"); } if (p_mark_overridden) { - item_text += " " + TTR("(Overridden)"); + // TRANSLATORS: The placeholder is the rendering method that has overridden the default one. + item_text = vformat(TTR("%s (Overridden)"), item_text); } renderer->add_item(item_text); } @@ -7944,7 +7945,7 @@ EditorNode::EditorNode() { recent_scenes = memnew(PopupMenu); recent_scenes->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); - file_menu->add_submenu_node_item(TTR("Open Recent"), recent_scenes, SCENE_OPEN_RECENT); + file_menu->add_submenu_node_item(TTRC("Open Recent"), recent_scenes, SCENE_OPEN_RECENT); recent_scenes->connect(SceneStringName(id_pressed), callable_mp(this, &EditorNode::_open_recent_scene)); file_menu->add_separator(); @@ -7961,7 +7962,7 @@ EditorNode::EditorNode() { file_menu->add_separator(); export_as_menu = memnew(PopupMenu); - file_menu->add_submenu_node_item(TTR("Export As..."), export_as_menu); + file_menu->add_submenu_node_item(TTRC("Export As..."), export_as_menu); export_as_menu->add_shortcut(ED_SHORTCUT("editor/export_as_mesh_library", TTRC("MeshLibrary...")), FILE_EXPORT_MESH_LIBRARY); export_as_menu->connect("index_pressed", callable_mp(this, &EditorNode::_export_as_menu_option)); @@ -8004,21 +8005,21 @@ EditorNode::EditorNode() { project_menu->add_shortcut(ED_GET_SHORTCUT("editor/find_in_files"), PROJECT_FIND_IN_FILES); project_menu->add_separator(); - project_menu->add_item(TTR("Version Control"), PROJECT_VERSION_CONTROL); + project_menu->add_item(TTRC("Version Control"), PROJECT_VERSION_CONTROL); project_menu->add_separator(); project_menu->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/export", TTRC("Export..."), Key::NONE, TTRC("Export")), PROJECT_EXPORT); - project_menu->add_item(TTR("Pack Project as ZIP..."), PROJECT_PACK_AS_ZIP); + project_menu->add_item(TTRC("Pack Project as ZIP..."), PROJECT_PACK_AS_ZIP); #ifndef ANDROID_ENABLED - project_menu->add_item(TTR("Install Android Build Template..."), PROJECT_INSTALL_ANDROID_SOURCE); - project_menu->add_item(TTR("Open User Data Folder"), PROJECT_OPEN_USER_DATA_FOLDER); + project_menu->add_item(TTRC("Install Android Build Template..."), PROJECT_INSTALL_ANDROID_SOURCE); + project_menu->add_item(TTRC("Open User Data Folder"), PROJECT_OPEN_USER_DATA_FOLDER); #endif project_menu->add_separator(); tool_menu = memnew(PopupMenu); tool_menu->connect("index_pressed", callable_mp(this, &EditorNode::_tool_menu_option)); - project_menu->add_submenu_node_item(TTR("Tools"), tool_menu); + project_menu->add_submenu_node_item(TTRC("Tools"), tool_menu); tool_menu->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/orphan_resource_explorer", TTRC("Orphan Resource Explorer...")), TOOLS_ORPHAN_RESOURCES); tool_menu->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/engine_compilation_configuration_editor", TTRC("Engine Compilation Configuration Editor...")), TOOLS_BUILD_PROFILE_MANAGER); tool_menu->add_shortcut(ED_SHORTCUT_AND_COMMAND("editor/upgrade_project", TTRC("Upgrade Project Files...")), TOOLS_PROJECT_UPGRADE); @@ -8070,10 +8071,10 @@ EditorNode::EditorNode() { settings_menu->add_shortcut(ED_SHORTCUT("editor/command_palette", TTRC("Command Palette..."), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::P), EDITOR_COMMAND_PALETTE); settings_menu->add_separator(); - settings_menu->add_submenu_node_item(TTR("Editor Docks"), editor_dock_manager->get_docks_menu()); + settings_menu->add_submenu_node_item(TTRC("Editor Docks"), editor_dock_manager->get_docks_menu()); editor_layouts = memnew(PopupMenu); - settings_menu->add_submenu_node_item(TTR("Editor Layout"), editor_layouts); + settings_menu->add_submenu_node_item(TTRC("Editor Layout"), editor_layouts); editor_layouts->connect(SceneStringName(id_pressed), callable_mp(this, &EditorNode::_layout_menu_option)); settings_menu->add_separator(); @@ -8081,7 +8082,7 @@ EditorNode::EditorNode() { ED_SHORTCUT_OVERRIDE("editor/take_screenshot", "macos", KeyModifierMask::META | Key::F12); settings_menu->add_shortcut(ED_GET_SHORTCUT("editor/take_screenshot"), EDITOR_TAKE_SCREENSHOT); - settings_menu->set_item_tooltip(-1, TTR("Screenshots are stored in the user data folder (\"user://\").")); + settings_menu->set_item_tooltip(-1, TTRC("Screenshots are stored in the user data folder (\"user://\").")); ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTRC("Toggle Fullscreen"), KeyModifierMask::SHIFT | Key::F11); ED_SHORTCUT_OVERRIDE("editor/fullscreen_mode", "macos", KeyModifierMask::META | KeyModifierMask::CTRL | Key::F); @@ -8091,19 +8092,19 @@ EditorNode::EditorNode() { #ifndef ANDROID_ENABLED if (OS::get_singleton()->get_data_path() == OS::get_singleton()->get_config_path()) { // Configuration and data folders are located in the same place (Windows/macOS). - settings_menu->add_item(TTR("Open Editor Data/Settings Folder"), EDITOR_OPEN_DATA_FOLDER); + settings_menu->add_item(TTRC("Open Editor Data/Settings Folder"), EDITOR_OPEN_DATA_FOLDER); } else { // Separate configuration and data folders (Linux). - settings_menu->add_item(TTR("Open Editor Data Folder"), EDITOR_OPEN_DATA_FOLDER); - settings_menu->add_item(TTR("Open Editor Settings Folder"), EDITOR_OPEN_CONFIG_FOLDER); + settings_menu->add_item(TTRC("Open Editor Data Folder"), EDITOR_OPEN_DATA_FOLDER); + settings_menu->add_item(TTRC("Open Editor Settings Folder"), EDITOR_OPEN_CONFIG_FOLDER); } settings_menu->add_separator(); #endif - settings_menu->add_item(TTR("Manage Editor Features..."), EDITOR_MANAGE_FEATURE_PROFILES); - settings_menu->add_item(TTR("Manage Export Templates..."), EDITOR_MANAGE_EXPORT_TEMPLATES); + settings_menu->add_item(TTRC("Manage Editor Features..."), EDITOR_MANAGE_FEATURE_PROFILES); + settings_menu->add_item(TTRC("Manage Export Templates..."), EDITOR_MANAGE_EXPORT_TEMPLATES); #if !defined(ANDROID_ENABLED) && !defined(WEB_ENABLED) - settings_menu->add_item(TTR("Configure FBX Importer..."), EDITOR_CONFIGURE_FBX_IMPORTER); + settings_menu->add_item(TTRC("Configure FBX Importer..."), EDITOR_CONFIGURE_FBX_IMPORTER); #endif help_menu = memnew(PopupMenu); @@ -8156,7 +8157,9 @@ EditorNode::EditorNode() { renderer->set_theme_type_variation("TopBarOptionButton"); renderer->set_fit_to_longest_item(false); renderer->set_focus_mode(Control::FOCUS_ACCESSIBILITY); - renderer->set_tooltip_text(TTR("Choose a rendering method.\n\nNotes:\n- On mobile platforms, the Mobile rendering method is used if Forward+ is selected here.\n- On the web platform, the Compatibility rendering method is always used.")); + renderer->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); + renderer->set_tooltip_auto_translate_mode(AUTO_TRANSLATE_MODE_ALWAYS); + renderer->set_tooltip_text(TTRC("Choose a rendering method.\n\nNotes:\n- On mobile platforms, the Mobile rendering method is used if Forward+ is selected here.\n- On the web platform, the Compatibility rendering method is always used.")); renderer->set_accessibility_name(TTRC("Rendering Method")); right_menu_hb->add_child(renderer); @@ -8220,10 +8223,10 @@ EditorNode::EditorNode() { update_spinner->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &EditorNode::_menu_option)); update_spinner->set_accessibility_name(TTRC("Update Mode")); PopupMenu *p = update_spinner->get_popup(); - p->add_radio_check_item(TTR("Update Continuously"), SPINNER_UPDATE_CONTINUOUSLY); - p->add_radio_check_item(TTR("Update When Changed"), SPINNER_UPDATE_WHEN_CHANGED); + p->add_radio_check_item(TTRC("Update Continuously"), SPINNER_UPDATE_CONTINUOUSLY); + p->add_radio_check_item(TTRC("Update When Changed"), SPINNER_UPDATE_WHEN_CHANGED); p->add_separator(); - p->add_item(TTR("Hide Update Spinner"), SPINNER_UPDATE_SPINNER_HIDE); + p->add_item(TTRC("Hide Update Spinner"), SPINNER_UPDATE_SPINNER_HIDE); _update_update_spinner(); // Instantiate and place editor docks. @@ -8291,7 +8294,7 @@ EditorNode::EditorNode() { center_split->set_dragger_visibility(SplitContainer::DRAGGER_HIDDEN); log = memnew(EditorLog); - Button *output_button = bottom_panel->add_item(TTR("Output"), log, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_output_bottom_panel", TTRC("Toggle Output Bottom Panel"), KeyModifierMask::ALT | Key::O)); + Button *output_button = bottom_panel->add_item(TTRC("Output"), log, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_output_bottom_panel", TTRC("Toggle Output Bottom Panel"), KeyModifierMask::ALT | Key::O)); log->set_tool_button(output_button); center_split->connect(SceneStringName(resized), callable_mp(this, &EditorNode::_vp_resized)); @@ -8479,8 +8482,8 @@ EditorNode::EditorNode() { vcs_actions_menu = VersionControlEditorPlugin::get_singleton()->get_version_control_actions_panel(); vcs_actions_menu->connect("index_pressed", callable_mp(this, &EditorNode::_version_control_menu_option)); - vcs_actions_menu->add_item(TTR("Create/Override Version Control Metadata..."), VCS_METADATA); - vcs_actions_menu->add_item(TTR("Version Control Settings..."), VCS_SETTINGS); + vcs_actions_menu->add_item(TTRC("Create/Override Version Control Metadata..."), VCS_METADATA); + vcs_actions_menu->add_item(TTRC("Version Control Settings..."), VCS_SETTINGS); project_menu->set_item_submenu_node(project_menu->get_item_index(PROJECT_VERSION_CONTROL), vcs_actions_menu); add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor))); diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index 91cbe4edbd5..0d7f969aab0 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -81,10 +81,10 @@ void EditorRunNative::_notification(int p_what) { } if (popup->get_item_count() == 0) { remote_debug->set_disabled(true); - remote_debug->set_tooltip_text(TTR("No Remote Deploy export presets configured.")); + remote_debug->set_tooltip_text(TTRC("No Remote Deploy export presets configured.")); } else { remote_debug->set_disabled(false); - remote_debug->set_tooltip_text(TTR("Remote Deploy")); + remote_debug->set_tooltip_text(TTRC("Remote Deploy")); } first = false; @@ -199,8 +199,9 @@ EditorRunNative::EditorRunNative() { remote_debug = memnew(MenuButton); remote_debug->set_flat(false); remote_debug->set_theme_type_variation("RunBarButton"); + remote_debug->get_popup()->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); remote_debug->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &EditorRunNative::start_run_native)); - remote_debug->set_tooltip_text(TTR("Remote Deploy")); + remote_debug->set_tooltip_text(TTRC("Remote Deploy")); remote_debug->set_accessibility_name(TTRC("Remote Deploy")); remote_debug->set_disabled(true); diff --git a/editor/gui/editor_bottom_panel.cpp b/editor/gui/editor_bottom_panel.cpp index fab41e1c862..e39a846ee1d 100644 --- a/editor/gui/editor_bottom_panel.cpp +++ b/editor/gui/editor_bottom_panel.cpp @@ -306,7 +306,7 @@ EditorBottomPanel::EditorBottomPanel() { item_vbox->add_child(bottom_hbox); left_button = memnew(Button); - left_button->set_tooltip_text(TTR("Scroll Left\nHold Ctrl to scroll to the begin.\nHold Shift to scroll one page.")); + left_button->set_tooltip_text(TTRC("Scroll Left\nHold Ctrl to scroll to the begin.\nHold Shift to scroll one page.")); left_button->set_accessibility_name(TTRC("Scroll Left")); left_button->set_theme_type_variation("BottomPanelButton"); left_button->set_focus_mode(Control::FOCUS_ACCESSIBILITY); @@ -323,7 +323,7 @@ EditorBottomPanel::EditorBottomPanel() { bottom_hbox->add_child(button_scroll); right_button = memnew(Button); - right_button->set_tooltip_text(TTR("Scroll Right\nHold Ctrl to scroll to the end.\nHold Shift to scroll one page.")); + right_button->set_tooltip_text(TTRC("Scroll Right\nHold Ctrl to scroll to the end.\nHold Shift to scroll one page.")); right_button->set_accessibility_name(TTRC("Scroll Right")); right_button->set_theme_type_variation("BottomPanelButton"); right_button->set_focus_mode(Control::FOCUS_ACCESSIBILITY); @@ -355,7 +355,7 @@ EditorBottomPanel::EditorBottomPanel() { pin_button->hide(); pin_button->set_theme_type_variation("FlatMenuButton"); pin_button->set_toggle_mode(true); - pin_button->set_tooltip_text(TTR("Pin Bottom Panel Switching")); + pin_button->set_tooltip_text(TTRC("Pin Bottom Panel Switching")); pin_button->set_accessibility_name(TTRC("Pin Bottom Panel")); pin_button->connect(SceneStringName(toggled), callable_mp(this, &EditorBottomPanel::_pin_button_toggled)); diff --git a/editor/gui/editor_run_bar.cpp b/editor/gui/editor_run_bar.cpp index 8b5a482837c..569b7dbceb0 100644 --- a/editor/gui/editor_run_bar.cpp +++ b/editor/gui/editor_run_bar.cpp @@ -119,15 +119,15 @@ void EditorRunBar::_reset_play_buttons() { play_button->set_pressed(false); play_button->set_button_icon(get_editor_theme_icon(SNAME("MainPlay"))); - play_button->set_tooltip_text(TTR("Play the project.")); + play_button->set_tooltip_text(TTRC("Play the project.")); play_scene_button->set_pressed(false); play_scene_button->set_button_icon(get_editor_theme_icon(SNAME("PlayScene"))); - play_scene_button->set_tooltip_text(TTR("Play the edited scene.")); + play_scene_button->set_tooltip_text(TTRC("Play the edited scene.")); play_custom_scene_button->set_pressed(false); play_custom_scene_button->set_button_icon(get_editor_theme_icon(SNAME("PlayCustom"))); - play_custom_scene_button->set_tooltip_text(TTR("Play a custom scene.")); + play_custom_scene_button->set_tooltip_text(TTRC("Play a custom scene.")); } void EditorRunBar::_update_play_buttons() { @@ -152,7 +152,7 @@ void EditorRunBar::_update_play_buttons() { if (active_button) { active_button->set_pressed(true); active_button->set_button_icon(get_editor_theme_icon(SNAME("Reload"))); - active_button->set_tooltip_text(TTR("Reload the played scene.")); + active_button->set_tooltip_text(TTRC("Reload the played scene.")); } } @@ -518,6 +518,7 @@ EditorRunBar::EditorRunBar() { // Use a button for the indicator since it comes with a background panel and pixel perfect centering of an icon. profiler_autostart_indicator = memnew(Button); + profiler_autostart_indicator->set_tooltip_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); profiler_autostart_indicator->set_icon_alignment(HORIZONTAL_ALIGNMENT_CENTER); profiler_autostart_indicator->set_focus_mode(FOCUS_ACCESSIBILITY); profiler_autostart_indicator->set_theme_type_variation("ProfilerAutostartIndicator"); @@ -678,6 +679,6 @@ EditorRunBar::EditorRunBar() { write_movie_panel->add_child(write_movie_button); write_movie_button->set_theme_type_variation("RunBarButtonMovieMakerDisabled"); write_movie_button->set_focus_mode(Control::FOCUS_ACCESSIBILITY); - write_movie_button->set_tooltip_text(TTR("Enable Movie Maker mode.\nThe project will run at stable FPS and the visual and audio output will be recorded to a video file.")); + write_movie_button->set_tooltip_text(TTRC("Enable Movie Maker mode.\nThe project will run at stable FPS and the visual and audio output will be recorded to a video file.")); write_movie_button->set_accessibility_name(TTRC("Enable Movie Maker Mode")); } diff --git a/editor/gui/editor_toaster.cpp b/editor/gui/editor_toaster.cpp index 0b98635089f..e41a32e0e53 100644 --- a/editor/gui/editor_toaster.cpp +++ b/editor/gui/editor_toaster.cpp @@ -236,12 +236,12 @@ void EditorToaster::_auto_hide_or_free_toasts() { } if (toasts.is_empty()) { - main_button->set_tooltip_text(TTR("No notifications.")); + main_button->set_tooltip_text(TTRC("No notifications.")); main_button->set_modulate(Color(0.5, 0.5, 0.5)); main_button->set_disabled(true); set_process_internal(false); } else { - main_button->set_tooltip_text(TTR("Show notifications.")); + main_button->set_tooltip_text(TTRC("Show notifications.")); main_button->set_modulate(Color(1, 1, 1)); main_button->set_disabled(false); } @@ -342,6 +342,7 @@ void EditorToaster::_repop_old() { Control *EditorToaster::popup(Control *p_control, Severity p_severity, double p_time, const String &p_tooltip) { // Create the panel according to the severity. PanelContainer *panel = memnew(PanelContainer); + panel->set_tooltip_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); panel->set_tooltip_text(p_tooltip); switch (p_severity) { case SEVERITY_INFO: @@ -435,10 +436,12 @@ void EditorToaster::_popup_str(const String &p_message, Severity p_severity, con hb->add_theme_constant_override("separation", 0); Label *label = memnew(Label); + label->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); label->set_focus_mode(FOCUS_ACCESSIBILITY); hb->add_child(label); Label *count_label = memnew(Label); + count_label->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); hb->add_child(count_label); control = popup(hb, p_severity, default_message_duration, p_tooltip); @@ -576,7 +579,7 @@ EditorToaster::EditorToaster() { // Main button. main_button = memnew(Button); main_button->set_accessibility_name(TTRC("Notifications")); - main_button->set_tooltip_text(TTR("No notifications.")); + main_button->set_tooltip_text(TTRC("No notifications.")); main_button->set_modulate(Color(0.5, 0.5, 0.5)); main_button->set_disabled(true); main_button->set_theme_type_variation("FlatMenuButton"); @@ -593,7 +596,7 @@ EditorToaster::EditorToaster() { disable_notifications_button = memnew(Button); disable_notifications_button->set_accessibility_name(TTRC("Silence Notifications")); - disable_notifications_button->set_tooltip_text(TTR("Silence the notifications.")); + disable_notifications_button->set_tooltip_text(TTRC("Silence the notifications.")); disable_notifications_button->set_flat(true); disable_notifications_button->connect(SceneStringName(pressed), callable_mp(this, &EditorToaster::_set_notifications_enabled).bind(false)); disable_notifications_panel->add_child(disable_notifications_button); diff --git a/editor/gui/editor_version_button.cpp b/editor/gui/editor_version_button.cpp index 15f2d46a22d..17c82b787d5 100644 --- a/editor/gui/editor_version_button.cpp +++ b/editor/gui/editor_version_button.cpp @@ -64,6 +64,16 @@ void EditorVersionButton::_notification(int p_what) { set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); set_text(_get_version_string(format)); } break; + + case NOTIFICATION_TRANSLATION_CHANGED: { + String build_date; + if (GODOT_VERSION_TIMESTAMP > 0) { + build_date = Time::get_singleton()->get_datetime_string_from_unix_time(GODOT_VERSION_TIMESTAMP, true) + " UTC"; + } else { + build_date = TTR("(unknown)"); + } + set_tooltip_text(vformat(TTR("Git commit date: %s\nClick to copy the version information."), build_date)); + } break; } } @@ -74,12 +84,4 @@ void EditorVersionButton::pressed() { EditorVersionButton::EditorVersionButton(VersionFormat p_format) { format = p_format; set_underline_mode(LinkButton::UNDERLINE_MODE_ON_HOVER); - - String build_date; - if (GODOT_VERSION_TIMESTAMP > 0) { - build_date = Time::get_singleton()->get_datetime_string_from_unix_time(GODOT_VERSION_TIMESTAMP, true) + " UTC"; - } else { - build_date = TTR("(unknown)"); - } - set_tooltip_text(vformat(TTR("Git commit date: %s\nClick to copy the version information."), build_date)); } diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index f98102be925..805c5a1394e 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -2436,7 +2436,7 @@ void AnimationPlayerEditorPlugin::make_visible(bool p_visible) { AnimationPlayerEditorPlugin::AnimationPlayerEditorPlugin() { anim_editor = memnew(AnimationPlayerEditor(this)); - EditorNode::get_bottom_panel()->add_item(TTR("Animation"), anim_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_animation_bottom_panel", TTRC("Toggle Animation Bottom Panel"), KeyModifierMask::ALT | Key::N)); + EditorNode::get_bottom_panel()->add_item(TTRC("Animation"), anim_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_animation_bottom_panel", TTRC("Toggle Animation Bottom Panel"), KeyModifierMask::ALT | Key::N)); } AnimationPlayerEditorPlugin::~AnimationPlayerEditorPlugin() { diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp index bc03cbb14a3..13e091d5e9f 100644 --- a/editor/plugins/animation_tree_editor_plugin.cpp +++ b/editor/plugins/animation_tree_editor_plugin.cpp @@ -305,6 +305,6 @@ AnimationTreeEditorPlugin::AnimationTreeEditorPlugin() { anim_tree_editor = memnew(AnimationTreeEditor); anim_tree_editor->set_custom_minimum_size(Size2(0, 300) * EDSCALE); - button = EditorNode::get_bottom_panel()->add_item(TTR("AnimationTree"), anim_tree_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_animation_tree_bottom_panel", TTRC("Toggle AnimationTree Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("AnimationTree"), anim_tree_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_animation_tree_bottom_panel", TTRC("Toggle AnimationTree Bottom Panel"))); button->hide(); } diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp index 6396098e620..35e3b715a80 100644 --- a/editor/plugins/debugger_editor_plugin.cpp +++ b/editor/plugins/debugger_editor_plugin.cpp @@ -55,7 +55,7 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(PopupMenu *p_debug_menu) { file_server = memnew(EditorFileServer); EditorDebuggerNode *debugger = memnew(EditorDebuggerNode); - Button *db = EditorNode::get_bottom_panel()->add_item(TTR("Debugger"), debugger, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_debugger_bottom_panel", TTRC("Toggle Debugger Bottom Panel"), KeyModifierMask::ALT | Key::D)); + Button *db = EditorNode::get_bottom_panel()->add_item(TTRC("Debugger"), debugger, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_debugger_bottom_panel", TTRC("Toggle Debugger Bottom Panel"), KeyModifierMask::ALT | Key::D)); debugger->set_tool_button(db); // Main editor debug menu. @@ -63,41 +63,41 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(PopupMenu *p_debug_menu) { debug_menu->set_hide_on_checkable_item_selection(false); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/deploy_with_remote_debug", TTRC("Deploy with Remote Debug")), RUN_DEPLOY_REMOTE_DEBUG); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, using one-click deploy will make the executable attempt to connect to this computer's IP so the running project can be debugged.\nThis option is intended to be used for remote debugging (typically with a mobile device).\nYou don't need to enable it to use the GDScript debugger locally.")); + TTRC("When this option is enabled, using one-click deploy will make the executable attempt to connect to this computer's IP so the running project can be debugged.\nThis option is intended to be used for remote debugging (typically with a mobile device).\nYou don't need to enable it to use the GDScript debugger locally.")); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/small_deploy_with_network_fs", TTRC("Small Deploy with Network Filesystem")), RUN_FILE_SERVER); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, using one-click deploy for Android will only export an executable without the project data.\nThe filesystem will be provided from the project by the editor over the network.\nOn Android, deploying will use the USB cable for faster performance. This option speeds up testing for projects with large assets.")); + TTRC("When this option is enabled, using one-click deploy for Android will only export an executable without the project data.\nThe filesystem will be provided from the project by the editor over the network.\nOn Android, deploying will use the USB cable for faster performance. This option speeds up testing for projects with large assets.")); debug_menu->add_separator(); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/visible_collision_shapes", TTRC("Visible Collision Shapes")), RUN_DEBUG_COLLISIONS); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, collision shapes and raycast nodes (for 2D and 3D) will be visible in the running project.")); + TTRC("When this option is enabled, collision shapes and raycast nodes (for 2D and 3D) will be visible in the running project.")); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/visible_paths", TTRC("Visible Paths")), RUN_DEBUG_PATHS); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, curve resources used by path nodes will be visible in the running project.")); + TTRC("When this option is enabled, curve resources used by path nodes will be visible in the running project.")); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/visible_navigation", TTRC("Visible Navigation")), RUN_DEBUG_NAVIGATION); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, navigation meshes, and polygons will be visible in the running project.")); + TTRC("When this option is enabled, navigation meshes, and polygons will be visible in the running project.")); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/visible_avoidance", TTRC("Visible Avoidance")), RUN_DEBUG_AVOIDANCE); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, avoidance object shapes, radiuses, and velocities will be visible in the running project.")); + TTRC("When this option is enabled, avoidance object shapes, radiuses, and velocities will be visible in the running project.")); debug_menu->add_separator(); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/visible_canvas_redraw", TTRC("Debug CanvasItem Redraws")), RUN_DEBUG_CANVAS_REDRAW); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, redraw requests of 2D objects will become visible (as a short flash) in the running project.\nThis is useful to troubleshoot low processor mode.")); + TTRC("When this option is enabled, redraw requests of 2D objects will become visible (as a short flash) in the running project.\nThis is useful to troubleshoot low processor mode.")); debug_menu->add_separator(); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/sync_scene_changes", TTRC("Synchronize Scene Changes")), RUN_LIVE_DEBUG); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, any changes made to the scene in the editor will be replicated in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled.")); + TTRC("When this option is enabled, any changes made to the scene in the editor will be replicated in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled.")); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/sync_script_changes", TTRC("Synchronize Script Changes")), RUN_RELOAD_SCRIPTS); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, any script that is saved will be reloaded in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled.")); + TTRC("When this option is enabled, any script that is saved will be reloaded in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled.")); debug_menu->add_check_shortcut(ED_SHORTCUT("editor/keep_server_open", TTRC("Keep Debug Server Open")), SERVER_KEEP_OPEN); debug_menu->set_item_tooltip(-1, - TTR("When this option is enabled, the editor debug server will stay open and listen for new sessions started outside of the editor itself.")); + TTRC("When this option is enabled, the editor debug server will stay open and listen for new sessions started outside of the editor itself.")); // Multi-instance, start/stop. debug_menu->add_separator(); - debug_menu->add_item(TTR("Customize Run Instances..."), RUN_MULTIPLE_INSTANCES); + debug_menu->add_item(TTRC("Customize Run Instances..."), RUN_MULTIPLE_INSTANCES); debug_menu->connect(SceneStringName(id_pressed), callable_mp(this, &DebuggerEditorPlugin::_menu_option)); run_instances_dialog = memnew(RunInstancesDialog); diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp index 627023ba487..0e612f1c12e 100644 --- a/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/editor/plugins/polygon_2d_editor_plugin.cpp @@ -1495,7 +1495,7 @@ Polygon2DEditor::Polygon2DEditor() { error = memnew(AcceptDialog); add_child(error); - dock_button = EditorNode::get_bottom_panel()->add_item(TTR("Polygon"), polygon_edit, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_polygon_2d_bottom_panel", TTR("Toggle Polygon Bottom Panel"))); + dock_button = EditorNode::get_bottom_panel()->add_item(TTRC("Polygon"), polygon_edit, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_polygon_2d_bottom_panel", TTR("Toggle Polygon Bottom Panel"))); dock_button->hide(); } diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp index e0f55506063..971196e3f19 100644 --- a/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/editor/plugins/resource_preloader_editor_plugin.cpp @@ -424,6 +424,6 @@ ResourcePreloaderEditorPlugin::ResourcePreloaderEditorPlugin() { preloader_editor = memnew(ResourcePreloaderEditor); preloader_editor->set_custom_minimum_size(Size2(0, 250) * EDSCALE); - button = EditorNode::get_bottom_panel()->add_item("ResourcePreloader", preloader_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_resource_preloader_bottom_panel", TTRC("Toggle ResourcePreloader Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("ResourcePreloader"), preloader_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_resource_preloader_bottom_panel", TTRC("Toggle ResourcePreloader Bottom Panel"))); button->hide(); } diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index 618888e0796..137d6227fe0 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -938,7 +938,7 @@ ShaderEditorPlugin::ShaderEditorPlugin() { empty.instantiate(); shader_tabs->add_theme_style_override(SceneStringName(panel), empty); - button = EditorNode::get_bottom_panel()->add_item(TTR("Shader Editor"), window_wrapper, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_shader_editor_bottom_panel", TTRC("Toggle Shader Editor Bottom Panel"), KeyModifierMask::ALT | Key::S)); + button = EditorNode::get_bottom_panel()->add_item(TTRC("Shader Editor"), window_wrapper, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_shader_editor_bottom_panel", TTRC("Toggle Shader Editor Bottom Panel"), KeyModifierMask::ALT | Key::S)); shader_create_dialog = memnew(ShaderCreateDialog); files_split->add_child(shader_create_dialog); diff --git a/editor/plugins/shader_file_editor_plugin.cpp b/editor/plugins/shader_file_editor_plugin.cpp index 0f7f01e1336..1b08a46d807 100644 --- a/editor/plugins/shader_file_editor_plugin.cpp +++ b/editor/plugins/shader_file_editor_plugin.cpp @@ -316,6 +316,6 @@ ShaderFileEditorPlugin::ShaderFileEditorPlugin() { shader_editor = memnew(ShaderFileEditor); shader_editor->set_custom_minimum_size(Size2(0, 300) * EDSCALE); - button = EditorNode::get_bottom_panel()->add_item(TTR("ShaderFile"), shader_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_shader_file_bottom_panel", TTRC("Toggle ShaderFile Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("ShaderFile"), shader_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_shader_file_bottom_panel", TTRC("Toggle ShaderFile Bottom Panel"))); button->hide(); } diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index 4885a691fdb..b1fb26a35cd 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -2599,6 +2599,6 @@ void SpriteFramesEditorPlugin::make_visible(bool p_visible) { SpriteFramesEditorPlugin::SpriteFramesEditorPlugin() { frames_editor = memnew(SpriteFramesEditor); frames_editor->set_custom_minimum_size(Size2(0, 300) * EDSCALE); - button = EditorNode::get_bottom_panel()->add_item(TTR("SpriteFrames"), frames_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_sprite_frames_bottom_panel", TTRC("Toggle SpriteFrames Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("SpriteFrames"), frames_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_sprite_frames_bottom_panel", TTRC("Toggle SpriteFrames Bottom Panel"))); button->hide(); } diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index 08a06810060..5b098b9c699 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -4034,6 +4034,6 @@ ThemeEditorPlugin::ThemeEditorPlugin() { theme_editor->plugin = this; theme_editor->set_custom_minimum_size(Size2(0, 200) * EDSCALE); - button = EditorNode::get_bottom_panel()->add_item(TTR("Theme"), theme_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_theme_bottom_panel", TTRC("Toggle Theme Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("Theme"), theme_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_theme_bottom_panel", TTRC("Toggle Theme Bottom Panel"))); button->hide(); } diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp index af860850d26..610f7d0129e 100644 --- a/editor/plugins/tiles/tiles_editor_plugin.cpp +++ b/editor/plugins/tiles/tiles_editor_plugin.cpp @@ -495,7 +495,7 @@ TileMapEditorPlugin::TileMapEditorPlugin() { editor->set_custom_minimum_size(Size2(0, 200) * EDSCALE); editor->hide(); - button = EditorNode::get_bottom_panel()->add_item(TTR("TileMap"), editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_tile_map_bottom_panel", TTRC("Toggle TileMap Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("TileMap"), editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_tile_map_bottom_panel", TTRC("Toggle TileMap Bottom Panel"))); button->hide(); } @@ -546,7 +546,7 @@ TileSetEditorPlugin::TileSetEditorPlugin() { editor->set_custom_minimum_size(Size2(0, 200) * EDSCALE); editor->hide(); - button = EditorNode::get_bottom_panel()->add_item(TTR("TileSet"), editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_tile_set_bottom_panel", TTRC("Toggle TileSet Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("TileSet"), editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_tile_set_bottom_panel", TTRC("Toggle TileSet Bottom Panel"))); button->hide(); } diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp index 195a7142311..4cec12206e7 100644 --- a/editor/plugins/version_control_editor_plugin.cpp +++ b/editor/plugins/version_control_editor_plugin.cpp @@ -909,7 +909,7 @@ void VersionControlEditorPlugin::fetch_available_vcs_plugin_names() { void VersionControlEditorPlugin::register_editor() { EditorDockManager::get_singleton()->add_dock(version_commit_dock, "", EditorDockManager::DOCK_SLOT_RIGHT_UL, ED_SHORTCUT_AND_COMMAND("docks/open_version_control", TTRC("Open Version Control Dock"))); - version_control_dock_button = EditorNode::get_bottom_panel()->add_item(TTR("Version Control"), version_control_dock, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_version_control_bottom_panel", TTRC("Toggle Version Control Bottom Panel"))); + version_control_dock_button = EditorNode::get_bottom_panel()->add_item(TTRC("Version Control"), version_control_dock, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_version_control_bottom_panel", TTRC("Toggle Version Control Bottom Panel"))); _set_vcs_ui_state(true); } diff --git a/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp b/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp index cb59377e198..f16224f238d 100644 --- a/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp +++ b/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp @@ -69,7 +69,7 @@ SceneExporterGLTFPlugin::SceneExporterGLTFPlugin() { // Add a button to the Scene -> Export menu to pop up the settings dialog. PopupMenu *menu = get_export_as_menu(); int idx = menu->get_item_count(); - menu->add_item(TTR("glTF 2.0 Scene...")); + menu->add_item(TTRC("glTF 2.0 Scene...")); menu->set_item_metadata(idx, callable_mp(this, &SceneExporterGLTFPlugin::_popup_gltf_export_dialog)); } diff --git a/modules/gridmap/editor/grid_map_editor_plugin.cpp b/modules/gridmap/editor/grid_map_editor_plugin.cpp index 2956cb12abc..d558da36e51 100644 --- a/modules/gridmap/editor/grid_map_editor_plugin.cpp +++ b/modules/gridmap/editor/grid_map_editor_plugin.cpp @@ -1760,7 +1760,7 @@ void GridMapEditorPlugin::_notification(int p_what) { grid_map_editor->set_custom_minimum_size(Size2(0, 200) * EDSCALE); grid_map_editor->hide(); - panel_button = EditorNode::get_bottom_panel()->add_item(TTR("GridMap"), grid_map_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_grid_map_bottom_panel", TTRC("Toggle GridMap Bottom Panel"))); + panel_button = EditorNode::get_bottom_panel()->add_item(TTRC("GridMap"), grid_map_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_grid_map_bottom_panel", TTRC("Toggle GridMap Bottom Panel"))); panel_button->hide(); } break; case NOTIFICATION_EXIT_TREE: { diff --git a/modules/multiplayer/editor/multiplayer_editor_plugin.cpp b/modules/multiplayer/editor/multiplayer_editor_plugin.cpp index 1be7803773e..7488afda78e 100644 --- a/modules/multiplayer/editor/multiplayer_editor_plugin.cpp +++ b/modules/multiplayer/editor/multiplayer_editor_plugin.cpp @@ -116,7 +116,7 @@ void MultiplayerEditorDebugger::setup_session(int p_session_id) { MultiplayerEditorPlugin::MultiplayerEditorPlugin() { repl_editor = memnew(ReplicationEditor); - button = EditorNode::get_bottom_panel()->add_item(TTR("Replication"), repl_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_replication_bottom_panel", TTRC("Toggle Replication Bottom Panel"))); + button = EditorNode::get_bottom_panel()->add_item(TTRC("Replication"), repl_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_replication_bottom_panel", TTRC("Toggle Replication Bottom Panel"))); button->hide(); repl_editor->get_pin()->connect(SceneStringName(pressed), callable_mp(this, &MultiplayerEditorPlugin::_pinned)); debugger.instantiate(); diff --git a/modules/openxr/editor/openxr_editor_plugin.cpp b/modules/openxr/editor/openxr_editor_plugin.cpp index 472d934586c..146c19b8c52 100644 --- a/modules/openxr/editor/openxr_editor_plugin.cpp +++ b/modules/openxr/editor/openxr_editor_plugin.cpp @@ -54,7 +54,7 @@ void OpenXREditorPlugin::make_visible(bool p_visible) { OpenXREditorPlugin::OpenXREditorPlugin() { action_map_editor = memnew(OpenXRActionMapEditor); - EditorNode::get_bottom_panel()->add_item(TTR("OpenXR Action Map"), action_map_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_openxr_action_map_bottom_panel", TTRC("Toggle OpenXR Action Map Bottom Panel"))); + EditorNode::get_bottom_panel()->add_item(TTRC("OpenXR Action Map"), action_map_editor, ED_SHORTCUT_AND_COMMAND("bottom_panels/toggle_openxr_action_map_bottom_panel", TTRC("Toggle OpenXR Action Map Bottom Panel"))); binding_modifier_inspector_plugin = Ref(memnew(EditorInspectorPluginBindingModifier)); EditorInspector::add_inspector_plugin(binding_modifier_inspector_plugin);