From 1b087104e572d3cb9334a3b468dbe81442b54a1f Mon Sep 17 00:00:00 2001 From: Haoyu Qiu Date: Tue, 26 Aug 2025 13:08:03 +0800 Subject: [PATCH] Make POT generation use tooltip_auto_translate_mode --- ...packed_scene_translation_parser_plugin.cpp | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/editor/translations/packed_scene_translation_parser_plugin.cpp b/editor/translations/packed_scene_translation_parser_plugin.cpp index 3c47c7e40b..a3061353b6 100644 --- a/editor/translations/packed_scene_translation_parser_plugin.cpp +++ b/editor/translations/packed_scene_translation_parser_plugin.cpp @@ -113,6 +113,32 @@ Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path, } } + // Handle the `tooltip_auto_translate_mode` property separately. + String tooltip_text; + bool tooltip_auto_translating = auto_translating; + for (int j = 0; j < state->get_node_property_count(i); j++) { + String property = state->get_node_property_name(i, j); + if (property == "tooltip_text") { + tooltip_text = (String)state->get_node_property_value(i, j); + continue; + } + if (property == "tooltip_auto_translate_mode") { + int mode = (int)state->get_node_property_value(i, j); + switch (mode) { + case Node::AUTO_TRANSLATE_MODE_ALWAYS: { + tooltip_auto_translating = true; + } break; + case Node::AUTO_TRANSLATE_MODE_DISABLED: { + tooltip_auto_translating = false; + } break; + } + continue; + } + } + if (!tooltip_text.is_empty() && tooltip_auto_translating) { + r_translations->push_back({ tooltip_text }); + } + // Parse the names of children of `TabContainer`s, as they are used for tab titles. if (!tabcontainer_paths.is_empty()) { if (!parent_path.begins_with(tabcontainer_paths[tabcontainer_paths.size() - 1])) { @@ -208,4 +234,5 @@ PackedSceneEditorTranslationParserPlugin::PackedSceneEditorTranslationParserPlug exception_list.insert("LineEdit", { "text" }); exception_list.insert("TextEdit", { "text" }); exception_list.insert("CodeEdit", { "text" }); + exception_list.insert("Control", { "tooltip_text" }); }