From 9318466183cdcbdcfb870b3e09734a4f0d8872a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Mon, 8 Sep 2025 12:21:39 +0300 Subject: [PATCH] Open translation CSV in the text editor instead of printing errors. --- editor/editor_node.cpp | 9 ++++++++- editor/editor_node.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index e268872beb8..c193483929c 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1528,7 +1528,12 @@ Error EditorNode::load_resource(const String &p_resource, bool p_ignore_broken_d Error err; Ref res; - if (ResourceLoader::exists(p_resource, "")) { + if (force_textfile_extensions.has(p_resource.get_extension())) { + res = ResourceCache::get_ref(p_resource); + if (res.is_null() || !res->is_class("TextFile")) { + res = ScriptEditor::get_singleton()->open_file(p_resource); + } + } else if (ResourceLoader::exists(p_resource, "")) { res = ResourceLoader::load(p_resource, "", ResourceFormatLoader::CACHE_MODE_REUSE, &err); } else if (textfile_extensions.has(p_resource.get_extension())) { res = ScriptEditor::get_singleton()->open_file(p_resource); @@ -7825,6 +7830,8 @@ EditorNode::EditorNode() { other_file_extensions.insert(E); } + force_textfile_extensions.insert("csv"); // CSV translation source, has `Translation` resource type, but not loadable as resource. + resource_preview = memnew(EditorResourcePreview); add_child(resource_preview); progress_dialog = memnew(ProgressDialog); diff --git a/editor/editor_node.h b/editor/editor_node.h index a44975d417d..1c1ea8ed11e 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -475,6 +475,7 @@ private: SceneImportSettingsDialog *scene_import_settings = nullptr; AudioStreamImportSettingsDialog *audio_stream_import_settings = nullptr; + HashSet force_textfile_extensions; HashSet textfile_extensions; HashSet other_file_extensions; HashSet file_dialogs;