diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-06-08 11:42:51 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-06-08 12:57:54 +0200 |
commit | c8ce7e34e22df1209a66d914383756c7ae2534bc (patch) | |
tree | 8e0c8216b19326b424ccd26a969b990104cd65ba | |
parent | 43f05bd6a0f98181b1055a1bd81d4bc8c3eae4ff (diff) |
i18n: Misc fixes translation strings
Adds some translator comments to solve some questions raised on Weblate.
29 files changed, 73 insertions, 72 deletions
diff --git a/core/math/expression.cpp b/core/math/expression.cpp index 97dc175d94..5a90f68b66 100644 --- a/core/math/expression.cpp +++ b/core/math/expression.cpp @@ -1245,7 +1245,7 @@ bool Expression::_execute(const Array &p_inputs, Object *p_instance, Expression: case Expression::ENode::TYPE_INPUT: { const Expression::InputNode *in = static_cast<const Expression::InputNode *>(p_node); if (in->index < 0 || in->index >= p_inputs.size()) { - r_error_str = vformat(RTR("Invalid input %i (not passed) in expression"), in->index); + r_error_str = vformat(RTR("Invalid input %d (not passed) in expression"), in->index); return true; } r_ret = p_inputs[in->index]; diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml index d5a62d2d75..59ad104ad1 100644 --- a/doc/classes/Color.xml +++ b/doc/classes/Color.xml @@ -157,10 +157,10 @@ Constructs a color from an [url=https://en.wikipedia.org/wiki/HSL_and_HSV]HSV profile[/url]. [code]h[/code] (hue), [code]s[/code] (saturation), and [code]v[/code] (value) are typically between 0 and 1. [codeblocks] [gdscript] - var c = Color.from_hsv(0.58, 0.5, 0.79, 0.8) + var color = Color.from_hsv(0.58, 0.5, 0.79, 0.8) [/gdscript] [csharp] - var c = Color.FromHsv(0.58f, 0.5f, 0.79f, 0.8f); + var color = Color.FromHsv(0.58f, 0.5f, 0.79f, 0.8f); [/csharp] [/codeblocks] </description> @@ -175,10 +175,10 @@ Constructs a color from an [url=https://bottosson.github.io/posts/colorpicker/]OK HSL profile[/url]. [code]h[/code] (hue), [code]s[/code] (saturation), and [code]v[/code] (value) are typically between 0 and 1. [codeblocks] [gdscript] - var c = Color.from_ok_hsl(0.58, 0.5, 0.79, 0.8) + var color = Color.from_ok_hsl(0.58, 0.5, 0.79, 0.8) [/gdscript] [csharp] - var c = Color.FromOkHsl(0.58f, 0.5f, 0.79f, 0.8f); + var color = Color.FromOkHsl(0.58f, 0.5f, 0.79f, 0.8f); [/csharp] [/codeblocks] </description> diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml index 7bbb2ae26c..48d0636df4 100644 --- a/doc/classes/EditorPlugin.xml +++ b/doc/classes/EditorPlugin.xml @@ -479,7 +479,7 @@ <method name="get_script_create_dialog"> <return type="ScriptCreateDialog" /> <description> - Gets the Editor's dialogue used for making scripts. + Gets the Editor's dialog used for making scripts. [b]Note:[/b] Users can configure it before use. [b]Warning:[/b] Removing and freeing this node will render a part of the editor useless and may cause a crash. </description> diff --git a/doc/classes/NodePath.xml b/doc/classes/NodePath.xml index 0d286a20b7..00c5dcaa3d 100644 --- a/doc/classes/NodePath.xml +++ b/doc/classes/NodePath.xml @@ -107,7 +107,7 @@ <return type="StringName" /> <argument index="0" name="idx" type="int" /> <description> - Gets the node name indicated by [code]idx[/code] (0 to [method get_name_count]). + Gets the node name indicated by [code]idx[/code] (0 to [method get_name_count] - 1). [codeblocks] [gdscript] var node_path = NodePath("Path2D/PathFollow2D/Sprite2D") diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index 266a2573de..2512dec4b3 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -550,7 +550,7 @@ Requests the OS to open a resource with the most appropriate program. For example: - [code]OS.shell_open("C:\\Users\name\Downloads")[/code] on Windows opens the file explorer at the user's Downloads folder. - [code]OS.shell_open("https://godotengine.org")[/code] opens the default web browser on the official Godot website. - - [code]OS.shell_open("mailto:example@example.com")[/code] opens the default email client with the "To" field set to [code]example@example.com[/code]. See [url=https://blog.escapecreative.com/customizing-mailto-links/]Customizing [code]mailto:[/code] Links[/url] for a list of fields that can be added. + - [code]OS.shell_open("mailto:example@example.com")[/code] opens the default email client with the "To" field set to [code]example@example.com[/code]. See [url=https://datatracker.ietf.org/doc/html/rfc2368]RFC 2368 - The [code]mailto[/code] URL scheme[/url] for a list of fields that can be added. Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] or [code]user://[/code] path into a system path for use with this method. [b]Note:[/b] This method is implemented on Android, iOS, HTML5, Linux, macOS and Windows. </description> diff --git a/doc/classes/Range.xml b/doc/classes/Range.xml index df6efd155a..22793e75d8 100644 --- a/doc/classes/Range.xml +++ b/doc/classes/Range.xml @@ -4,7 +4,7 @@ Abstract base class for range-based controls. </brief_description> <description> - Range is a base class for [Control] nodes that change a floating-point [i]value[/i] between a [i]minimum[/i] and a [i]maximum[/i], using [i]step[/i] and [i]page[/i], for example a [ScrollBar]. + Range is a base class for [Control] nodes that change a floating-point [member value] between a [member min_value] and [member max_value], using a configured [member step] and [member page] size. See e.g. [ScrollBar] and [Slider] for examples of higher level nodes using Range. </description> <tutorials> </tutorials> diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml index 841e792d31..d92121a950 100644 --- a/doc/classes/RenderingServer.xml +++ b/doc/classes/RenderingServer.xml @@ -3035,7 +3035,7 @@ $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600)) [/gdscript] [/codeblocks] - Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For a further optimization see, [method viewport_set_render_direct_to_screen]. + Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For further optimization, see [method viewport_set_render_direct_to_screen]. </description> </method> <method name="viewport_create"> diff --git a/doc/classes/SceneTreeTimer.xml b/doc/classes/SceneTreeTimer.xml index 427608ead3..2e9aeebceb 100644 --- a/doc/classes/SceneTreeTimer.xml +++ b/doc/classes/SceneTreeTimer.xml @@ -22,7 +22,7 @@ } [/csharp] [/codeblocks] - The timer will be automatically freed after its time elapses. + The timer will be automatically freed after its time elapses, so be aware that any reference you might have kept to it will become invalid. </description> <tutorials> </tutorials> diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index e01e6e1811..d81d629780 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -2619,34 +2619,33 @@ String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const { } if (key_idx != -1) { - String text = TTR("Time (s): ") + rtos(animation->track_get_key_time(track, key_idx)) + "\n"; + String text = TTR("Time (s):") + " " + rtos(animation->track_get_key_time(track, key_idx)) + "\n"; switch (animation->track_get_type(track)) { case Animation::TYPE_POSITION_3D: { Vector3 t = animation->track_get_key_value(track, key_idx); - text += "Position: " + String(t) + "\n"; + text += TTR("Position:") + " " + String(t) + "\n"; } break; case Animation::TYPE_ROTATION_3D: { Quaternion t = animation->track_get_key_value(track, key_idx); - text += "Rotation: " + String(t) + "\n"; + text += TTR("Rotation:") + " " + String(t) + "\n"; } break; case Animation::TYPE_SCALE_3D: { Vector3 t = animation->track_get_key_value(track, key_idx); - text += "Scale: " + String(t) + "\n"; + text += TTR("Scale:") + " " + String(t) + "\n"; } break; case Animation::TYPE_BLEND_SHAPE: { float t = animation->track_get_key_value(track, key_idx); - text += "Blend Shape: " + itos(t) + "\n"; + text += TTR("Blend Shape:") + " " + itos(t) + "\n"; } break; case Animation::TYPE_VALUE: { const Variant &v = animation->track_get_key_value(track, key_idx); - text += "Type: " + Variant::get_type_name(v.get_type()) + "\n"; + text += TTR("Type:") + " " + Variant::get_type_name(v.get_type()) + "\n"; Variant::Type valid_type = Variant::NIL; + text += TTR("Value:") + " " + String(v); if (!_is_value_key_valid(v, valid_type)) { - text += "Value: " + String(v) + " (Invalid, expected type: " + Variant::get_type_name(valid_type) + ")\n"; - } else { - text += "Value: " + String(v) + "\n"; + text += " " + vformat(TTR("(Invalid, expected type: %s)"), Variant::get_type_name(valid_type)); } - text += "Easing: " + rtos(animation->track_get_key_transition(track, key_idx)); + text += "\n" + TTR("Easing:") + " " + rtos(animation->track_get_key_transition(track, key_idx)); } break; case Animation::TYPE_METHOD: { @@ -2670,22 +2669,20 @@ String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const { } break; case Animation::TYPE_BEZIER: { float h = animation->bezier_track_get_key_value(track, key_idx); - text += "Value: " + rtos(h) + "\n"; + text += TTR("Value:") + " " + rtos(h) + "\n"; Vector2 ih = animation->bezier_track_get_key_in_handle(track, key_idx); - text += "In-Handle: " + ih + "\n"; + text += TTR("In-Handle:") + " " + ih + "\n"; Vector2 oh = animation->bezier_track_get_key_out_handle(track, key_idx); - text += "Out-Handle: " + oh + "\n"; + text += TTR("Out-Handle:") + " " + oh + "\n"; int hm = animation->bezier_track_get_key_handle_mode(track, key_idx); - text += "Handle mode: "; switch (hm) { case Animation::HANDLE_MODE_FREE: { - text += "Free"; + text += TTR("Handle mode: Free\n"); } break; case Animation::HANDLE_MODE_BALANCED: { - text += "Balanced"; + text += TTR("Handle mode: Balanced\n"); } break; } - text += "\n"; } break; case Animation::TYPE_AUDIO: { String stream_name = "null"; @@ -2700,15 +2697,15 @@ String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const { } } - text += "Stream: " + stream_name + "\n"; + text += TTR("Stream:") + " " + stream_name + "\n"; float so = animation->audio_track_get_key_start_offset(track, key_idx); - text += "Start (s): " + rtos(so) + "\n"; + text += TTR("Start (s):") + " " + rtos(so) + "\n"; float eo = animation->audio_track_get_key_end_offset(track, key_idx); - text += "End (s): " + rtos(eo) + "\n"; + text += TTR("End (s):") + " " + rtos(eo) + "\n"; } break; case Animation::TYPE_ANIMATION: { String name = animation->animation_track_get_key_animation(track, key_idx); - text += "Animation Clip: " + name + "\n"; + text += TTR("Animation Clip:") + " " + name + "\n"; } break; } return text; @@ -5073,7 +5070,7 @@ void AnimationTrackEditor::_add_method_key(const String &p_method) { } } - EditorNode::get_singleton()->show_warning(TTR("Method not found in object: ") + p_method); + EditorNode::get_singleton()->show_warning(TTR("Method not found in object:") + " " + p_method); } void AnimationTrackEditor::_key_selected(int p_key, bool p_single, int p_track) { diff --git a/editor/debugger/editor_debugger_inspector.cpp b/editor/debugger/editor_debugger_inspector.cpp index c5093494c6..0e3d424a4b 100644 --- a/editor/debugger/editor_debugger_inspector.cpp +++ b/editor/debugger/editor_debugger_inspector.cpp @@ -68,7 +68,7 @@ void EditorDebuggerRemoteObject::_get_property_list(List<PropertyInfo> *p_list) String EditorDebuggerRemoteObject::get_title() { if (remote_object_id.is_valid()) { - return TTR("Remote ") + String(type_name) + ": " + itos(remote_object_id); + return vformat(TTR("Remote %s:"), String(type_name)) + " " + itos(remote_object_id); } else { return "<null>"; } diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp index 8cb984af1b..9184846408 100644 --- a/editor/debugger/script_editor_debugger.cpp +++ b/editor/debugger/script_editor_debugger.cpp @@ -1486,7 +1486,7 @@ void ScriptEditorDebugger::_breakpoints_item_rmb_selected(const Vector2 &p_pos, breakpoints_menu->add_icon_item(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), TTR("Delete Breakpoint"), ACTION_DELETE_BREAKPOINT); file = selected->get_parent()->get_text(0); } - breakpoints_menu->add_icon_item(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), TTR("Delete All Breakpoints in: ") + file, ACTION_DELETE_BREAKPOINTS_IN_FILE); + breakpoints_menu->add_icon_item(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), TTR("Delete All Breakpoints in:") + " " + file, ACTION_DELETE_BREAKPOINTS_IN_FILE); breakpoints_menu->add_icon_item(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), TTR("Delete All Breakpoints"), ACTION_DELETE_ALL_BREAKPOINTS); breakpoints_menu->set_position(breakpoints_tree->get_global_position() + p_pos); diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 083f7cdc6c..89dc106717 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -1215,7 +1215,7 @@ void EditorAudioBuses::_load_default_layout() { } edited_path = layout_path; - file->set_text(String(TTR("Layout")) + ": " + layout_path.get_file()); + file->set_text(String(TTR("Layout:")) + " " + layout_path.get_file()); AudioServer::get_singleton()->set_bus_layout(state); _update_buses(); EditorNode::get_singleton()->get_undo_redo()->clear_history(); @@ -1231,7 +1231,7 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { } edited_path = p_string; - file->set_text(String(TTR("Layout")) + ": " + p_string.get_file()); + file->set_text(String(TTR("Layout:")) + " " + p_string.get_file()); AudioServer::get_singleton()->set_bus_layout(state); _update_buses(); EditorNode::get_singleton()->get_undo_redo()->clear_history(); @@ -1252,7 +1252,7 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { } edited_path = p_string; - file->set_text(String(TTR("Layout")) + ": " + p_string.get_file()); + file->set_text(String(TTR("Layout:")) + " " + p_string.get_file()); _update_buses(); EditorNode::get_singleton()->get_undo_redo()->clear_history(); call_deferred(SNAME("_select_layout")); @@ -1272,7 +1272,7 @@ EditorAudioBuses::EditorAudioBuses() { file = memnew(Label); String layout_path = ProjectSettings::get_singleton()->get("audio/buses/default_bus_layout"); - file->set_text(String(TTR("Layout")) + ": " + layout_path.get_file()); + file->set_text(String(TTR("Layout:")) + " " + layout_path.get_file()); file->set_clip_text(true); file->set_h_size_flags(SIZE_EXPAND_FILL); top_hb->add_child(file); diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index cdbe2fa1d3..b3a1f35218 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -249,7 +249,7 @@ void EditorPropertyArray::update_property() { HBoxContainer *hbox = memnew(HBoxContainer); vbox->add_child(hbox); - Label *label = memnew(Label(TTR("Size: "))); + Label *label = memnew(Label(TTR("Size:"))); label->set_h_size_flags(SIZE_EXPAND_FILL); hbox->add_child(label); diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index e682db69d1..db9193db06 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -723,6 +723,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { /* Extra config */ + // TRANSLATORS: Project Manager here refers to the tool used to create/manage Godot projects. EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "project_manager/sorting_order", 0, "Last Edited,Name,Path") if (p_extra_config.is_valid()) { diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index d60e336f0f..e1c9689f73 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -566,7 +566,7 @@ FindInFilesPanel::FindInFilesPanel() { HBoxContainer *hbc = memnew(HBoxContainer); Label *find_label = memnew(Label); - find_label->set_text(TTR("Find: ")); + find_label->set_text(TTR("Find:")); hbc->add_child(find_label); _search_text_label = memnew(Label); @@ -614,7 +614,7 @@ FindInFilesPanel::FindInFilesPanel() { _replace_container = memnew(HBoxContainer); Label *replace_label = memnew(Label); - replace_label->set_text(TTR("Replace: ")); + replace_label->set_text(TTR("Replace:")); _replace_container->add_child(replace_label); _replace_line_edit = memnew(LineEdit); diff --git a/editor/import/dynamic_font_import_settings.cpp b/editor/import/dynamic_font_import_settings.cpp index 97892e47d4..b361dcd036 100644 --- a/editor/import/dynamic_font_import_settings.cpp +++ b/editor/import/dynamic_font_import_settings.cpp @@ -625,7 +625,7 @@ void DynamicFontImportSettings::_change_text_opts() { void DynamicFontImportSettings::_glyph_clear() { selected_glyphs.clear(); - label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); _range_selected(); } @@ -654,7 +654,7 @@ void DynamicFontImportSettings::_glyph_text_selected() { } } TS->free_rid(text_rid); - label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); } _range_selected(); } @@ -681,7 +681,7 @@ void DynamicFontImportSettings::_glyph_selected() { item->clear_custom_bg_color(glyph_table->get_selected_column()); } } - label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); item = glyph_tree->get_selected(); ERR_FAIL_NULL(item); @@ -769,7 +769,7 @@ void DynamicFontImportSettings::_edit_range(int32_t p_start, int32_t p_end) { col = 0; } } - label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); } bool DynamicFontImportSettings::_char_update(int32_t p_char) { @@ -1292,7 +1292,7 @@ void DynamicFontImportSettings::open_settings(const String &p_path) { } } } - label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(selected_glyphs.size())); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(selected_glyphs.size())); import_settings_data->options = options_general; inspector_general->edit(import_settings_data.ptr()); @@ -1556,7 +1556,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { label_glyphs = memnew(Label); text_hb->add_child(label_glyphs); - label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(0)); + label_glyphs->set_text(TTR("Preloaded glyphs:") + " " + itos(0)); label_glyphs->set_custom_minimum_size(Size2(50 * EDSCALE, 0)); Button *btn_fill = memnew(Button); diff --git a/editor/import/resource_importer_imagefont.cpp b/editor/import/resource_importer_imagefont.cpp index bbcd336575..30c349d0f2 100644 --- a/editor/import/resource_importer_imagefont.cpp +++ b/editor/import/resource_importer_imagefont.cpp @@ -107,7 +107,7 @@ Error ResourceImporterImageFont::import(const String &p_source_file, const Strin Ref<Image> img; img.instantiate(); Error err = ImageLoader::load_image(p_source_file, img); - ERR_FAIL_COND_V_MSG(err != OK, ERR_FILE_CANT_READ, TTR("Can't load font texture: ") + "\"" + p_source_file + "\"."); + ERR_FAIL_COND_V_MSG(err != OK, ERR_FILE_CANT_READ, TTR("Can't load font texture:") + " \"" + p_source_file + "\"."); font->set_texture_image(0, Vector2i(base_size, 0), 0, img); int count = columns * rows; diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp index d9ff4f79de..99d1658405 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -1354,7 +1354,7 @@ SceneImportSettings::SceneImportSettings() { HBoxContainer *extension_hb = memnew(HBoxContainer); save_path->get_vbox()->add_child(extension_hb); extension_hb->add_spacer(); - extension_hb->add_child(memnew(Label(TTR("Save Extension: ")))); + extension_hb->add_child(memnew(Label(TTR("Save Extension:")))); external_extension_type = memnew(OptionButton); extension_hb->add_child(external_extension_type); external_extension_type->add_item(TTR("Text: *.tres")); diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index 765d963846..32c7a5db4d 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -1639,8 +1639,10 @@ AnimationPlayerEditor::AnimationPlayerEditor(AnimationPlayerEditorPlugin *p_plug onion_skinning = memnew(MenuButton); onion_skinning->set_tooltip(TTR("Onion Skinning Options")); onion_skinning->get_popup()->add_separator(TTR("Directions")); + // TRANSLATORS: Opposite of "Future", refers to a direction in animation onion skinning. onion_skinning->get_popup()->add_check_item(TTR("Past"), ONION_SKINNING_PAST); onion_skinning->get_popup()->set_item_checked(-1, true); + // TRANSLATORS: Opposite of "Past", refers to a direction in animation onion skinning. onion_skinning->get_popup()->add_check_item(TTR("Future"), ONION_SKINNING_FUTURE); onion_skinning->get_popup()->add_separator(TTR("Depth")); onion_skinning->get_popup()->add_radio_check_item(TTR("1 step"), ONION_SKINNING_1_STEP); diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index ece0c6a0ce..2ba2466646 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -1943,7 +1943,7 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { tool_erase_hb->add_child(tool_erase); top_hb->add_child(memnew(VSeparator)); - top_hb->add_child(memnew(Label(TTR("Transition: ")))); + top_hb->add_child(memnew(Label(TTR("Transition:")))); transition_mode = memnew(OptionButton); top_hb->add_child(transition_mode); diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 224d97795b..40894cdb8b 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -5171,11 +5171,12 @@ CanvasItemEditor::CanvasItemEditor() { hb->add_child(memnew(VSeparator)); view_menu = memnew(MenuButton); - view_menu->set_shortcut_context(this); + // TRANSLATORS: Noun, name of the 2D/3D View menus. view_menu->set_text(TTR("View")); + view_menu->set_switch_on_hover(true); + view_menu->set_shortcut_context(this); hb->add_child(view_menu); view_menu->get_popup()->connect("id_pressed", callable_mp(this, &CanvasItemEditor::_popup_callback)); - view_menu->set_switch_on_hover(true); p = view_menu->get_popup(); p->set_hide_on_checkable_item_selection(false); diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp index b022fcc1c9..fa971679e6 100644 --- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp +++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp @@ -213,7 +213,7 @@ GPUParticles3DEditorBase::GPUParticles3DEditorBase() { emission_fill->add_item(TTR("Surface Points")); emission_fill->add_item(TTR("Surface Points+Normal (Directed)")); emission_fill->add_item(TTR("Volume")); - emd_vb->add_margin_child(TTR("Emission Source: "), emission_fill); + emd_vb->add_margin_child(TTR("Emission Source:"), emission_fill); emission_dialog->get_ok_button()->set_text(TTR("Create")); emission_dialog->connect("confirmed", callable_mp(this, &GPUParticles3DEditorBase::_generate_emission_points)); diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 0a3303390a..ef31e132b3 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -4167,7 +4167,8 @@ void Node3DEditorViewport::update_transform(Point2 p_mousepos, bool p_shift) { Vector3 motion_snapped = motion; motion_snapped.snap(Vector3(snap, snap, snap)); // This might not be necessary anymore after issue #288 is solved (in 4.0?). - set_message(TTR("Scaling: ") + "(" + String::num(motion_snapped.x, snap_step_decimals) + ", " + + // TRANSLATORS: Refers to changing the scale of a node in the 3D editor. + set_message(TTR("Scaling:") + " (" + String::num(motion_snapped.x, snap_step_decimals) + ", " + String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")"); motion = _edit.original.basis.inverse().xform(motion); @@ -4267,7 +4268,8 @@ void Node3DEditorViewport::update_transform(Point2 p_mousepos, bool p_shift) { } Vector3 motion_snapped = motion; motion_snapped.snap(Vector3(snap, snap, snap)); - set_message(TTR("Translating: ") + "(" + String::num(motion_snapped.x, snap_step_decimals) + ", " + + // TRANSLATORS: Refers to changing the position of a node in the 3D editor. + set_message(TTR("Translating:") + " (" + String::num(motion_snapped.x, snap_step_decimals) + ", " + String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")"); motion = spatial_editor->get_gizmo_transform().basis.inverse().xform(motion); @@ -7711,6 +7713,7 @@ Node3DEditor::Node3DEditor() { p->connect("id_pressed", callable_mp(this, &Node3DEditor::_menu_item_pressed)); view_menu = memnew(MenuButton); + // TRANSLATORS: Noun, name of the 2D/3D View menus. view_menu->set_text(TTR("View")); view_menu->set_switch_on_hover(true); view_menu->set_shortcut_context(this); diff --git a/editor/plugins/occluder_instance_3d_editor_plugin.cpp b/editor/plugins/occluder_instance_3d_editor_plugin.cpp index 79cf4c394e..d5fc51aea4 100644 --- a/editor/plugins/occluder_instance_3d_editor_plugin.cpp +++ b/editor/plugins/occluder_instance_3d_editor_plugin.cpp @@ -63,7 +63,7 @@ void OccluderInstance3DEditorPlugin::_bake_select_file(const String &p_file) { break; } case OccluderInstance3D::BAKE_ERROR_CANT_SAVE: { - EditorNode::get_singleton()->show_warning(TTR("Could not save the new occluder at the specified path: ") + p_file); + EditorNode::get_singleton()->show_warning(TTR("Could not save the new occluder at the specified path:") + " " + p_file); break; } default: { diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp index 16e874d7e2..79fc304242 100644 --- a/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/editor/plugins/resource_preloader_editor_plugin.cpp @@ -420,11 +420,8 @@ ResourcePreloaderEditorPlugin::ResourcePreloaderEditorPlugin() { preloader_editor = memnew(ResourcePreloaderEditor); preloader_editor->set_custom_minimum_size(Size2(0, 250) * EDSCALE); - button = EditorNode::get_singleton()->add_bottom_panel_item(TTR("ResourcePreloader"), preloader_editor); + button = EditorNode::get_singleton()->add_bottom_panel_item("ResourcePreloader", preloader_editor); button->hide(); - - //preloader_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END); - //preloader_editor->set_margin( MARGIN_TOP, 120 ); } ResourcePreloaderEditorPlugin::~ResourcePreloaderEditorPlugin() { diff --git a/editor/plugins/sprite_2d_editor_plugin.cpp b/editor/plugins/sprite_2d_editor_plugin.cpp index 6a63875324..ad817f9a41 100644 --- a/editor/plugins/sprite_2d_editor_plugin.cpp +++ b/editor/plugins/sprite_2d_editor_plugin.cpp @@ -546,7 +546,7 @@ Sprite2DEditor::Sprite2DEditor() { debug_uv_dialog->connect("confirmed", callable_mp(this, &Sprite2DEditor::_create_node)); HBoxContainer *hb = memnew(HBoxContainer); - hb->add_child(memnew(Label(TTR("Simplification: ")))); + hb->add_child(memnew(Label(TTR("Simplification:")))); simplification = memnew(SpinBox); simplification->set_min(0.01); simplification->set_max(10.00); @@ -554,7 +554,7 @@ Sprite2DEditor::Sprite2DEditor() { simplification->set_value(2); hb->add_child(simplification); hb->add_spacer(); - hb->add_child(memnew(Label(TTR("Shrink (Pixels): ")))); + hb->add_child(memnew(Label(TTR("Shrink (Pixels):")))); shrink_pixels = memnew(SpinBox); shrink_pixels->set_min(0); shrink_pixels->set_max(10); @@ -562,7 +562,7 @@ Sprite2DEditor::Sprite2DEditor() { shrink_pixels->set_value(0); hb->add_child(shrink_pixels); hb->add_spacer(); - hb->add_child(memnew(Label(TTR("Grow (Pixels): ")))); + hb->add_child(memnew(Label(TTR("Grow (Pixels):")))); grow_pixels = memnew(SpinBox); grow_pixels->set_min(0); grow_pixels->set_max(10); diff --git a/modules/visual_script/visual_script.cpp b/modules/visual_script/visual_script.cpp index 24bb22960e..30b64d0a7b 100644 --- a/modules/visual_script/visual_script.cpp +++ b/modules/visual_script/visual_script.cpp @@ -1528,7 +1528,7 @@ Variant VisualScriptInstance::_call_internal(const StringName &p_method, void *p // If no exit bit was set, and has sequence outputs, guess next node. if (output >= node->sequence_output_count) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - error_str = RTR("Node returned an invalid sequence output: ") + itos(output); + error_str = RTR("Node returned an invalid sequence output:") + " " + itos(output); error = true; break; } @@ -1594,7 +1594,7 @@ Variant VisualScriptInstance::_call_internal(const StringName &p_method, void *p // Check for stack overflow. if (flow_stack_pos + 1 >= flow_max) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - error_str = RTR("Stack overflow with stack depth: ") + itos(output); + error_str = RTR("Stack overflow with stack depth:") + " " + itos(output); error = true; break; } diff --git a/modules/visual_script/visual_script_flow_control.cpp b/modules/visual_script/visual_script_flow_control.cpp index 0e63753720..bbbb995635 100644 --- a/modules/visual_script/visual_script_flow_control.cpp +++ b/modules/visual_script/visual_script_flow_control.cpp @@ -391,7 +391,7 @@ public: if (!valid) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - r_error_str = RTR("Input type not iterable: ") + Variant::get_type_name(p_inputs[0]->get_type()); + r_error_str = RTR("Input type not iterable:") + " " + Variant::get_type_name(p_inputs[0]->get_type()); return 0; } @@ -414,7 +414,7 @@ public: if (!valid) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - r_error_str = RTR("Iterator became invalid: ") + Variant::get_type_name(p_inputs[0]->get_type()); + r_error_str = RTR("Iterator became invalid:") + " " + Variant::get_type_name(p_inputs[0]->get_type()); return 0; } diff --git a/modules/visual_script/visual_script_nodes.cpp b/modules/visual_script/visual_script_nodes.cpp index ac33526ddc..2dfc6da181 100644 --- a/modules/visual_script/visual_script_nodes.cpp +++ b/modules/visual_script/visual_script_nodes.cpp @@ -1116,9 +1116,9 @@ public: r_error_str = *p_outputs[0]; } else { if (unary) { - r_error_str = String(Variant::get_operator_name(op)) + RTR(": Invalid argument of type: ") + Variant::get_type_name(p_inputs[0]->get_type()); + r_error_str = String(Variant::get_operator_name(op)) + ": " + RTR("Invalid argument of type:") + " " + Variant::get_type_name(p_inputs[0]->get_type()); } else { - r_error_str = String(Variant::get_operator_name(op)) + RTR(": Invalid arguments: ") + "A: " + Variant::get_type_name(p_inputs[0]->get_type()) + " B: " + Variant::get_type_name(p_inputs[1]->get_type()); + r_error_str = String(Variant::get_operator_name(op)) + ": " + RTR("Invalid arguments:") + " A: " + Variant::get_type_name(p_inputs[0]->get_type()) + ", B: " + Variant::get_type_name(p_inputs[1]->get_type()); } } } @@ -1335,7 +1335,7 @@ public: virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override { if (!instance->get_variable(variable, p_outputs[0])) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - r_error_str = RTR("VariableGet not found in script: ") + "'" + String(variable) + "'"; + r_error_str = RTR("VariableGet not found in script:") + " '" + String(variable) + "'"; return 0; } return 0; @@ -1447,7 +1447,7 @@ public: virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) override { if (!instance->set_variable(variable, *p_inputs[0])) { r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD; - r_error_str = RTR("VariableSet not found in script: ") + "'" + String(variable) + "'"; + r_error_str = RTR("VariableSet not found in script:") + " '" + String(variable) + "'"; } return 0; |