1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-03 16:55:53 +00:00

Improve auto-translation of Debugger

This commit is contained in:
kobewi
2025-07-09 23:21:30 +02:00
parent 68410acc61
commit 448a605cec
8 changed files with 171 additions and 121 deletions

View File

@@ -155,7 +155,7 @@ void ScriptEditorDebugger::debug_continue() {
void ScriptEditorDebugger::update_tabs() {
if (error_count == 0 && warning_count == 0) {
errors_tab->set_name(TTR("Errors"));
errors_tab->set_name(TTRC("Errors"));
tabs->set_tab_icon(tabs->get_tab_idx_from_control(errors_tab), Ref<Texture2D>());
} else {
errors_tab->set_name(TTR("Errors") + " (" + itos(error_count + warning_count) + ")");
@@ -402,7 +402,7 @@ void ScriptEditorDebugger::_msg_debug_exit(uint64_t p_thread_id, const Array &p_
visual_profiler->set_enabled(true);
_set_reason_text(TTR("Execution resumed."), MESSAGE_SUCCESS);
_set_reason_text(TTRC("Execution resumed."), MESSAGE_SUCCESS);
emit_signal(SNAME("breaked"), false, false, "", false);
_mute_audio_on_break(false);
@@ -636,7 +636,7 @@ void ScriptEditorDebugger::_msg_error(uint64_t p_thread_id, const Array &p_data)
// Also provide the relevant details as tooltip to quickly check without
// uncollapsing the tree.
String tooltip = oe.warning ? TTR("Warning:") : TTR("Error:");
String tooltip = oe.warning ? TTRC("Warning:") : TTRC("Error:");
TreeItem *error = error_tree->create_item(r);
if (oe.warning) {
@@ -1079,6 +1079,18 @@ void ScriptEditorDebugger::_notification(int p_what) {
connect("started", callable_mp(expression_evaluator, &EditorExpressionEvaluator::on_start));
} break;
case NOTIFICATION_TRANSLATION_CHANGED: {
if (is_ready()) {
for (TreeItem *file_item = breakpoints_tree->get_root()->get_first_child(); file_item; file_item = file_item->get_next()) {
for (TreeItem *breakpoint_item = file_item->get_first_child(); breakpoint_item; breakpoint_item = breakpoint_item->get_next()) {
int line = breakpoint_item->get_meta("line");
breakpoint_item->set_text(0, vformat(TTR("Line %d"), line));
}
}
update_tabs();
}
} break;
case NOTIFICATION_THEME_CHANGED: {
tabs->add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("DebuggerPanel"), EditorStringName(EditorStyles)));
@@ -1243,7 +1255,7 @@ void ScriptEditorDebugger::start(Ref<RemoteDebuggerPeer> p_peer) {
set_process(true);
camera_override = CameraOverride::OVERRIDE_NONE;
_set_reason_text(TTR("Debug session started."), MESSAGE_SUCCESS);
_set_reason_text(TTRC("Debug session started."), MESSAGE_SUCCESS);
_update_buttons_state();
Array quit_keys = DebuggerMarshalls::serialize_key_shortcut(ED_GET_SHORTCUT("editor/stop_running_project"));
@@ -1298,7 +1310,7 @@ void ScriptEditorDebugger::_update_buttons_state() {
void ScriptEditorDebugger::_stop_and_notify() {
stop();
emit_signal(SNAME("stopped"));
_set_reason_text(TTR("Debug session closed."), MESSAGE_WARNING);
_set_reason_text(TTRC("Debug session closed."), MESSAGE_WARNING);
}
void ScriptEditorDebugger::stop() {
@@ -1842,11 +1854,12 @@ void ScriptEditorDebugger::_breakpoints_item_rmb_selected(const Vector2 &p_pos,
const TreeItem *selected = breakpoints_tree->get_selected();
String file = selected->get_text(0);
if (selected->has_meta("line")) {
breakpoints_menu->add_icon_item(get_editor_theme_icon(SNAME("Remove")), TTR("Delete Breakpoint"), ACTION_DELETE_BREAKPOINT);
breakpoints_menu->add_icon_item(get_editor_theme_icon(SNAME("Remove")), TTRC("Delete Breakpoint"), ACTION_DELETE_BREAKPOINT);
file = selected->get_parent()->get_text(0);
}
breakpoints_menu->add_icon_item(get_editor_theme_icon(SNAME("Remove")), TTR("Delete All Breakpoints in:") + " " + file, ACTION_DELETE_BREAKPOINTS_IN_FILE);
breakpoints_menu->add_icon_item(get_editor_theme_icon(SNAME("Remove")), TTR("Delete All Breakpoints"), ACTION_DELETE_ALL_BREAKPOINTS);
breakpoints_menu->set_item_auto_translate_mode(-1, AUTO_TRANSLATE_MODE_DISABLED);
breakpoints_menu->add_icon_item(get_editor_theme_icon(SNAME("Remove")), TTRC("Delete All Breakpoints"), ACTION_DELETE_ALL_BREAKPOINTS);
breakpoints_menu->set_position(get_screen_position() + get_local_mouse_position());
breakpoints_menu->popup();
@@ -1862,8 +1875,8 @@ void ScriptEditorDebugger::_error_tree_item_rmb_selected(const Vector2 &p_pos, M
item_menu->reset_size();
if (error_tree->is_anything_selected()) {
item_menu->add_icon_item(get_editor_theme_icon(SNAME("ActionCopy")), TTR("Copy Error"), ACTION_COPY_ERROR);
item_menu->add_icon_item(get_editor_theme_icon(SNAME("ExternalLink")), TTR("Open C++ Source on GitHub"), ACTION_OPEN_SOURCE);
item_menu->add_icon_item(get_editor_theme_icon(SNAME("ActionCopy")), TTRC("Copy Error"), ACTION_COPY_ERROR);
item_menu->add_icon_item(get_editor_theme_icon(SNAME("ExternalLink")), TTRC("Open C++ Source on GitHub"), ACTION_OPEN_SOURCE);
}
if (item_menu->get_item_count() > 0) {
@@ -1962,7 +1975,7 @@ void ScriptEditorDebugger::_item_menu_id_pressed(int p_option) {
}
void ScriptEditorDebugger::_tab_changed(int p_tab) {
if (tabs->get_tab_title(p_tab) == TTR("Video RAM")) {
if (tabs->get_tab_title(p_tab) == "Video RAM") {
// "Video RAM" tab was clicked, refresh the data it's displaying when entering the tab.
_video_mem_request();
}
@@ -2044,9 +2057,9 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
InspectorDock::get_inspector_singleton()->connect("object_id_selected", callable_mp(this, &ScriptEditorDebugger::_remote_object_selected));
EditorFileSystem::get_singleton()->connect("resources_reimported", callable_mp(this, &ScriptEditorDebugger::_resources_reimported));
{ //debugger
{ // Debugger.
VBoxContainer *vbc = memnew(VBoxContainer);
vbc->set_name(TTR("Stack Trace"));
vbc->set_name(TTRC("Stack Trace"));
Control *dbg = vbc;
HBoxContainer *hbc = memnew(HBoxContainer);
@@ -2066,12 +2079,12 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
skip_breakpoints = memnew(Button);
skip_breakpoints->set_theme_type_variation(SceneStringName(FlatButton));
hbc->add_child(skip_breakpoints);
skip_breakpoints->set_tooltip_text(TTR("Skip Breakpoints"));
skip_breakpoints->set_tooltip_text(TTRC("Skip Breakpoints"));
skip_breakpoints->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::debug_skip_breakpoints));
ignore_error_breaks = memnew(Button);
ignore_error_breaks->set_theme_type_variation(SceneStringName(FlatButton));
ignore_error_breaks->set_tooltip_text(TTR("Ignore Error Breaks"));
ignore_error_breaks->set_tooltip_text(TTRC("Ignore Error Breaks"));
hbc->add_child(ignore_error_breaks);
ignore_error_breaks->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::debug_ignore_error_breaks));
@@ -2080,7 +2093,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
copy = memnew(Button);
copy->set_theme_type_variation(SceneStringName(FlatButton));
hbc->add_child(copy);
copy->set_tooltip_text(TTR("Copy Error"));
copy->set_tooltip_text(TTRC("Copy Error"));
copy->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::debug_copy));
hbc->add_child(memnew(VSeparator));
@@ -2088,14 +2101,14 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
step = memnew(Button);
step->set_theme_type_variation(SceneStringName(FlatButton));
hbc->add_child(step);
step->set_tooltip_text(TTR("Step Into"));
step->set_tooltip_text(TTRC("Step Into"));
step->set_shortcut(ED_GET_SHORTCUT("debugger/step_into"));
step->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::debug_step));
next = memnew(Button);
next->set_theme_type_variation(SceneStringName(FlatButton));
hbc->add_child(next);
next->set_tooltip_text(TTR("Step Over"));
next->set_tooltip_text(TTRC("Step Over"));
next->set_shortcut(ED_GET_SHORTCUT("debugger/step_over"));
next->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::debug_next));
@@ -2111,14 +2124,14 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
dobreak = memnew(Button);
dobreak->set_theme_type_variation(SceneStringName(FlatButton));
hbc->add_child(dobreak);
dobreak->set_tooltip_text(TTR("Break"));
dobreak->set_tooltip_text(TTRC("Break"));
dobreak->set_shortcut(ED_GET_SHORTCUT("debugger/break"));
dobreak->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::debug_break));
docontinue = memnew(Button);
docontinue->set_theme_type_variation(SceneStringName(FlatButton));
hbc->add_child(docontinue);
docontinue->set_tooltip_text(TTR("Continue"));
docontinue->set_tooltip_text(TTRC("Continue"));
docontinue->set_shortcut(ED_GET_SHORTCUT("debugger/continue"));
docontinue->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::debug_continue));
@@ -2137,7 +2150,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
sc->add_child(stack_vb);
HBoxContainer *thread_hb = memnew(HBoxContainer);
stack_vb->add_child(thread_hb);
thread_hb->add_child(memnew(Label(TTR("Thread:"))));
thread_hb->add_child(memnew(Label(TTRC("Thread:"))));
threads = memnew(OptionButton);
thread_hb->add_child(threads);
threads->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
@@ -2149,7 +2162,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
stack_dump->set_allow_reselect(true);
stack_dump->set_columns(1);
stack_dump->set_column_titles_visible(true);
stack_dump->set_column_title(0, TTR("Stack Frames"));
stack_dump->set_column_title(0, TTRC("Stack Frames"));
stack_dump->set_hide_root(true);
stack_dump->set_v_size_flags(SIZE_EXPAND_FILL);
stack_dump->set_theme_type_variation("TreeSecondary");
@@ -2166,7 +2179,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
search = memnew(LineEdit);
search->set_h_size_flags(Control::SIZE_EXPAND_FILL);
search->set_placeholder(TTR("Filter Stack Variables"));
search->set_placeholder(TTRC("Filter Stack Variables"));
search->set_accessibility_name(TTRC("Filter Stack Variables"));
search->set_clear_button_enabled(true);
tools_hb->add_child(search);
@@ -2187,7 +2200,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
breakpoints_tree->set_custom_minimum_size(Size2(100, 0) * EDSCALE);
breakpoints_tree->set_h_size_flags(SIZE_EXPAND_FILL);
breakpoints_tree->set_column_titles_visible(true);
breakpoints_tree->set_column_title(0, TTR("Breakpoints"));
breakpoints_tree->set_column_title(0, TTRC("Breakpoints"));
breakpoints_tree->set_allow_reselect(true);
breakpoints_tree->set_allow_rmb_select(true);
breakpoints_tree->set_hide_root(true);
@@ -2203,21 +2216,21 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
breakpoints_tree->add_child(breakpoints_menu);
}
{ //errors
{ // Errors.
errors_tab = memnew(VBoxContainer);
errors_tab->set_name(TTR("Errors"));
errors_tab->set_name(TTRC("Errors"));
HBoxContainer *error_hbox = memnew(HBoxContainer);
errors_tab->add_child(error_hbox);
expand_all_button = memnew(Button);
expand_all_button->set_text(TTR("Expand All"));
expand_all_button->set_text(TTRC("Expand All"));
expand_all_button->set_disabled(true);
expand_all_button->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::_expand_errors_list));
error_hbox->add_child(expand_all_button);
collapse_all_button = memnew(Button);
collapse_all_button->set_text(TTR("Collapse All"));
collapse_all_button->set_text(TTRC("Collapse All"));
collapse_all_button->set_disabled(true);
collapse_all_button->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::_collapse_errors_list));
error_hbox->add_child(collapse_all_button);
@@ -2227,7 +2240,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
error_hbox->add_child(space);
clear_button = memnew(Button);
clear_button->set_text(TTR("Clear"));
clear_button->set_text(TTRC("Clear"));
clear_button->set_h_size_flags(0);
clear_button->set_disabled(true);
clear_button->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::_clear_errors_list));
@@ -2267,14 +2280,14 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
{ // Expression evaluator
expression_evaluator = memnew(EditorExpressionEvaluator);
expression_evaluator->set_name(TTR("Evaluator"));
expression_evaluator->set_name(TTRC("Evaluator"));
expression_evaluator->set_editor_debugger(this);
tabs->add_child(expression_evaluator);
}
{ //profiler
profiler = memnew(EditorProfiler);
profiler->set_name(TTR("Profiler"));
profiler->set_name(TTRC("Profiler"));
tabs->add_child(profiler);
profiler->connect("enable_profiling", callable_mp(this, &ScriptEditorDebugger::_profiler_activate).bind(PROFILER_SCRIPTS_SERVERS));
profiler->connect("break_request", callable_mp(this, &ScriptEditorDebugger::_profiler_seeked));
@@ -2282,7 +2295,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
{ //frame profiler
visual_profiler = memnew(EditorVisualProfiler);
visual_profiler->set_name(TTR("Visual Profiler"));
visual_profiler->set_name(TTRC("Visual Profiler"));
tabs->add_child(visual_profiler);
visual_profiler->connect("enable_profiling", callable_mp(this, &ScriptEditorDebugger::_profiler_activate).bind(PROFILER_VISUAL));
}
@@ -2305,7 +2318,7 @@ ScriptEditorDebugger::ScriptEditorDebugger() {
vmem_notice_icon->set_stretch_mode(TextureRect::STRETCH_KEEP_CENTERED);
vmem_notice_icon->set_h_size_flags(SIZE_SHRINK_CENTER);
vmem_notice_icon->set_visible(true);
vmem_notice_icon->set_tooltip_text(TTR(R"(Notice:
vmem_notice_icon->set_tooltip_text(TTRC(R"(Notice:
This tool only reports memory allocations tracked by the engine.
Therefore, total VRAM usage is inaccurate compared to what the Monitors tab or external tools can report.
Instead, use the monitors tab to obtain more precise VRAM usage.
@@ -2321,7 +2334,7 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
vmem_hb->add_child(space);
}
vmem_hb->add_child(memnew(Label(TTR("Total:") + " ")));
vmem_hb->add_child(memnew(Label(TTRC("Total:"))));
vmem_total = memnew(LineEdit);
vmem_total->set_editable(false);
vmem_total->set_accessibility_name(TTRC("Video RAM Total"));
@@ -2333,7 +2346,7 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
vmem_hb->add_child(vmem_refresh);
vmem_export = memnew(Button);
vmem_export->set_theme_type_variation(SceneStringName(FlatButton));
vmem_export->set_tooltip_text(TTR("Export list to a CSV file"));
vmem_export->set_tooltip_text(TTRC("Export list to a CSV file"));
vmem_hb->add_child(vmem_export);
vmem_vb->add_child(vmem_hb);
vmem_refresh->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::_video_mem_request));
@@ -2347,19 +2360,19 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
vmmc->set_v_size_flags(SIZE_EXPAND_FILL);
vmem_vb->add_child(vmmc);
vmem_vb->set_name(TTR("Video RAM"));
vmem_vb->set_name(TTRC("Video RAM"));
vmem_tree->set_columns(4);
vmem_tree->set_column_titles_visible(true);
vmem_tree->set_column_title(0, TTR("Resource Path"));
vmem_tree->set_column_title(0, TTRC("Resource Path"));
vmem_tree->set_column_expand(0, true);
vmem_tree->set_column_expand(1, false);
vmem_tree->set_column_title(1, TTR("Type"));
vmem_tree->set_column_title(1, TTRC("Type"));
vmem_tree->set_column_custom_minimum_width(1, 100 * EDSCALE);
vmem_tree->set_column_expand(2, false);
vmem_tree->set_column_title(2, TTR("Format"));
vmem_tree->set_column_title(2, TTRC("Format"));
vmem_tree->set_column_custom_minimum_width(2, 150 * EDSCALE);
vmem_tree->set_column_expand(3, false);
vmem_tree->set_column_title(3, TTR("Usage"));
vmem_tree->set_column_title(3, TTRC("Usage"));
vmem_tree->set_column_custom_minimum_width(3, 80 * EDSCALE);
vmem_tree->set_hide_root(true);
vmem_tree->connect("item_activated", callable_mp(this, &ScriptEditorDebugger::_vmem_item_activated));
@@ -2369,7 +2382,7 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
{ // misc
VBoxContainer *misc = memnew(VBoxContainer);
misc->set_name(TTR("Misc"));
misc->set_name(TTRC("Misc"));
tabs->add_child(misc);
GridContainer *info_left = memnew(GridContainer);
@@ -2379,12 +2392,12 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
clicked_ctrl->set_editable(false);
clicked_ctrl->set_accessibility_name(TTRC("Clicked Control:"));
clicked_ctrl->set_h_size_flags(SIZE_EXPAND_FILL);
info_left->add_child(memnew(Label(TTR("Clicked Control:"))));
info_left->add_child(memnew(Label(TTRC("Clicked Control:"))));
info_left->add_child(clicked_ctrl);
clicked_ctrl_type = memnew(LineEdit);
clicked_ctrl_type->set_editable(false);
clicked_ctrl_type->set_accessibility_name(TTRC("Clicked Control Type:"));
info_left->add_child(memnew(Label(TTR("Clicked Control Type:"))));
info_left->add_child(memnew(Label(TTRC("Clicked Control Type:"))));
info_left->add_child(clicked_ctrl_type);
scene_tree = memnew(SceneDebuggerTree);
@@ -2395,12 +2408,12 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
{
HBoxContainer *lehb = memnew(HBoxContainer);
Label *l = memnew(Label(TTR("Live Edit Root:")));
Label *l = memnew(Label(TTRC("Live Edit Root:")));
info_left->add_child(l);
lehb->add_child(live_edit_root);
le_set = memnew(Button(TTR("Set From Tree")));
le_set = memnew(Button(TTRC("Set From Tree")));
lehb->add_child(le_set);
le_clear = memnew(Button(TTR("Clear")));
le_clear = memnew(Button(TTRC("Clear")));
lehb->add_child(le_clear);
info_left->add_child(lehb);
}
@@ -2409,7 +2422,7 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
HBoxContainer *buttons = memnew(HBoxContainer);
export_csv = memnew(Button(TTR("Export measures as CSV")));
export_csv = memnew(Button(TTRC("Export measures as CSV")));
export_csv->connect(SceneStringName(pressed), callable_mp(this, &ScriptEditorDebugger::_export_csv));
buttons->add_child(export_csv);