diff options
Diffstat (limited to 'editor')
120 files changed, 4977 insertions, 3717 deletions
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index facd57418d..20d29d47f4 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -477,11 +477,6 @@ ConnectDialog::ConnectDialog() { advanced->set_text(TTR("Advanced")); advanced->connect("pressed", callable_mp(this, &ConnectDialog::_advanced_pressed)); - // Add spacing so the tree and inspector are the same size. - Control *spacing = memnew(Control); - spacing->set_custom_minimum_size(Size2(0, 4) * EDSCALE); - vbc_right->add_child(spacing); - deferred = memnew(CheckBox); deferred->set_h_size_flags(0); deferred->set_text(TTR("Deferred")); @@ -528,6 +523,10 @@ struct _ConnectionsDockMethodInfoSort { } }; +void ConnectionsDock::_filter_changed(const String &p_text) { + update_tree(); +} + /* * Post-ConnectDialog callback for creating/editing connections. * Creates or edits connections based on state of the ConnectDialog when "Connect" is pressed. @@ -715,7 +714,7 @@ void ConnectionsDock::_open_connection_dialog(TreeItem &item) { const String &signalname = signal; String midname = selectedNode->get_name(); for (int i = 0; i < midname.length(); i++) { //TODO: Regex filter may be cleaner. - CharType c = midname[i]; + char32_t c = midname[i]; if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')) { if (c == ' ') { // Replace spaces with underlines. @@ -903,6 +902,7 @@ void ConnectionsDock::update_tree() { String name; if (!did_script) { + // Get script signals (including signals from any base scripts). Ref<Script> scr = selectedNode->get_script(); if (scr.is_valid()) { scr->get_script_signal_list(&node_signals2); @@ -928,15 +928,16 @@ void ConnectionsDock::update_tree() { icon = get_theme_icon("Object", "EditorIcons"); } - TreeItem *pitem = nullptr; + TreeItem *section_item = nullptr; + // Create subsections. if (node_signals2.size()) { - pitem = tree->create_item(root); - pitem->set_text(0, name); - pitem->set_icon(0, icon); - pitem->set_selectable(0, false); - pitem->set_editable(0, false); - pitem->set_custom_bg_color(0, get_theme_color("prop_subsection", "Editor")); + section_item = tree->create_item(root); + section_item->set_text(0, name); + section_item->set_icon(0, icon); + section_item->set_selectable(0, false); + section_item->set_editable(0, false); + section_item->set_custom_bg_color(0, get_theme_color("prop_subsection", "Editor")); node_signals2.sort(); } @@ -946,6 +947,12 @@ void ConnectionsDock::update_tree() { StringName signal_name = mi.name; String signaldesc = "("; PackedStringArray argnames; + + String filter_text = search_box->get_text(); + if (!filter_text.is_subsequence_ofi(signal_name)) { + continue; + } + if (mi.arguments.size()) { for (int i = 0; i < mi.arguments.size(); i++) { PropertyInfo &pi = mi.arguments[i]; @@ -965,13 +972,14 @@ void ConnectionsDock::update_tree() { } signaldesc += ")"; - TreeItem *item = tree->create_item(pitem); - item->set_text(0, String(signal_name) + signaldesc); + // Create the children of the subsection - the actual list of signals. + TreeItem *signal_item = tree->create_item(section_item); + signal_item->set_text(0, String(signal_name) + signaldesc); Dictionary sinfo; sinfo["name"] = signal_name; sinfo["args"] = argnames; - item->set_metadata(0, sinfo); - item->set_icon(0, get_theme_icon("Signal", "EditorIcons")); + signal_item->set_metadata(0, sinfo); + signal_item->set_icon(0, get_theme_icon("Signal", "EditorIcons")); // Set tooltip with the signal's documentation. { @@ -1007,7 +1015,7 @@ void ConnectionsDock::update_tree() { } // "::" separators used in make_custom_tooltip for formatting. - item->set_tooltip(0, String(signal_name) + "::" + signaldesc + "::" + descr); + signal_item->set_tooltip(0, String(signal_name) + "::" + signaldesc + "::" + descr); } // List existing connections @@ -1044,11 +1052,11 @@ void ConnectionsDock::update_tree() { path += ")"; } - TreeItem *item2 = tree->create_item(item); - item2->set_text(0, path); + TreeItem *connection_item = tree->create_item(signal_item); + connection_item->set_text(0, path); Connection cd = c; - item2->set_metadata(0, cd); - item2->set_icon(0, get_theme_icon("Slot", "EditorIcons")); + connection_item->set_metadata(0, cd); + connection_item->set_icon(0, get_theme_icon("Slot", "EditorIcons")); } } @@ -1069,6 +1077,14 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) { VBoxContainer *vbc = this; + search_box = memnew(LineEdit); + search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); + search_box->set_placeholder(TTR("Filter signals")); + search_box->set_right_icon(get_theme_icon("Search", "EditorIcons")); + search_box->set_clear_button_enabled(true); + search_box->connect("text_changed", callable_mp(this, &ConnectionsDock::_filter_changed)); + vbc->add_child(search_box); + tree = memnew(ConnectionsDockTree); tree->set_columns(1); tree->set_select_mode(Tree::SELECT_ROW); diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h index 9da9a8fb2c..48fdb91f5a 100644 --- a/editor/connections_dialog.h +++ b/editor/connections_dialog.h @@ -169,9 +169,12 @@ class ConnectionsDock : public VBoxContainer { PopupMenu *signal_menu; PopupMenu *slot_menu; UndoRedo *undo_redo; + LineEdit *search_box; Map<StringName, Map<StringName, String>> descr_cache; + void _filter_changed(const String &p_text); + void _make_or_edit_connection(); void _connect(ConnectDialog::ConnectionData cToMake); void _disconnect(TreeItem &item); diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp index a9c18138d8..b461ac4f35 100644 --- a/editor/debugger/editor_debugger_node.cpp +++ b/editor/debugger/editor_debugger_node.cpp @@ -34,6 +34,7 @@ #include "editor/debugger/script_editor_debugger.h" #include "editor/editor_log.h" #include "editor/editor_node.h" +#include "editor/plugins/editor_debugger_plugin.h" #include "editor/plugins/script_editor_plugin.h" #include "scene/gui/menu_button.h" #include "scene/gui/tab_container.h" @@ -114,6 +115,12 @@ ScriptEditorDebugger *EditorDebuggerNode::_add_debugger() { tabs->add_theme_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox("DebuggerPanel", "EditorStyles")); } + if (!debugger_plugins.empty()) { + for (Set<Ref<Script>>::Element *i = debugger_plugins.front(); i; i = i->next()) { + node->add_debugger_plugin(i->get()); + } + } + return node; } @@ -618,3 +625,23 @@ void EditorDebuggerNode::live_debug_reparent_node(const NodePath &p_at, const No dbg->live_debug_reparent_node(p_at, p_new_place, p_new_name, p_at_pos); }); } + +void EditorDebuggerNode::add_debugger_plugin(const Ref<Script> &p_script) { + ERR_FAIL_COND_MSG(debugger_plugins.has(p_script), "Debugger plugin already exists."); + ERR_FAIL_COND_MSG(p_script.is_null(), "Debugger plugin script is null"); + ERR_FAIL_COND_MSG(String(p_script->get_instance_base_type()) == "", "Debugger plugin script has error."); + ERR_FAIL_COND_MSG(String(p_script->get_instance_base_type()) != "EditorDebuggerPlugin", "Base type of debugger plugin is not 'EditorDebuggerPlugin'."); + ERR_FAIL_COND_MSG(!p_script->is_tool(), "Debugger plugin script is not in tool mode."); + debugger_plugins.insert(p_script); + for (int i = 0; get_debugger(i); i++) { + get_debugger(i)->add_debugger_plugin(p_script); + } +} + +void EditorDebuggerNode::remove_debugger_plugin(const Ref<Script> &p_script) { + ERR_FAIL_COND_MSG(!debugger_plugins.has(p_script), "Debugger plugin doesn't exists."); + debugger_plugins.erase(p_script); + for (int i = 0; get_debugger(i); i++) { + get_debugger(i)->remove_debugger_plugin(p_script); + } +} diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h index ff9601c026..8d70a7f961 100644 --- a/editor/debugger/editor_debugger_node.h +++ b/editor/debugger/editor_debugger_node.h @@ -103,6 +103,8 @@ private: CameraOverride camera_override = OVERRIDE_NONE; Map<Breakpoint, bool> breakpoints; + Set<Ref<Script>> debugger_plugins; + ScriptEditorDebugger *_add_debugger(); EditorDebuggerRemoteObject *get_inspected_remote_object(); @@ -186,5 +188,8 @@ public: Error start(const String &p_protocol = "tcp://"); void stop(); + + void add_debugger_plugin(const Ref<Script> &p_script); + void remove_debugger_plugin(const Ref<Script> &p_script); }; #endif // EDITOR_DEBUGGER_NODE_H diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp index 49bf068be7..1fca95b6da 100644 --- a/editor/debugger/script_editor_debugger.cpp +++ b/editor/debugger/script_editor_debugger.cpp @@ -44,6 +44,7 @@ #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "editor/plugins/canvas_item_editor_plugin.h" +#include "editor/plugins/editor_debugger_plugin.h" #include "editor/plugins/node_3d_editor_plugin.h" #include "editor/property_editor.h" #include "main/performance.h" @@ -701,7 +702,28 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da performance_profiler->update_monitors(monitors); } else { - WARN_PRINT("unknown message " + p_msg); + int colon_index = p_msg.find_char(':'); + ERR_FAIL_COND_MSG(colon_index < 1, "Invalid message received"); + + bool parsed = false; + const String cap = p_msg.substr(0, colon_index); + Map<StringName, Callable>::Element *element = captures.find(cap); + if (element) { + Callable &c = element->value(); + ERR_FAIL_COND_MSG(c.is_null(), "Invalid callable registered: " + cap); + Variant cmd = p_msg.substr(colon_index + 1), data = p_data; + const Variant *args[2] = { &cmd, &data }; + Variant retval; + Callable::CallError err; + c.call(args, 2, retval, err); + ERR_FAIL_COND_MSG(err.error != Callable::CallError::CALL_OK, "Error calling 'capture' to callable: " + Variant::get_callable_error_text(c, args, 2, err)); + ERR_FAIL_COND_MSG(retval.get_type() != Variant::BOOL, "Error calling 'capture' to callable: " + String(c) + ". Return type is not bool."); + parsed = retval; + } + + if (!parsed) { + WARN_PRINT("unknown message " + p_msg); + } } } @@ -847,6 +869,7 @@ void ScriptEditorDebugger::start(Ref<RemoteDebuggerPeer> p_peer) { tabs->set_current_tab(0); _set_reason_text(TTR("Debug session started."), MESSAGE_SUCCESS); _update_buttons_state(); + emit_signal("started"); } void ScriptEditorDebugger::_update_buttons_state() { @@ -1395,6 +1418,7 @@ void ScriptEditorDebugger::_bind_methods() { ClassDB::bind_method(D_METHOD("request_remote_object", "id"), &ScriptEditorDebugger::request_remote_object); ClassDB::bind_method(D_METHOD("update_remote_object", "id", "property", "value"), &ScriptEditorDebugger::update_remote_object); + ADD_SIGNAL(MethodInfo("started")); ADD_SIGNAL(MethodInfo("stopped")); ADD_SIGNAL(MethodInfo("stop_requested")); ADD_SIGNAL(MethodInfo("stack_frame_selected", PropertyInfo(Variant::INT, "frame"))); @@ -1408,6 +1432,43 @@ void ScriptEditorDebugger::_bind_methods() { ADD_SIGNAL(MethodInfo("remote_tree_updated")); } +void ScriptEditorDebugger::add_debugger_plugin(const Ref<Script> &p_script) { + if (!debugger_plugins.has(p_script)) { + EditorDebuggerPlugin *plugin = memnew(EditorDebuggerPlugin()); + plugin->attach_debugger(this); + plugin->set_script(p_script); + tabs->add_child(plugin); + debugger_plugins.insert(p_script, plugin); + } +} + +void ScriptEditorDebugger::remove_debugger_plugin(const Ref<Script> &p_script) { + if (debugger_plugins.has(p_script)) { + tabs->remove_child(debugger_plugins[p_script]); + debugger_plugins[p_script]->detach_debugger(false); + memdelete(debugger_plugins[p_script]); + debugger_plugins.erase(p_script); + } +} + +void ScriptEditorDebugger::send_message(const String &p_message, const Array &p_args) { + _put_msg(p_message, p_args); +} + +void ScriptEditorDebugger::register_message_capture(const StringName &p_name, const Callable &p_callable) { + ERR_FAIL_COND_MSG(has_capture(p_name), "Capture already registered: " + p_name); + captures.insert(p_name, p_callable); +} + +void ScriptEditorDebugger::unregister_message_capture(const StringName &p_name) { + ERR_FAIL_COND_MSG(!has_capture(p_name), "Capture not registered: " + p_name); + captures.erase(p_name); +} + +bool ScriptEditorDebugger::has_capture(const StringName &p_name) { + return captures.has(p_name); +} + ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { editor = p_editor; diff --git a/editor/debugger/script_editor_debugger.h b/editor/debugger/script_editor_debugger.h index 6e5699e929..56b34e8e8c 100644 --- a/editor/debugger/script_editor_debugger.h +++ b/editor/debugger/script_editor_debugger.h @@ -54,6 +54,7 @@ class EditorVisualProfiler; class EditorNetworkProfiler; class EditorPerformanceProfiler; class SceneDebuggerTree; +class EditorDebuggerPlugin; class ScriptEditorDebugger : public MarginContainer { GDCLASS(ScriptEditorDebugger, MarginContainer); @@ -146,6 +147,10 @@ private: EditorDebuggerNode::CameraOverride camera_override; + Map<Ref<Script>, EditorDebuggerPlugin *> debugger_plugins; + + Map<StringName, Callable> captures; + void _stack_dump_frame_selected(); void _file_selected(const String &p_file); @@ -253,6 +258,16 @@ public: bool is_skip_breakpoints(); virtual Size2 get_minimum_size() const override; + + void add_debugger_plugin(const Ref<Script> &p_script); + void remove_debugger_plugin(const Ref<Script> &p_script); + + void send_message(const String &p_message, const Array &p_args); + + void register_message_capture(const StringName &p_name, const Callable &p_callable); + void unregister_message_capture(const StringName &p_name); + bool has_capture(const StringName &p_name); + ScriptEditorDebugger(EditorNode *p_editor = nullptr); ~ScriptEditorDebugger(); }; diff --git a/editor/doc_data.cpp b/editor/doc_data.cpp index 75b16b4510..791b49319a 100644 --- a/editor/doc_data.cpp +++ b/editor/doc_data.cpp @@ -316,8 +316,7 @@ void DocData::generate(bool p_basic_types) { if (name == "ProjectSettings") { // Special case for project settings, so that settings are not taken from the current project's settings - if (E->get().name == "script" || - ProjectSettings::get_singleton()->get_order(E->get().name) >= ProjectSettings::NO_BUILTIN_ORDER_BASE) { + if (E->get().name == "script" || !ProjectSettings::get_singleton()->is_builtin_setting(E->get().name)) { continue; } if (E->get().usage & PROPERTY_USAGE_EDITOR) { diff --git a/editor/editor_about.cpp b/editor/editor_about.cpp index d99726c57c..aae476ccf4 100644 --- a/editor/editor_about.cpp +++ b/editor/editor_about.cpp @@ -155,12 +155,15 @@ EditorAbout::EditorAbout() { List<String> donor_sections; donor_sections.push_back(TTR("Platinum Sponsors")); donor_sections.push_back(TTR("Gold Sponsors")); + donor_sections.push_back(TTR("Silver Sponsors")); + donor_sections.push_back(TTR("Bronze Sponsors")); donor_sections.push_back(TTR("Mini Sponsors")); donor_sections.push_back(TTR("Gold Donors")); donor_sections.push_back(TTR("Silver Donors")); donor_sections.push_back(TTR("Bronze Donors")); - const char *const *donor_src[] = { DONORS_SPONSOR_PLAT, DONORS_SPONSOR_GOLD, - DONORS_SPONSOR_MINI, DONORS_GOLD, DONORS_SILVER, DONORS_BRONZE }; + const char *const *donor_src[] = { DONORS_SPONSOR_PLATINUM, DONORS_SPONSOR_GOLD, + DONORS_SPONSOR_SILVER, DONORS_SPONSOR_BRONZE, DONORS_SPONSOR_MINI, + DONORS_GOLD, DONORS_SILVER, DONORS_BRONZE }; tc->add_child(_populate_list(TTR("Donors"), donor_sections, donor_src, 3)); // License diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 130c330f5a..5118ccacad 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -262,7 +262,9 @@ EditorHistory::EditorHistory() { } EditorPlugin *EditorData::get_editor(Object *p_object) { - for (int i = 0; i < editor_plugins.size(); i++) { + // We need to iterate backwards so that we can check user-created plugins first. + // Otherwise, it would not be possible for plugins to handle CanvasItem and Spatial nodes. + for (int i = editor_plugins.size() - 1; i > -1; i--) { if (editor_plugins[i]->has_main_screen() && editor_plugins[i]->handles(p_object)) { return editor_plugins[i]; } @@ -272,7 +274,7 @@ EditorPlugin *EditorData::get_editor(Object *p_object) { } EditorPlugin *EditorData::get_subeditor(Object *p_object) { - for (int i = 0; i < editor_plugins.size(); i++) { + for (int i = editor_plugins.size() - 1; i > -1; i--) { if (!editor_plugins[i]->has_main_screen() && editor_plugins[i]->handles(p_object)) { return editor_plugins[i]; } @@ -283,7 +285,7 @@ EditorPlugin *EditorData::get_subeditor(Object *p_object) { Vector<EditorPlugin *> EditorData::get_subeditors(Object *p_object) { Vector<EditorPlugin *> sub_plugins; - for (int i = 0; i < editor_plugins.size(); i++) { + for (int i = editor_plugins.size() - 1; i > -1; i--) { if (!editor_plugins[i]->has_main_screen() && editor_plugins[i]->handles(p_object)) { sub_plugins.push_back(editor_plugins[i]); } @@ -292,7 +294,7 @@ Vector<EditorPlugin *> EditorData::get_subeditors(Object *p_object) { } EditorPlugin *EditorData::get_editor(String p_name) { - for (int i = 0; i < editor_plugins.size(); i++) { + for (int i = editor_plugins.size() - 1; i > -1; i--) { if (editor_plugins[i]->get_name() == p_name) { return editor_plugins[i]; } diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 951bec2c83..16e69734d3 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -512,10 +512,18 @@ void EditorExportPlugin::add_ios_framework(const String &p_path) { ios_frameworks.push_back(p_path); } +void EditorExportPlugin::add_ios_embedded_framework(const String &p_path) { + ios_embedded_frameworks.push_back(p_path); +} + Vector<String> EditorExportPlugin::get_ios_frameworks() const { return ios_frameworks; } +Vector<String> EditorExportPlugin::get_ios_embedded_frameworks() const { + return ios_embedded_frameworks; +} + void EditorExportPlugin::add_ios_plist_content(const String &p_plist_content) { ios_plist_content += p_plist_content + "\n"; } @@ -592,6 +600,7 @@ void EditorExportPlugin::_bind_methods() { ClassDB::bind_method(D_METHOD("add_ios_project_static_lib", "path"), &EditorExportPlugin::add_ios_project_static_lib); ClassDB::bind_method(D_METHOD("add_file", "path", "file", "remap"), &EditorExportPlugin::add_file); ClassDB::bind_method(D_METHOD("add_ios_framework", "path"), &EditorExportPlugin::add_ios_framework); + ClassDB::bind_method(D_METHOD("add_ios_embedded_framework", "path"), &EditorExportPlugin::add_ios_embedded_framework); ClassDB::bind_method(D_METHOD("add_ios_plist_content", "plist_content"), &EditorExportPlugin::add_ios_plist_content); ClassDB::bind_method(D_METHOD("add_ios_linker_flags", "flags"), &EditorExportPlugin::add_ios_linker_flags); ClassDB::bind_method(D_METHOD("add_ios_bundle_file", "path"), &EditorExportPlugin::add_ios_bundle_file); diff --git a/editor/editor_export.h b/editor/editor_export.h index e31b53ad67..bb701b94ec 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -290,6 +290,7 @@ class EditorExportPlugin : public Reference { bool skipped; Vector<String> ios_frameworks; + Vector<String> ios_embedded_frameworks; Vector<String> ios_project_static_libs; String ios_plist_content; String ios_linker_flags; @@ -304,6 +305,7 @@ class EditorExportPlugin : public Reference { _FORCE_INLINE_ void _export_end() { ios_frameworks.clear(); + ios_embedded_frameworks.clear(); ios_bundle_files.clear(); ios_plist_content = ""; ios_linker_flags = ""; @@ -322,6 +324,7 @@ protected: void add_shared_object(const String &p_path, const Vector<String> &tags); void add_ios_framework(const String &p_path); + void add_ios_embedded_framework(const String &p_path); void add_ios_project_static_lib(const String &p_path); void add_ios_plist_content(const String &p_plist_content); void add_ios_linker_flags(const String &p_flags); @@ -337,6 +340,7 @@ protected: public: Vector<String> get_ios_frameworks() const; + Vector<String> get_ios_embedded_frameworks() const; Vector<String> get_ios_project_static_libs() const; String get_ios_plist_content() const; String get_ios_linker_flags() const; diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp index f68cc3b323..418370a7c3 100644 --- a/editor/editor_feature_profile.cpp +++ b/editor/editor_feature_profile.cpp @@ -41,9 +41,9 @@ const char *EditorFeatureProfile::feature_names[FEATURE_MAX] = { TTRC("Script Editor"), TTRC("Asset Library"), TTRC("Scene Tree Editing"), - TTRC("Import Dock"), TTRC("Node Dock"), - TTRC("FileSystem and Import Docks") + TTRC("FileSystem Dock"), + TTRC("Import Dock"), }; const char *EditorFeatureProfile::feature_identifiers[FEATURE_MAX] = { @@ -51,9 +51,9 @@ const char *EditorFeatureProfile::feature_identifiers[FEATURE_MAX] = { "script", "asset_lib", "scene_tree", - "import_dock", "node_dock", - "filesystem_dock" + "filesystem_dock", + "import_dock", }; void EditorFeatureProfile::set_disable_class(const StringName &p_class, bool p_disabled) { @@ -678,9 +678,16 @@ void EditorFeatureProfileManager::_update_selected_profile() { TreeItem *root = class_list->create_item(); TreeItem *features = class_list->create_item(root); + TreeItem *last_feature; features->set_text(0, TTR("Enabled Features:")); for (int i = 0; i < EditorFeatureProfile::FEATURE_MAX; i++) { - TreeItem *feature = class_list->create_item(features); + TreeItem *feature; + if (i == EditorFeatureProfile::FEATURE_IMPORT_DOCK) { + feature = class_list->create_item(last_feature); + } else { + feature = class_list->create_item(features); + last_feature = feature; + } feature->set_cell_mode(0, TreeItem::CELL_MODE_CHECK); feature->set_text(0, TTRGET(EditorFeatureProfile::get_feature_name(EditorFeatureProfile::Feature(i)))); feature->set_selectable(0, true); diff --git a/editor/editor_feature_profile.h b/editor/editor_feature_profile.h index 38413e35a2..d0d08c61f4 100644 --- a/editor/editor_feature_profile.h +++ b/editor/editor_feature_profile.h @@ -49,9 +49,9 @@ public: FEATURE_SCRIPT, FEATURE_ASSET_LIB, FEATURE_SCENE_TREE, - FEATURE_IMPORT_DOCK, FEATURE_NODE_DOCK, FEATURE_FILESYSTEM_DOCK, + FEATURE_IMPORT_DOCK, FEATURE_MAX }; diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index bce34db740..30aebd2b1f 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -244,7 +244,7 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview class_desc->push_cell(); class_desc->push_align(RichTextLabel::ALIGN_RIGHT); } else { - static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; + static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; class_desc->add_text(String(prefix)); } @@ -761,7 +761,7 @@ void EditorHelp::_update_doc() { signal_line[cd.signals[i].name] = class_desc->get_line_count() - 2; //gets overridden if description class_desc->push_font(doc_code_font); // monofont class_desc->push_color(headline_color); - static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; + static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; class_desc->add_text(String(prefix)); _add_text(cd.signals[i].name); class_desc->pop(); @@ -876,7 +876,7 @@ void EditorHelp::_update_doc() { class_desc->push_font(doc_code_font); class_desc->push_color(headline_color); - static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; + static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; class_desc->add_text(String(prefix)); _add_text(enum_list[i].name); class_desc->pop(); @@ -890,7 +890,7 @@ void EditorHelp::_update_doc() { if (enum_list[i].description != "") { class_desc->push_font(doc_font); class_desc->push_color(comment_color); - static const CharType dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 }; + static const char32_t dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 }; class_desc->add_text(String(dash)); _add_text(DTR(enum_list[i].description)); class_desc->pop(); @@ -937,12 +937,12 @@ void EditorHelp::_update_doc() { Vector<float> color = stripped.split_floats(","); if (color.size() >= 3) { class_desc->push_color(Color(color[0], color[1], color[2])); - static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; + static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; class_desc->add_text(String(prefix)); class_desc->pop(); } } else { - static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; + static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; class_desc->add_text(String(prefix)); } @@ -960,7 +960,7 @@ void EditorHelp::_update_doc() { if (constants[i].description != "") { class_desc->push_font(doc_font); class_desc->push_color(comment_color); - static const CharType dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 }; + static const char32_t dash[6] = { ' ', ' ', 0x2013 /* en dash */, ' ', ' ', 0 }; class_desc->add_text(String(dash)); _add_text(DTR(constants[i].description)); class_desc->pop(); @@ -1002,7 +1002,7 @@ void EditorHelp::_update_doc() { class_desc->push_cell(); class_desc->push_font(doc_code_font); - static const CharType prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; + static const char32_t prefix[3] = { 0x25CF /* filled circle */, ' ', 0 }; class_desc->add_text(String(prefix)); _add_type(cd.properties[i].type, cd.properties[i].enumeration); diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index cf32ffb4e0..336e34298f 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -1174,6 +1174,47 @@ void EditorInspectorSection::_notification(int p_what) { if (arrow.is_valid()) { draw_texture(arrow, Point2(Math::round(arrow_margin * EDSCALE), (h - arrow->get_height()) / 2).floor()); } + + if (dropping && !vbox->is_visible_in_tree()) { + Color accent_color = get_theme_color("accent_color", "Editor"); + draw_rect(Rect2(Point2(), get_size()), accent_color, false); + } + } + + if (p_what == NOTIFICATION_DRAG_BEGIN) { + Dictionary dd = get_viewport()->gui_get_drag_data(); + + // Only allow dropping if the section contains properties which can take the dragged data. + bool children_can_drop = false; + for (int child_idx = 0; child_idx < vbox->get_child_count(); child_idx++) { + Control *editor_property = Object::cast_to<Control>(vbox->get_child(child_idx)); + + // Test can_drop_data and can_drop_data_fw, since can_drop_data only works if set up with forwarding or if script attached. + if (editor_property && (editor_property->can_drop_data(Point2(), dd) || editor_property->call("can_drop_data_fw", Point2(), dd, this))) { + children_can_drop = true; + break; + } + } + + dropping = children_can_drop; + update(); + } + + if (p_what == NOTIFICATION_DRAG_END) { + dropping = false; + update(); + } + + if (p_what == NOTIFICATION_MOUSE_ENTER) { + if (dropping) { + dropping_unfold_timer->start(); + } + } + + if (p_what == NOTIFICATION_MOUSE_EXIT) { + if (dropping) { + dropping_unfold_timer->stop(); + } } } @@ -1236,14 +1277,11 @@ void EditorInspectorSection::_gui_input(const Ref<InputEvent> &p_event) { return; } - _test_unfold(); - - bool unfold = !object->editor_is_section_unfolded(section); - object->editor_set_section_unfold(section, unfold); - if (unfold) { - vbox->show(); + bool should_unfold = !object->editor_is_section_unfolded(section); + if (should_unfold) { + unfold(); } else { - vbox->hide(); + fold(); } } } @@ -1291,6 +1329,13 @@ EditorInspectorSection::EditorInspectorSection() { foldable = false; vbox = memnew(VBoxContainer); vbox_added = false; + + dropping = false; + dropping_unfold_timer = memnew(Timer); + dropping_unfold_timer->set_wait_time(0.6); + dropping_unfold_timer->set_one_shot(true); + add_child(dropping_unfold_timer); + dropping_unfold_timer->connect("timeout", callable_mp(this, &EditorInspectorSection::unfold)); } EditorInspectorSection::~EditorInspectorSection() { @@ -1924,7 +1969,7 @@ void EditorInspector::refresh() { if (refresh_countdown > 0 || changing) { return; } - refresh_countdown = EditorSettings::get_singleton()->get("docks/property_editor/auto_refresh_interval"); + refresh_countdown = refresh_interval_cache; } Object *EditorInspector::get_edited_object() { @@ -2287,6 +2332,8 @@ void EditorInspector::_node_removed(Node *p_node) { void EditorInspector::_notification(int p_what) { if (p_what == NOTIFICATION_READY) { EditorFeatureProfileManager::get_singleton()->connect("current_feature_profile_changed", callable_mp(this, &EditorInspector::_feature_profile_changed)); + refresh_interval_cache = EDITOR_GET("docks/property_editor/auto_refresh_interval"); + refresh_countdown = refresh_interval_cache; } if (p_what == NOTIFICATION_ENTER_TREE) { @@ -2322,6 +2369,9 @@ void EditorInspector::_notification(int p_what) { } } } + } else { + // Restart countdown if <= 0 + refresh_countdown = refresh_interval_cache; } changing++; @@ -2354,6 +2404,9 @@ void EditorInspector::_notification(int p_what) { add_theme_style_override("bg", get_theme_stylebox("bg", "Tree")); } + refresh_interval_cache = EDITOR_GET("docks/property_editor/auto_refresh_interval"); + refresh_countdown = refresh_interval_cache; + update_tree(); } } @@ -2517,6 +2570,7 @@ EditorInspector::EditorInspector() { update_all_pending = false; update_tree_pending = false; refresh_countdown = 0; + refresh_interval_cache = 0; read_only = false; search_box = nullptr; keying = false; diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index 95072fd703..d1046315f4 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -231,6 +231,9 @@ class EditorInspectorSection : public Container { Color bg_color; bool foldable; + Timer *dropping_unfold_timer; + bool dropping; + void _test_unfold(); protected: @@ -291,6 +294,7 @@ class EditorInspector : public ScrollContainer { bool deletable_properties; float refresh_countdown; + float refresh_interval_cache; bool update_tree_pending; StringName _prop_edited; StringName property_selected; diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index ce131e6a05..e90f30496c 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -123,6 +123,7 @@ #include "editor/plugins/cpu_particles_3d_editor_plugin.h" #include "editor/plugins/curve_editor_plugin.h" #include "editor/plugins/debugger_editor_plugin.h" +#include "editor/plugins/editor_debugger_plugin.h" #include "editor/plugins/editor_preview_plugins.h" #include "editor/plugins/gi_probe_editor_plugin.h" #include "editor/plugins/gpu_particles_2d_editor_plugin.h" @@ -456,8 +457,6 @@ void EditorNode::_notification(int p_what) { editor_selection->update(); - //scene_root->set_size_override(true, Size2(ProjectSettings::get_singleton()->get("display/window/size/width"), ProjectSettings::get_singleton()->get("display/window/size/height"))); - { //TODO should only happen on settings changed int current_filter = GLOBAL_GET("rendering/canvas_textures/default_texture_filter"); if (current_filter != scene_root->get_default_canvas_item_texture_filter()) { @@ -479,6 +478,8 @@ void EditorNode::_notification(int p_what) { RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_enabled"), GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_amount"), GLOBAL_GET("rendering/quality/screen_filters/screen_space_roughness_limiter_limit")); bool glow_bicubic = int(GLOBAL_GET("rendering/quality/glow/upscale_mode")) > 0; RS::get_singleton()->environment_glow_set_use_bicubic_upscale(glow_bicubic); + bool glow_high_quality = GLOBAL_GET("rendering/quality/glow/use_high_quality"); + RS::get_singleton()->environment_glow_set_use_high_quality(glow_high_quality); RS::EnvironmentSSRRoughnessQuality ssr_roughness_quality = RS::EnvironmentSSRRoughnessQuality(int(GLOBAL_GET("rendering/quality/screen_space_reflection/roughness_quality"))); RS::get_singleton()->environment_set_ssr_roughness_quality(ssr_roughness_quality); RS::SubSurfaceScatteringQuality sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/quality/subsurface_scattering/subsurface_scattering_quality"))); @@ -498,6 +499,10 @@ void EditorNode::_notification(int p_what) { RS::get_singleton()->environment_set_sdfgi_ray_count(ray_count); RS::GIProbeQuality gi_probe_quality = RS::GIProbeQuality(int(GLOBAL_GET("rendering/quality/gi_probes/quality"))); RS::get_singleton()->gi_probe_set_quality(gi_probe_quality); + RS::get_singleton()->environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/volumetric_fog/volume_size"), GLOBAL_GET("rendering/volumetric_fog/volume_depth")); + RS::get_singleton()->environment_set_volumetric_fog_filter_active(bool(GLOBAL_GET("rendering/volumetric_fog/use_filter"))); + RS::get_singleton()->environment_set_volumetric_fog_directional_shadow_shrink_size(GLOBAL_GET("rendering/volumetric_fog/directional_shadow_shrink")); + RS::get_singleton()->environment_set_volumetric_fog_positional_shadow_shrink_size(GLOBAL_GET("rendering/volumetric_fog/positional_shadow_shrink")); } ResourceImporterTexture::get_singleton()->update_imports(); @@ -3619,6 +3624,7 @@ void EditorNode::register_editor_types() { // FIXME: Is this stuff obsolete, or should it be ported to new APIs? ClassDB::register_class<EditorScenePostImport>(); //ClassDB::register_type<EditorImportExport>(); + ClassDB::register_class<EditorDebuggerPlugin>(); } void EditorNode::unregister_editor_types() { @@ -5341,9 +5347,11 @@ void EditorNode::_feature_profile_changed() { TabContainer *node_tabs = cast_to<TabContainer>(node_dock->get_parent()); TabContainer *fs_tabs = cast_to<TabContainer>(filesystem_dock->get_parent()); if (profile.is_valid()) { - import_tabs->set_tab_hidden(import_dock->get_index(), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_IMPORT_DOCK)); node_tabs->set_tab_hidden(node_dock->get_index(), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_NODE_DOCK)); - fs_tabs->set_tab_hidden(filesystem_dock->get_index(), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_FILESYSTEM_DOCK)); + // The Import dock is useless without the FileSystem dock. Ensure the configuration is valid. + bool fs_dock_disabled = profile->is_feature_disabled(EditorFeatureProfile::FEATURE_FILESYSTEM_DOCK); + fs_tabs->set_tab_hidden(filesystem_dock->get_index(), fs_dock_disabled); + import_tabs->set_tab_hidden(import_dock->get_index(), fs_dock_disabled || profile->is_feature_disabled(EditorFeatureProfile::FEATURE_IMPORT_DOCK)); main_editor_buttons[EDITOR_3D]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D)); main_editor_buttons[EDITOR_SCRIPT]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT)); diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index da0a0827d2..bce46b719a 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -811,6 +811,14 @@ ScriptCreateDialog *EditorPlugin::get_script_create_dialog() { return EditorNode::get_singleton()->get_script_create_dialog(); } +void EditorPlugin::add_debugger_plugin(const Ref<Script> &p_script) { + EditorDebuggerNode::get_singleton()->add_debugger_plugin(p_script); +} + +void EditorPlugin::remove_debugger_plugin(const Ref<Script> &p_script) { + EditorDebuggerNode::get_singleton()->remove_debugger_plugin(p_script); +} + void EditorPlugin::_bind_methods() { ClassDB::bind_method(D_METHOD("add_control_to_container", "container", "control"), &EditorPlugin::add_control_to_container); ClassDB::bind_method(D_METHOD("add_control_to_bottom_panel", "control", "title"), &EditorPlugin::add_control_to_bottom_panel); @@ -851,6 +859,8 @@ void EditorPlugin::_bind_methods() { ClassDB::bind_method(D_METHOD("get_editor_interface"), &EditorPlugin::get_editor_interface); ClassDB::bind_method(D_METHOD("get_script_create_dialog"), &EditorPlugin::get_script_create_dialog); + ClassDB::bind_method(D_METHOD("add_debugger_plugin", "script"), &EditorPlugin::add_debugger_plugin); + ClassDB::bind_method(D_METHOD("remove_debugger_plugin", "script"), &EditorPlugin::remove_debugger_plugin); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "forward_canvas_gui_input", PropertyInfo(Variant::OBJECT, "event", PROPERTY_HINT_RESOURCE_TYPE, "InputEvent"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo("forward_canvas_draw_over_viewport", PropertyInfo(Variant::OBJECT, "overlay", PROPERTY_HINT_RESOURCE_TYPE, "Control"))); diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h index 685f69bf3f..c7803f73c9 100644 --- a/editor/editor_plugin.h +++ b/editor/editor_plugin.h @@ -33,6 +33,7 @@ #include "core/io/config_file.h" #include "core/undo_redo.h" +#include "editor/debugger/editor_debugger_node.h" #include "editor/editor_inspector.h" #include "editor/editor_translation_parser.h" #include "editor/import/editor_import_plugin.h" @@ -249,6 +250,9 @@ public: void add_autoload_singleton(const String &p_name, const String &p_path); void remove_autoload_singleton(const String &p_name); + void add_debugger_plugin(const Ref<Script> &p_script); + void remove_debugger_plugin(const Ref<Script> &p_script); + void enable_plugin(); void disable_plugin(); diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index daafe095ce..4c8af615b4 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -36,6 +36,7 @@ #include "editor_properties_array_dict.h" #include "editor_scale.h" #include "scene/main/window.h" +#include "scene/resources/dynamic_font.h" ///////////////////// NULL ///////////////////////// @@ -946,14 +947,11 @@ void EditorPropertyEasing::_drag_easing(const Ref<InputEvent> &p_ev) { } float val = get_edited_object()->get(get_edited_property()); - if (val == 0) { - return; - } bool sg = val < 0; val = Math::absf(val); val = Math::log(val) / Math::log((float)2.0); - //logspace + // Logarithmic space. val += rel * 0.05; val = Math::pow(2.0f, val); @@ -961,6 +959,16 @@ void EditorPropertyEasing::_drag_easing(const Ref<InputEvent> &p_ev) { val = -val; } + // 0 is a singularity, but both positive and negative values + // are otherwise allowed. Enforce 0+ as workaround. + if (Math::is_zero_approx(val)) { + val = 0.00001; + } + + // Limit to a reasonable value to prevent the curve going into infinity, + // which can cause crashes and other issues. + val = CLAMP(val, -1'000'000, 1'000'000); + emit_changed(get_edited_property(), val); easing_draw->update(); } @@ -1003,7 +1011,18 @@ void EditorPropertyEasing::_draw_easing() { } easing_draw->draw_multiline(lines, line_color, 1.0); - f->draw(ci, Point2(10, 10 + f->get_ascent()), String::num(exp, 2), font_color); + // Draw more decimals for small numbers since higher precision is usually required for fine adjustments. + int decimals; + if (Math::abs(exp) < 0.1 - CMP_EPSILON) { + decimals = 4; + } else if (Math::abs(exp) < 1 - CMP_EPSILON) { + decimals = 3; + } else if (Math::abs(exp) < 10 - CMP_EPSILON) { + decimals = 2; + } else { + decimals = 1; + } + f->draw(ci, Point2(10, 10 + f->get_ascent()), rtos(exp).pad_decimals(decimals), font_color); } void EditorPropertyEasing::update_property() { @@ -1035,6 +1054,11 @@ void EditorPropertyEasing::_spin_value_changed(double p_value) { if (Math::is_zero_approx(p_value)) { p_value = 0.00001; } + + // Limit to a reasonable value to prevent the curve going into infinity, + // which can cause crashes and other issues. + p_value = CLAMP(p_value, -1'000'000, 1'000'000); + emit_changed(get_edited_property(), p_value); _spin_focus_exited(); } @@ -2108,6 +2132,11 @@ EditorPropertyTransform::EditorPropertyTransform() { ////////////// COLOR PICKER ////////////////////// void EditorPropertyColor::_color_changed(const Color &p_color) { + // Cancel the color change if the current color is identical to the new one. + if (get_edited_object()->get(get_edited_property()) == p_color) { + return; + } + emit_changed(get_edited_property(), p_color, "", true); } @@ -2919,11 +2948,9 @@ void EditorPropertyResource::_notification(int p_what) { } if (p_what == NOTIFICATION_DRAG_BEGIN) { - if (is_visible_in_tree()) { - if (_is_drop_valid(get_viewport()->gui_get_drag_data())) { - dropping = true; - assign->update(); - } + if (_is_drop_valid(get_viewport()->gui_get_drag_data())) { + dropping = true; + assign->update(); } } @@ -2988,6 +3015,8 @@ bool EditorPropertyResource::_is_drop_valid(const Dictionary &p_drag_data) const allowed_types.append("Texture2D"); } else if (at == "ShaderMaterial") { allowed_types.append("Shader"); + } else if (at == "Font") { + allowed_types.append("DynamicFontData"); } } @@ -3085,6 +3114,13 @@ void EditorPropertyResource::drop_data_fw(const Point2 &p_point, const Variant & res = mat; break; } + + if (at == "Font" && ClassDB::is_parent_class(res->get_class(), "DynamicFontData")) { + Ref<DynamicFont> font = memnew(DynamicFont); + font->set_font_data(res); + res = font; + break; + } } } diff --git a/editor/editor_run.cpp b/editor/editor_run.cpp index b49c50fa31..7fada633c9 100644 --- a/editor/editor_run.cpp +++ b/editor/editor_run.cpp @@ -192,9 +192,9 @@ Error EditorRun::run(const String &p_scene, const String &p_custom_args, const L String exec = OS::get_singleton()->get_executable_path(); - printf("Running: %ls", exec.c_str()); + printf("Running: %s", exec.utf8().get_data()); for (List<String>::Element *E = args.front(); E; E = E->next()) { - printf(" %ls", E->get().c_str()); + printf(" %s", E->get().utf8().get_data()); }; printf("\n"); diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp index eabbf6b0d8..cf19b54cff 100644 --- a/editor/editor_sectioned_inspector.cpp +++ b/editor/editor_sectioned_inspector.cpp @@ -238,7 +238,7 @@ void SectionedInspector::update_category_list() { continue; } - if (!filter.empty() && !filter.is_subsequence_ofi(pi.name) && !filter.is_subsequence_ofi(pi.name.replace("/", " ").capitalize())) { + if (!filter.empty() && pi.name.findn(filter) == -1 && pi.name.replace("/", " ").capitalize().findn(filter) == -1) { continue; } diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index a3438b3601..0aefef7018 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -544,6 +544,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // 3D: Navigation _initial_set("editors/3d/navigation/navigation_scheme", 0); _initial_set("editors/3d/navigation/invert_y_axis", false); + _initial_set("editors/3d/navigation/invert_x_axis", false); hints["editors/3d/navigation/navigation_scheme"] = PropertyInfo(Variant::INT, "editors/3d/navigation/navigation_scheme", PROPERTY_HINT_ENUM, "Godot,Maya,Modo"); _initial_set("editors/3d/navigation/zoom_style", 0); hints["editors/3d/navigation/zoom_style"] = PropertyInfo(Variant::INT, "editors/3d/navigation/zoom_style", PROPERTY_HINT_ENUM, "Vertical, Horizontal"); @@ -935,6 +936,7 @@ void EditorSettings::create() { String config_file_name = "editor_settings-" + itos(VERSION_MAJOR) + ".tres"; config_file_path = config_dir.plus_file(config_file_name); if (!dir->file_exists(config_file_name)) { + memdelete(dir); goto fail; } diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index a93763810b..8d54bc8021 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -85,7 +85,8 @@ static Ref<StyleBoxLine> make_line_stylebox(Color p_color, int p_thickness = 1, return style; } -Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float p_scale = EDSCALE, bool p_force_filter = false) { +#ifdef MODULE_SVG_ENABLED +static Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float p_scale = EDSCALE, bool p_force_filter = false) { Ref<ImageTexture> icon = memnew(ImageTexture); Ref<Image> img = memnew(Image); @@ -99,6 +100,7 @@ Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float return icon; } +#endif #ifndef ADD_CONVERT_COLOR #define ADD_CONVERT_COLOR(dictionary, old_color, new_color) dictionary[Color::html(old_color)] = Color::html(new_color) diff --git a/editor/editor_translation_parser.cpp b/editor/editor_translation_parser.cpp index da191fbc92..7a90d20000 100644 --- a/editor/editor_translation_parser.cpp +++ b/editor/editor_translation_parser.cpp @@ -37,15 +37,30 @@ EditorTranslationParser *EditorTranslationParser::singleton = nullptr; -Error EditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_extracted_strings) { +Error EditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural) { if (!get_script_instance()) return ERR_UNAVAILABLE; if (get_script_instance()->has_method("parse_file")) { - Array extracted_strings; - get_script_instance()->call("parse_file", p_path, extracted_strings); - for (int i = 0; i < extracted_strings.size(); i++) { - r_extracted_strings->append(extracted_strings[i]); + Array ids; + Array ids_ctx_plural; + get_script_instance()->call("parse_file", p_path, ids, ids_ctx_plural); + + // Add user's extracted translatable messages. + for (int i = 0; i < ids.size(); i++) { + r_ids->append(ids[i]); + } + + // Add user's collected translatable messages with context or plurals. + for (int i = 0; i < ids_ctx_plural.size(); i++) { + Array arr = ids_ctx_plural[i]; + ERR_FAIL_COND_V_MSG(arr.size() != 3, ERR_INVALID_DATA, "Array entries written into `msgids_context_plural` in `parse_file()` method should have the form [\"message\", \"context\", \"plural message\"]"); + + Vector<String> id_ctx_plural; + id_ctx_plural.push_back(arr[0]); + id_ctx_plural.push_back(arr[1]); + id_ctx_plural.push_back(arr[2]); + r_ids_ctx_plural->append(id_ctx_plural); } return OK; } else { @@ -69,7 +84,7 @@ void EditorTranslationParserPlugin::get_recognized_extensions(List<String> *r_ex } void EditorTranslationParserPlugin::_bind_methods() { - ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::NIL, "parse_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::ARRAY, "extracted_strings"))); + ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::NIL, "parse_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::ARRAY, "msgids"), PropertyInfo(Variant::ARRAY, "msgids_context_plural"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::ARRAY, "get_recognized_extensions")); } diff --git a/editor/editor_translation_parser.h b/editor/editor_translation_parser.h index fb8aa6ec9b..18f49b3803 100644 --- a/editor/editor_translation_parser.h +++ b/editor/editor_translation_parser.h @@ -41,7 +41,7 @@ protected: static void _bind_methods(); public: - virtual Error parse_file(const String &p_path, Vector<String> *r_extracted_strings); + virtual Error parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural); virtual void get_recognized_extensions(List<String> *r_extensions) const; }; diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 4f37fcf39c..31903c89be 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -2430,11 +2430,31 @@ void FileSystemDock::_file_list_gui_input(Ref<InputEvent> p_event) { } } -void FileSystemDock::_update_import_dock() { - if (!import_dock_needs_update) { +void FileSystemDock::_get_imported_files(const String &p_path, Vector<String> &files) const { + if (!p_path.ends_with("/")) { + if (FileAccess::exists(p_path + ".import")) { + files.push_back(p_path); + } return; } + DirAccess *da = DirAccess::open(p_path); + da->list_dir_begin(); + String n = da->get_next(); + while (n != String()) { + if (n != "." && n != ".." && !n.ends_with(".import")) { + String npath = p_path + n + (da->current_is_dir() ? "/" : ""); + _get_imported_files(npath, files); + } + n = da->get_next(); + } + da->list_dir_end(); +} + +void FileSystemDock::_update_import_dock() { + if (!import_dock_needs_update) + return; + // List selected. Vector<String> selected; if (display_mode == DISPLAY_MODE_TREE_ONLY) { @@ -2444,29 +2464,24 @@ void FileSystemDock::_update_import_dock() { } else { // Use the file list. for (int i = 0; i < files->get_item_count(); i++) { - if (!files->is_selected(i)) { + if (!files->is_selected(i)) continue; - } selected.push_back(files->get_item_metadata(i)); } } + // Expand directory selection + Vector<String> efiles; + for (int i = 0; i < selected.size(); i++) { + _get_imported_files(selected[i], efiles); + } + // Check import. Vector<String> imports; String import_type; - for (int i = 0; i < selected.size(); i++) { - String fpath = selected[i]; - - if (fpath.ends_with("/")) { - imports.clear(); - break; - } - - if (!FileAccess::exists(fpath + ".import")) { - imports.clear(); - break; - } + for (int i = 0; i < efiles.size(); i++) { + String fpath = efiles[i]; Ref<ConfigFile> cf; cf.instance(); Error err = cf->load(fpath + ".import"); diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index b0118f11aa..ec2a075834 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -195,6 +195,7 @@ private: void _file_multi_selected(int p_index, bool p_selected); void _tree_multi_selected(Object *p_item, int p_column, bool p_selected); + void _get_imported_files(const String &p_path, Vector<String> &files) const; void _update_import_dock(); void _get_all_items_in_dir(EditorFileSystemDirectory *efsd, Vector<String> &files, Vector<String> &folders) const; diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index bd4bb57dcf..c2ccbdb08c 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -54,7 +54,7 @@ inline void pop_back(T &container) { } // TODO Copied from TextEdit private, would be nice to extract it in a single place -static bool is_text_char(CharType c) { +static bool is_text_char(char32_t c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_'; } @@ -854,7 +854,7 @@ public: String get_line(FileAccess *f) { _line_buffer.clear(); - CharType c = f->get_8(); + char32_t c = f->get_8(); while (!f->eof_reached()) { if (c == '\n') { diff --git a/editor/icons/GuiToggleOff.svg b/editor/icons/GuiToggleOff.svg index 928b55b201..9644ef176c 100644 --- a/editor/icons/GuiToggleOff.svg +++ b/editor/icons/GuiToggleOff.svg @@ -1 +1 @@ -<svg height="26" viewBox="0 0 42 25.999998" width="42" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0"><rect fill-opacity=".188235" height="16" rx="9" stroke-width="55.8958" width="38" x="2" y="5"/><circle cx="10" cy="13" r="5" stroke-width="97.3613"/></g></svg> +<svg height="16" viewBox="0 0 38 15.999999" width="38" xmlns="http://www.w3.org/2000/svg"><g fill="#e0e0e0"><rect fill-opacity=".188235" height="14" rx="7" stroke-width="55.8958" width="36" x="1" y="1"/><circle cx="8" cy="8" r="5" stroke-width="97.3613"/></g></svg> diff --git a/editor/icons/GuiToggleOn.svg b/editor/icons/GuiToggleOn.svg index a79a8290b1..8ab0998f71 100644 --- a/editor/icons/GuiToggleOn.svg +++ b/editor/icons/GuiToggleOn.svg @@ -1 +1 @@ -<svg height="26" viewBox="0 0 42 25.999998" width="42" xmlns="http://www.w3.org/2000/svg"><path d="m11 5c-4.986 0-9 3.568-9 8s4.014 8 9 8h20c4.986 0 9-3.568 9-8s-4.014-8-9-8zm21 3a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z" fill="#e0e0e0" stroke-width="55.8958"/></svg> +<svg height="16" viewBox="0 0 38 15.999999" width="38" xmlns="http://www.w3.org/2000/svg"><path d="m8 1c-3.878 0-7 3.122-7 7s3.122 7 7 7h22c3.878 0 7-3.122 7-7s-3.122-7-7-7zm22 2a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z" fill="#e0e0e0" stroke-width="55.8958"/></svg> diff --git a/editor/input_map_editor.cpp b/editor/input_map_editor.cpp index 52cf9c1869..c67e16d371 100644 --- a/editor/input_map_editor.cpp +++ b/editor/input_map_editor.cpp @@ -100,7 +100,7 @@ void InputMapEditor::_notification(int p_what) { } static bool _validate_action_name(const String &p_name) { - const CharType *cstr = p_name.c_str(); + const char32_t *cstr = p_name.get_data(); for (int i = 0; cstr[i]; i++) { if (cstr[i] == '/' || cstr[i] == ':' || cstr[i] == '"' || cstr[i] == '=' || cstr[i] == '\\' || cstr[i] < 32) { diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index f3508cedbd..9427f82f9e 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -2599,6 +2599,11 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) { void CanvasItemEditor::_update_cursor() { CursorShape c = CURSOR_ARROW; + bool should_switch = false; + if (drag_selection.size() != 0) { + float angle = drag_selection[0]->_edit_get_rotation(); + should_switch = abs(Math::cos(angle)) < Math_SQRT12; + } switch (drag_type) { case DRAG_NONE: switch (tool) { @@ -2621,21 +2626,37 @@ void CanvasItemEditor::_update_cursor() { case DRAG_LEFT: case DRAG_RIGHT: case DRAG_V_GUIDE: - c = CURSOR_HSIZE; + if (should_switch) { + c = CURSOR_VSIZE; + } else { + c = CURSOR_HSIZE; + } break; case DRAG_TOP: case DRAG_BOTTOM: case DRAG_H_GUIDE: - c = CURSOR_VSIZE; + if (should_switch) { + c = CURSOR_HSIZE; + } else { + c = CURSOR_VSIZE; + } break; case DRAG_TOP_LEFT: case DRAG_BOTTOM_RIGHT: case DRAG_DOUBLE_GUIDE: - c = CURSOR_FDIAGSIZE; + if (should_switch) { + c = CURSOR_BDIAGSIZE; + } else { + c = CURSOR_FDIAGSIZE; + } break; case DRAG_TOP_RIGHT: case DRAG_BOTTOM_LEFT: - c = CURSOR_BDIAGSIZE; + if (should_switch) { + c = CURSOR_FDIAGSIZE; + } else { + c = CURSOR_BDIAGSIZE; + } break; case DRAG_MOVE: c = CURSOR_MOVE; @@ -6235,7 +6256,7 @@ void CanvasItemEditorViewport::_perform_drop_data() { files_str += error_files[i].get_file().get_basename() + ","; } files_str = files_str.substr(0, files_str.length() - 1); - accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.c_str())); + accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.get_data())); accept->popup_centered(); } } diff --git a/editor/plugins/editor_debugger_plugin.cpp b/editor/plugins/editor_debugger_plugin.cpp new file mode 100644 index 0000000000..b775e871e2 --- /dev/null +++ b/editor/plugins/editor_debugger_plugin.cpp @@ -0,0 +1,124 @@ +/*************************************************************************/ +/* editor_debugger_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "editor_debugger_plugin.h" + +#include "editor/debugger/script_editor_debugger.h" + +void EditorDebuggerPlugin::_breaked(bool p_really_did, bool p_can_debug) { + if (p_really_did) { + emit_signal("breaked", p_can_debug); + } else { + emit_signal("continued"); + } +} + +void EditorDebuggerPlugin::_started() { + emit_signal("started"); +} + +void EditorDebuggerPlugin::_stopped() { + emit_signal("stopped"); +} + +void EditorDebuggerPlugin::_bind_methods() { + ClassDB::bind_method(D_METHOD("send_message", "message", "data"), &EditorDebuggerPlugin::send_message); + ClassDB::bind_method(D_METHOD("register_message_capture", "name", "callable"), &EditorDebuggerPlugin::register_message_capture); + ClassDB::bind_method(D_METHOD("unregister_message_capture", "name"), &EditorDebuggerPlugin::unregister_message_capture); + ClassDB::bind_method(D_METHOD("has_capture", "name"), &EditorDebuggerPlugin::has_capture); + ClassDB::bind_method(D_METHOD("is_breaked"), &EditorDebuggerPlugin::is_breaked); + ClassDB::bind_method(D_METHOD("is_debuggable"), &EditorDebuggerPlugin::is_debuggable); + ClassDB::bind_method(D_METHOD("is_session_active"), &EditorDebuggerPlugin::is_session_active); + + ADD_SIGNAL(MethodInfo("started")); + ADD_SIGNAL(MethodInfo("stopped")); + ADD_SIGNAL(MethodInfo("breaked", PropertyInfo(Variant::BOOL, "can_debug"))); + ADD_SIGNAL(MethodInfo("continued")); +} + +void EditorDebuggerPlugin::attach_debugger(ScriptEditorDebugger *p_debugger) { + debugger = p_debugger; + if (debugger) { + debugger->connect("started", callable_mp(this, &EditorDebuggerPlugin::_started)); + debugger->connect("stopped", callable_mp(this, &EditorDebuggerPlugin::_stopped)); + debugger->connect("breaked", callable_mp(this, &EditorDebuggerPlugin::_breaked)); + } +} + +void EditorDebuggerPlugin::detach_debugger(bool p_call_debugger) { + if (debugger) { + debugger->disconnect("started", callable_mp(this, &EditorDebuggerPlugin::_started)); + debugger->disconnect("stopped", callable_mp(this, &EditorDebuggerPlugin::_stopped)); + debugger->disconnect("breaked", callable_mp(this, &EditorDebuggerPlugin::_breaked)); + if (p_call_debugger && get_script_instance()) { + debugger->remove_debugger_plugin(get_script_instance()->get_script()); + } + debugger = nullptr; + } +} + +void EditorDebuggerPlugin::send_message(const String &p_message, const Array &p_args) { + ERR_FAIL_COND_MSG(!debugger, "Plugin is not attached to debugger"); + debugger->send_message(p_message, p_args); +} + +void EditorDebuggerPlugin::register_message_capture(const StringName &p_name, const Callable &p_callable) { + ERR_FAIL_COND_MSG(!debugger, "Plugin is not attached to debugger"); + debugger->register_message_capture(p_name, p_callable); +} + +void EditorDebuggerPlugin::unregister_message_capture(const StringName &p_name) { + ERR_FAIL_COND_MSG(!debugger, "Plugin is not attached to debugger"); + debugger->unregister_message_capture(p_name); +} + +bool EditorDebuggerPlugin::has_capture(const StringName &p_name) { + ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger"); + return debugger->has_capture(p_name); +} + +bool EditorDebuggerPlugin::is_breaked() { + ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger"); + return debugger->is_breaked(); +} + +bool EditorDebuggerPlugin::is_debuggable() { + ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger"); + return debugger->is_debuggable(); +} + +bool EditorDebuggerPlugin::is_session_active() { + ERR_FAIL_COND_V_MSG(!debugger, false, "Plugin is not attached to debugger"); + return debugger->is_session_active(); +} + +EditorDebuggerPlugin::~EditorDebuggerPlugin() { + detach_debugger(true); +} diff --git a/editor/plugins/editor_debugger_plugin.h b/editor/plugins/editor_debugger_plugin.h new file mode 100644 index 0000000000..10fd1151de --- /dev/null +++ b/editor/plugins/editor_debugger_plugin.h @@ -0,0 +1,64 @@ +/*************************************************************************/ +/* editor_debugger_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#ifndef EDITOR_DEBUGGER_PLUGIN_H +#define EDITOR_DEBUGGER_PLUGIN_H + +#include "scene/gui/control.h" + +class ScriptEditorDebugger; + +class EditorDebuggerPlugin : public Control { + GDCLASS(EditorDebuggerPlugin, Control); + +private: + ScriptEditorDebugger *debugger = nullptr; + + void _breaked(bool p_really_did, bool p_can_debug); + void _started(); + void _stopped(); + +protected: + static void _bind_methods(); + +public: + void attach_debugger(ScriptEditorDebugger *p_debugger); + void detach_debugger(bool p_call_debugger); + void send_message(const String &p_message, const Array &p_args); + void register_message_capture(const StringName &p_name, const Callable &p_callable); + void unregister_message_capture(const StringName &p_name); + bool has_capture(const StringName &p_name); + bool is_breaked(); + bool is_debuggable(); + bool is_session_active(); + ~EditorDebuggerPlugin(); +}; + +#endif // EDITOR_DEBUGGER_PLUGIN_H diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp index 2889cb50a0..3cf4dc5ac8 100644 --- a/editor/plugins/editor_preview_plugins.cpp +++ b/editor/plugins/editor_preview_plugins.cpp @@ -466,7 +466,7 @@ EditorMaterialPreviewPlugin::~EditorMaterialPreviewPlugin() { /////////////////////////////////////////////////////////////////////////// -static bool _is_text_char(CharType c) { +static bool _is_text_char(char32_t c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_'; } @@ -525,7 +525,7 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size bool prev_is_text = false; bool in_keyword = false; for (int i = 0; i < code.length(); i++) { - CharType c = code[i]; + char32_t c = code[i]; if (c > 32) { if (col < thumbnail_size) { Color color = text_color; diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index b4b81cc7f0..952487c13c 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -2059,7 +2059,12 @@ void Node3DEditorViewport::_nav_pan(Ref<InputEventWithModifiers> p_event, const camera_transform.translate(cursor.pos); camera_transform.basis.rotate(Vector3(1, 0, 0), -cursor.x_rot); camera_transform.basis.rotate(Vector3(0, 1, 0), -cursor.y_rot); - Vector3 translation(-p_relative.x * pan_speed, p_relative.y * pan_speed, 0); + const bool invert_x_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_x_axis"); + const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis"); + Vector3 translation( + (invert_x_axis ? -1 : 1) * -p_relative.x * pan_speed, + (invert_y_axis ? -1 : 1) * p_relative.y * pan_speed, + 0); translation *= cursor.distance / DISTANCE_DEFAULT; camera_transform.translate(translation); cursor.pos = camera_transform.origin; @@ -2100,17 +2105,24 @@ void Node3DEditorViewport::_nav_orbit(Ref<InputEventWithModifiers> p_event, cons _menu_option(VIEW_PERSPECTIVE); } - real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity"); - real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); - bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis"); + const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_sensitivity"); + const real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); + const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis"); + const bool invert_x_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_x_axis"); if (invert_y_axis) { cursor.x_rot -= p_relative.y * radians_per_pixel; } else { cursor.x_rot += p_relative.y * radians_per_pixel; } - cursor.y_rot += p_relative.x * radians_per_pixel; + // Clamp the Y rotation to roughly -90..90 degrees so the user can't look upside-down and end up disoriented. cursor.x_rot = CLAMP(cursor.x_rot, -1.57, 1.57); + + if (invert_x_axis) { + cursor.y_rot -= p_relative.x * radians_per_pixel; + } else { + cursor.y_rot += p_relative.x * radians_per_pixel; + } name = ""; _update_name(); } @@ -2125,21 +2137,23 @@ void Node3DEditorViewport::_nav_look(Ref<InputEventWithModifiers> p_event, const _menu_option(VIEW_PERSPECTIVE); } - real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity"); - real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); - bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis"); + const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity"); + const real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); + const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis"); // Note: do NOT assume the camera has the "current" transform, because it is interpolated and may have "lag". - Transform prev_camera_transform = to_camera_transform(cursor); + const Transform prev_camera_transform = to_camera_transform(cursor); if (invert_y_axis) { cursor.x_rot -= p_relative.y * radians_per_pixel; } else { cursor.x_rot += p_relative.y * radians_per_pixel; } - cursor.y_rot += p_relative.x * radians_per_pixel; + // Clamp the Y rotation to roughly -90..90 degrees so the user can't look upside-down and end up disoriented. cursor.x_rot = CLAMP(cursor.x_rot, -1.57, 1.57); + cursor.y_rot += p_relative.x * radians_per_pixel; + // Look is like the opposite of Orbit: the focus point rotates around the camera Transform camera_transform = to_camera_transform(cursor); Vector3 pos = camera_transform.xform(Vector3(0, 0, 0)); @@ -3715,7 +3729,7 @@ void Node3DEditorViewport::_perform_drop_data() { files_str += error_files[i].get_file().get_basename() + ","; } files_str = files_str.substr(0, files_str.length() - 1); - accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.c_str())); + accept->set_text(vformat(TTR("Error instancing scene from %s"), files_str.get_data())); accept->popup_centered(); } } diff --git a/editor/plugins/packed_scene_translation_parser_plugin.cpp b/editor/plugins/packed_scene_translation_parser_plugin.cpp index 52af0008b7..608b5c3104 100644 --- a/editor/plugins/packed_scene_translation_parser_plugin.cpp +++ b/editor/plugins/packed_scene_translation_parser_plugin.cpp @@ -37,7 +37,7 @@ void PackedSceneEditorTranslationParserPlugin::get_recognized_extensions(List<St ResourceLoader::get_recognized_extensions_for_type("PackedScene", r_extensions); } -Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_extracted_strings) { +Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural) { // Parse specific scene Node's properties (see in constructor) that are auto-translated by the engine when set. E.g Label's text property. // These properties are translated with the tr() function in the C++ code when being set or updated. @@ -71,8 +71,10 @@ Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path, String extension = s->get_language()->get_extension(); if (EditorTranslationParser::get_singleton()->can_parse(extension)) { Vector<String> temp; - EditorTranslationParser::get_singleton()->get_parser(extension)->parse_file(s->get_path(), &temp); + Vector<Vector<String>> ids_context_plural; + EditorTranslationParser::get_singleton()->get_parser(extension)->parse_file(s->get_path(), &temp, &ids_context_plural); parsed_strings.append_array(temp); + r_ids_ctx_plural->append_array(ids_context_plural); } } else if (property_name == "filters") { // Extract FileDialog's filters property with values in format "*.png ; PNG Images","*.gd ; GDScript Files". @@ -93,7 +95,7 @@ Error PackedSceneEditorTranslationParserPlugin::parse_file(const String &p_path, } } - r_extracted_strings->append_array(parsed_strings); + r_ids->append_array(parsed_strings); return OK; } diff --git a/editor/plugins/packed_scene_translation_parser_plugin.h b/editor/plugins/packed_scene_translation_parser_plugin.h index 2bd4dae995..a0ffdf692c 100644 --- a/editor/plugins/packed_scene_translation_parser_plugin.h +++ b/editor/plugins/packed_scene_translation_parser_plugin.h @@ -40,7 +40,7 @@ class PackedSceneEditorTranslationParserPlugin : public EditorTranslationParserP Set<String> lookup_properties; public: - virtual Error parse_file(const String &p_path, Vector<String> *r_extracted_strings) override; + virtual Error parse_file(const String &p_path, Vector<String> *r_ids, Vector<Vector<String>> *r_ids_ctx_plural) override; virtual void get_recognized_extensions(List<String> *r_extensions) const override; PackedSceneEditorTranslationParserPlugin(); diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index 1073da7d8c..5007983581 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -36,6 +36,8 @@ #include "editor/editor_settings.h" #include "scene/3d/sprite_3d.h" #include "scene/gui/center_container.h" +#include "scene/gui/margin_container.h" +#include "scene/gui/panel_container.h" void SpriteFramesEditor::_gui_input(Ref<InputEvent> p_event) { } @@ -140,8 +142,27 @@ void SpriteFramesEditor::_sheet_preview_input(const Ref<InputEvent> &p_event) { } } +void SpriteFramesEditor::_sheet_scroll_input(const Ref<InputEvent> &p_event) { + const Ref<InputEventMouseButton> mb = p_event; + + if (mb.is_valid()) { + // Zoom in/out using Ctrl + mouse wheel. This is done on the ScrollContainer + // to allow performing this action anywhere, even if the cursor isn't + // hovering the texture in the workspace. + if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed() && mb->get_control()) { + _sheet_zoom_in(); + // Don't scroll up after zooming in. + accept_event(); + } else if (mb->get_button_index() == BUTTON_WHEEL_DOWN && mb->is_pressed() && mb->get_control()) { + _sheet_zoom_out(); + // Don't scroll down after zooming out. + accept_event(); + } + } +} + void SpriteFramesEditor::_sheet_add_frames() { - Size2i size = split_sheet_preview->get_size(); + Size2i size = split_sheet_preview->get_texture()->get_size(); int h = split_sheet_h->get_value(); int v = split_sheet_v->get_value(); @@ -180,6 +201,28 @@ void SpriteFramesEditor::_sheet_add_frames() { undo_redo->commit_action(); } +void SpriteFramesEditor::_sheet_zoom_in() { + if (sheet_zoom < max_sheet_zoom) { + sheet_zoom *= scale_ratio; + Size2 texture_size = split_sheet_preview->get_texture()->get_size(); + split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom); + } +} + +void SpriteFramesEditor::_sheet_zoom_out() { + if (sheet_zoom > min_sheet_zoom) { + sheet_zoom /= scale_ratio; + Size2 texture_size = split_sheet_preview->get_texture()->get_size(); + split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom); + } +} + +void SpriteFramesEditor::_sheet_zoom_reset() { + sheet_zoom = 1.f; + Size2 texture_size = split_sheet_preview->get_texture()->get_size(); + split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom); +} + void SpriteFramesEditor::_sheet_select_clear_all_frames() { bool should_clear = true; for (int i = 0; i < split_sheet_h->get_value() * split_sheet_v->get_value(); i++) { @@ -207,15 +250,18 @@ void SpriteFramesEditor::_prepare_sprite_sheet(const String &p_file) { EditorNode::get_singleton()->show_warning(TTR("Unable to load images")); ERR_FAIL_COND(!texture.is_valid()); } - if (texture != split_sheet_preview->get_texture()) { - //different texture, reset to 4x4 - split_sheet_h->set_value(4); - split_sheet_v->set_value(4); - } + bool new_texture = texture != split_sheet_preview->get_texture(); frames_selected.clear(); last_frame_selected = -1; split_sheet_preview->set_texture(texture); + if (new_texture) { + //different texture, reset to 4x4 + split_sheet_h->set_value(4); + split_sheet_v->set_value(4); + //reset zoom + _sheet_zoom_reset(); + } split_sheet_dialog->popup_centered_ratio(0.65); } @@ -231,8 +277,14 @@ void SpriteFramesEditor::_notification(int p_what) { move_up->set_icon(get_theme_icon("MoveLeft", "EditorIcons")); move_down->set_icon(get_theme_icon("MoveRight", "EditorIcons")); _delete->set_icon(get_theme_icon("Remove", "EditorIcons")); + zoom_out->set_icon(get_theme_icon("ZoomLess", "EditorIcons")); + zoom_1->set_icon(get_theme_icon("ZoomReset", "EditorIcons")); + zoom_in->set_icon(get_theme_icon("ZoomMore", "EditorIcons")); new_anim->set_icon(get_theme_icon("New", "EditorIcons")); remove_anim->set_icon(get_theme_icon("Remove", "EditorIcons")); + split_sheet_zoom_out->set_icon(get_theme_icon("ZoomLess", "EditorIcons")); + split_sheet_zoom_1->set_icon(get_theme_icon("ZoomReset", "EditorIcons")); + split_sheet_zoom_in->set_icon(get_theme_icon("ZoomMore", "EditorIcons")); [[fallthrough]]; } case NOTIFICATION_THEME_CHANGED: { @@ -636,6 +688,54 @@ void SpriteFramesEditor::_animation_fps_changed(double p_value) { undo_redo->commit_action(); } +void SpriteFramesEditor::_tree_input(const Ref<InputEvent> &p_event) { + const Ref<InputEventMouseButton> mb = p_event; + + if (mb.is_valid()) { + if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed() && mb->get_control()) { + _zoom_in(); + // Don't scroll up after zooming in. + accept_event(); + } else if (mb->get_button_index() == BUTTON_WHEEL_DOWN && mb->is_pressed() && mb->get_control()) { + _zoom_out(); + // Don't scroll down after zooming out. + accept_event(); + } + } +} + +void SpriteFramesEditor::_zoom_in() { + // Do not zoom in or out with no visible frames + if (frames->get_frame_count(edited_anim) <= 0) { + return; + } + if (thumbnail_zoom < max_thumbnail_zoom) { + thumbnail_zoom *= scale_ratio; + int thumbnail_size = (int)(thumbnail_default_size * thumbnail_zoom); + tree->set_fixed_column_width(thumbnail_size * 3 / 2); + tree->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size)); + } +} + +void SpriteFramesEditor::_zoom_out() { + // Do not zoom in or out with no visible frames + if (frames->get_frame_count(edited_anim) <= 0) { + return; + } + if (thumbnail_zoom > min_thumbnail_zoom) { + thumbnail_zoom /= scale_ratio; + int thumbnail_size = (int)(thumbnail_default_size * thumbnail_zoom); + tree->set_fixed_column_width(thumbnail_size * 3 / 2); + tree->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size)); + } +} + +void SpriteFramesEditor::_zoom_reset() { + thumbnail_zoom = 1.0f; + tree->set_fixed_column_width(thumbnail_default_size * 3 / 2); + tree->set_fixed_icon_size(Size2(thumbnail_default_size, thumbnail_default_size)); +} + void SpriteFramesEditor::_update_library(bool p_skip_selector) { updating = true; @@ -727,6 +827,9 @@ void SpriteFramesEditor::edit(SpriteFrames *p_frames) { } _update_library(); + // Clear zoom and split sheet texture + split_sheet_preview->set_texture(Ref<Texture2D>()); + _zoom_reset(); } else { hide(); } @@ -892,11 +995,16 @@ SpriteFramesEditor::SpriteFramesEditor() { animations->connect("item_edited", callable_mp(this, &SpriteFramesEditor::_animation_name_edited)); animations->set_allow_reselect(true); + HBoxContainer *hbc_anim_speed = memnew(HBoxContainer); + hbc_anim_speed->add_child(memnew(Label(TTR("Speed:")))); + vbc_animlist->add_child(hbc_anim_speed); anim_speed = memnew(SpinBox); - vbc_animlist->add_margin_child(TTR("Speed (FPS):"), anim_speed); + anim_speed->set_suffix(TTR("FPS")); anim_speed->set_min(0); anim_speed->set_max(100); anim_speed->set_step(0.01); + anim_speed->set_h_size_flags(SIZE_EXPAND_FILL); + hbc_anim_speed->add_child(anim_speed); anim_speed->connect("value_changed", callable_mp(this, &SpriteFramesEditor::_animation_fps_changed)); anim_loop = memnew(CheckButton); @@ -965,6 +1073,24 @@ SpriteFramesEditor::SpriteFramesEditor() { _delete->set_tooltip(TTR("Delete")); hbc->add_child(_delete); + hbc->add_spacer(); + + zoom_out = memnew(Button); + zoom_out->connect("pressed", callable_mp(this, &SpriteFramesEditor::_zoom_out)); + zoom_out->set_flat(true); + zoom_out->set_tooltip(TTR("Zoom Out")); + hbc->add_child(zoom_out); + zoom_1 = memnew(Button); + zoom_1->connect("pressed", callable_mp(this, &SpriteFramesEditor::_zoom_reset)); + zoom_1->set_flat(true); + zoom_1->set_tooltip(TTR("Zoom Reset")); + hbc->add_child(zoom_1); + zoom_in = memnew(Button); + zoom_in->connect("pressed", callable_mp(this, &SpriteFramesEditor::_zoom_in)); + zoom_in->set_flat(true); + zoom_in->set_tooltip(TTR("Zoom In")); + hbc->add_child(zoom_in); + file = memnew(EditorFileDialog); add_child(file); @@ -972,13 +1098,11 @@ SpriteFramesEditor::SpriteFramesEditor() { tree->set_v_size_flags(SIZE_EXPAND_FILL); tree->set_icon_mode(ItemList::ICON_MODE_TOP); - int thumbnail_size = 96; tree->set_max_columns(0); tree->set_icon_mode(ItemList::ICON_MODE_TOP); - tree->set_fixed_column_width(thumbnail_size * 3 / 2); tree->set_max_text_lines(2); - tree->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size)); tree->set_drag_forwarding(this); + tree->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_tree_input)); sub_vb->add_child(tree); @@ -1042,8 +1166,13 @@ SpriteFramesEditor::SpriteFramesEditor() { split_sheet_vb->add_child(split_sheet_hb); + PanelContainer *split_sheet_panel = memnew(PanelContainer); + split_sheet_panel->set_h_size_flags(SIZE_EXPAND_FILL); + split_sheet_panel->set_v_size_flags(SIZE_EXPAND_FILL); + split_sheet_vb->add_child(split_sheet_panel); + split_sheet_preview = memnew(TextureRect); - split_sheet_preview->set_expand(false); + split_sheet_preview->set_expand(true); split_sheet_preview->set_mouse_filter(MOUSE_FILTER_PASS); split_sheet_preview->connect("draw", callable_mp(this, &SpriteFramesEditor::_sheet_preview_draw)); split_sheet_preview->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_sheet_preview_input)); @@ -1051,20 +1180,58 @@ SpriteFramesEditor::SpriteFramesEditor() { splite_sheet_scroll = memnew(ScrollContainer); splite_sheet_scroll->set_enable_h_scroll(true); splite_sheet_scroll->set_enable_v_scroll(true); - splite_sheet_scroll->set_v_size_flags(SIZE_EXPAND_FILL); + splite_sheet_scroll->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_sheet_scroll_input)); + split_sheet_panel->add_child(splite_sheet_scroll); CenterContainer *cc = memnew(CenterContainer); cc->add_child(split_sheet_preview); cc->set_h_size_flags(SIZE_EXPAND_FILL); cc->set_v_size_flags(SIZE_EXPAND_FILL); splite_sheet_scroll->add_child(cc); - split_sheet_vb->add_child(splite_sheet_scroll); + MarginContainer *split_sheet_zoom_margin = memnew(MarginContainer); + split_sheet_panel->add_child(split_sheet_zoom_margin); + split_sheet_zoom_margin->set_h_size_flags(0); + split_sheet_zoom_margin->set_v_size_flags(0); + split_sheet_zoom_margin->add_theme_constant_override("margin_top", 5); + split_sheet_zoom_margin->add_theme_constant_override("margin_left", 5); + HBoxContainer *split_sheet_zoom_hb = memnew(HBoxContainer); + split_sheet_zoom_margin->add_child(split_sheet_zoom_hb); + + split_sheet_zoom_out = memnew(Button); + split_sheet_zoom_out->set_flat(true); + split_sheet_zoom_out->set_focus_mode(FOCUS_NONE); + split_sheet_zoom_out->set_tooltip(TTR("Zoom Out")); + split_sheet_zoom_out->connect("pressed", callable_mp(this, &SpriteFramesEditor::_sheet_zoom_out)); + split_sheet_zoom_hb->add_child(split_sheet_zoom_out); + split_sheet_zoom_1 = memnew(Button); + split_sheet_zoom_1->set_flat(true); + split_sheet_zoom_1->set_focus_mode(FOCUS_NONE); + split_sheet_zoom_1->set_tooltip(TTR("Zoom Reset")); + split_sheet_zoom_1->connect("pressed", callable_mp(this, &SpriteFramesEditor::_sheet_zoom_reset)); + split_sheet_zoom_hb->add_child(split_sheet_zoom_1); + split_sheet_zoom_in = memnew(Button); + split_sheet_zoom_in->set_flat(true); + split_sheet_zoom_in->set_focus_mode(FOCUS_NONE); + split_sheet_zoom_in->set_tooltip(TTR("Zoom In")); + split_sheet_zoom_in->connect("pressed", callable_mp(this, &SpriteFramesEditor::_sheet_zoom_in)); + split_sheet_zoom_hb->add_child(split_sheet_zoom_in); file_split_sheet = memnew(EditorFileDialog); file_split_sheet->set_title(TTR("Create Frames from Sprite Sheet")); file_split_sheet->set_file_mode(EditorFileDialog::FILE_MODE_OPEN_FILE); add_child(file_split_sheet); file_split_sheet->connect("file_selected", callable_mp(this, &SpriteFramesEditor::_prepare_sprite_sheet)); + + // Config scale. + scale_ratio = 1.2f; + thumbnail_default_size = 96; + thumbnail_zoom = 1.0f; + max_thumbnail_zoom = 8.0f; + min_thumbnail_zoom = 0.1f; + sheet_zoom = 1.0f; + max_sheet_zoom = 16.0f; + min_sheet_zoom = 0.01f; + _zoom_reset(); } void SpriteFramesEditorPlugin::edit(Object *p_object) { diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h index ee743fe60d..0dce93f55a 100644 --- a/editor/plugins/sprite_frames_editor_plugin.h +++ b/editor/plugins/sprite_frames_editor_plugin.h @@ -36,6 +36,7 @@ #include "scene/2d/animated_sprite_2d.h" #include "scene/gui/dialogs.h" #include "scene/gui/file_dialog.h" +#include "scene/gui/scroll_container.h" #include "scene/gui/split_container.h" #include "scene/gui/texture_rect.h" #include "scene/gui/tree.h" @@ -52,6 +53,9 @@ class SpriteFramesEditor : public HSplitContainer { Button *empty2; Button *move_up; Button *move_down; + Button *zoom_out; + Button *zoom_1; + Button *zoom_in; ItemList *tree; bool loading_scene; int sel; @@ -79,10 +83,22 @@ class SpriteFramesEditor : public HSplitContainer { TextureRect *split_sheet_preview; SpinBox *split_sheet_h; SpinBox *split_sheet_v; + Button *split_sheet_zoom_out; + Button *split_sheet_zoom_1; + Button *split_sheet_zoom_in; EditorFileDialog *file_split_sheet; Set<int> frames_selected; int last_frame_selected; + float scale_ratio; + int thumbnail_default_size; + float thumbnail_zoom; + float max_thumbnail_zoom; + float min_thumbnail_zoom; + float sheet_zoom; + float max_sheet_zoom; + float min_sheet_zoom; + void _load_pressed(); void _load_scene_pressed(); void _file_load_request(const Vector<String> &p_path, int p_at_pos = -1); @@ -103,6 +119,11 @@ class SpriteFramesEditor : public HSplitContainer { void _animation_loop_changed(); void _animation_fps_changed(double p_value); + void _tree_input(const Ref<InputEvent> &p_event); + void _zoom_in(); + void _zoom_out(); + void _zoom_reset(); + bool updating; UndoRedo *undo_redo; @@ -117,7 +138,11 @@ class SpriteFramesEditor : public HSplitContainer { void _sheet_preview_draw(); void _sheet_spin_changed(double); void _sheet_preview_input(const Ref<InputEvent> &p_event); + void _sheet_scroll_input(const Ref<InputEvent> &p_event); void _sheet_add_frames(); + void _sheet_zoom_in(); + void _sheet_zoom_out(); + void _sheet_zoom_reset(); void _sheet_select_clear_all_frames(); protected: diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp index 762f42abeb..6e722607f7 100644 --- a/editor/plugins/texture_region_editor_plugin.cpp +++ b/editor/plugins/texture_region_editor_plugin.cpp @@ -875,7 +875,7 @@ void TextureRegionEditor::_changed_callback(Object *p_changed, const char *p_pro if (!is_visible()) { return; } - if (p_prop == StringName("atlas") || p_prop == StringName("texture")) { + if (p_prop == StringName("atlas") || p_prop == StringName("texture") || p_prop == StringName("region")) { _edit_region(); } } diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index 18a107ff75..932ded6938 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -206,8 +206,8 @@ void ThemeEditor::_save_template_cbk(String fname) { file->store_line("; [value] examples:"); file->store_line("; "); file->store_line("; Type.item = 6 ; numeric constant. "); - file->store_line("; Type.item = #FF00FF ; HTML color "); - file->store_line("; Type.item = #55FF00FF ; HTML color with alpha 55."); + file->store_line("; Type.item = #FF00FF ; HTML color (magenta)."); + file->store_line("; Type.item = #FF00FF55 ; HTML color (magenta with alpha 0x55)."); file->store_line("; Type.item = icon(image.png) ; icon in a png file (relative to theme file)."); file->store_line("; Type.item = font(font.xres) ; font in a resource (relative to theme file)."); file->store_line("; Type.item = sbox(stylebox.xres) ; stylebox in a resource (relative to theme file)."); @@ -629,7 +629,7 @@ ThemeEditor::ThemeEditor() { ScrollContainer *scroll = memnew(ScrollContainer); add_child(scroll); scroll->set_enable_v_scroll(true); - scroll->set_enable_h_scroll(false); + scroll->set_enable_h_scroll(true); scroll->set_v_size_flags(SIZE_EXPAND_FILL); MarginContainer *root_container = memnew(MarginContainer); diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp index 307a8a9001..e71485e9fc 100644 --- a/editor/plugins/tile_map_editor_plugin.cpp +++ b/editor/plugins/tile_map_editor_plugin.cpp @@ -886,17 +886,17 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p rect.position += tile_ofs; } - rect.position = p_xform.xform(rect.position); - rect.size *= sc; - Color modulate = node->get_tileset()->tile_get_modulate(p_cell); modulate.a = 0.5; + Transform2D old_transform = p_viewport->get_viewport_transform(); + p_viewport->draw_set_transform_matrix(p_xform); // Take into account TileMap transformation when displaying cell if (r.has_no_area()) { p_viewport->draw_texture_rect(t, rect, false, modulate, p_transpose); } else { p_viewport->draw_texture_rect_region(t, rect, r, modulate, p_transpose); } + p_viewport->draw_set_transform_matrix(old_transform); } void TileMapEditor::_draw_fill_preview(Control *p_viewport, int p_cell, const Point2i &p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Point2i &p_autotile_coord, const Transform2D &p_xform) { diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp index a613174ed9..274c64263f 100644 --- a/editor/plugins/tile_set_editor_plugin.cpp +++ b/editor/plugins/tile_set_editor_plugin.cpp @@ -342,11 +342,13 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { left_container->add_child(tileset_toolbar_container); tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE] = memnew(Button); + tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_flat(true); tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tileset_toolbar_button_pressed), varray(TOOL_TILESET_ADD_TEXTURE)); tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]); tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_tooltip(TTR("Add Texture(s) to TileSet.")); tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE] = memnew(Button); + tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_flat(true); tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tileset_toolbar_button_pressed), varray(TOOL_TILESET_REMOVE_TEXTURE)); tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]); tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_tooltip(TTR("Remove selected Texture from TileSet.")); @@ -405,12 +407,14 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tools[SELECT_NEXT] = memnew(Button); tool_hb->add_child(tools[SELECT_NEXT]); tool_hb->move_child(tools[SELECT_NEXT], WORKSPACE_CREATE_SINGLE); + tools[SELECT_NEXT]->set_flat(true); tools[SELECT_NEXT]->set_shortcut(ED_SHORTCUT("tileset_editor/next_shape", TTR("Next Coordinate"), KEY_PAGEDOWN)); tools[SELECT_NEXT]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SELECT_NEXT)); tools[SELECT_NEXT]->set_tooltip(TTR("Select the next shape, subtile, or Tile.")); tools[SELECT_PREVIOUS] = memnew(Button); tool_hb->add_child(tools[SELECT_PREVIOUS]); tool_hb->move_child(tools[SELECT_PREVIOUS], WORKSPACE_CREATE_SINGLE); + tools[SELECT_PREVIOUS]->set_flat(true); tools[SELECT_PREVIOUS]->set_shortcut(ED_SHORTCUT("tileset_editor/previous_shape", TTR("Previous Coordinate"), KEY_PAGEUP)); tools[SELECT_PREVIOUS]->set_tooltip(TTR("Select the previous shape, subtile, or Tile.")); tools[SELECT_PREVIOUS]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SELECT_PREVIOUS)); @@ -467,6 +471,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tools[TOOL_SELECT] = memnew(Button); toolbar->add_child(tools[TOOL_SELECT]); + tools[TOOL_SELECT]->set_flat(true); tools[TOOL_SELECT]->set_toggle_mode(true); tools[TOOL_SELECT]->set_button_group(tg); tools[TOOL_SELECT]->set_pressed(true); @@ -475,20 +480,24 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { separator_bitmask = memnew(VSeparator); toolbar->add_child(separator_bitmask); tools[BITMASK_COPY] = memnew(Button); + tools[BITMASK_COPY]->set_flat(true); tools[BITMASK_COPY]->set_tooltip(TTR("Copy bitmask.")); tools[BITMASK_COPY]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(BITMASK_COPY)); toolbar->add_child(tools[BITMASK_COPY]); tools[BITMASK_PASTE] = memnew(Button); + tools[BITMASK_PASTE]->set_flat(true); tools[BITMASK_PASTE]->set_tooltip(TTR("Paste bitmask.")); tools[BITMASK_PASTE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(BITMASK_PASTE)); toolbar->add_child(tools[BITMASK_PASTE]); tools[BITMASK_CLEAR] = memnew(Button); + tools[BITMASK_CLEAR]->set_flat(true); tools[BITMASK_CLEAR]->set_tooltip(TTR("Erase bitmask.")); tools[BITMASK_CLEAR]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(BITMASK_CLEAR)); toolbar->add_child(tools[BITMASK_CLEAR]); tools[SHAPE_NEW_RECTANGLE] = memnew(Button); toolbar->add_child(tools[SHAPE_NEW_RECTANGLE]); + tools[SHAPE_NEW_RECTANGLE]->set_flat(true); tools[SHAPE_NEW_RECTANGLE]->set_toggle_mode(true); tools[SHAPE_NEW_RECTANGLE]->set_button_group(tg); tools[SHAPE_NEW_RECTANGLE]->set_tooltip(TTR("Create a new rectangle.")); @@ -496,6 +505,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tools[SHAPE_NEW_POLYGON] = memnew(Button); toolbar->add_child(tools[SHAPE_NEW_POLYGON]); + tools[SHAPE_NEW_POLYGON]->set_flat(true); tools[SHAPE_NEW_POLYGON]->set_toggle_mode(true); tools[SHAPE_NEW_POLYGON]->set_button_group(tg); tools[SHAPE_NEW_POLYGON]->set_tooltip(TTR("Create a new polygon.")); @@ -504,12 +514,14 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { separator_shape_toggle = memnew(VSeparator); toolbar->add_child(separator_shape_toggle); tools[SHAPE_TOGGLE_TYPE] = memnew(Button); + tools[SHAPE_TOGGLE_TYPE]->set_flat(true); tools[SHAPE_TOGGLE_TYPE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SHAPE_TOGGLE_TYPE)); toolbar->add_child(tools[SHAPE_TOGGLE_TYPE]); separator_delete = memnew(VSeparator); toolbar->add_child(separator_delete); tools[SHAPE_DELETE] = memnew(Button); + tools[SHAPE_DELETE]->set_flat(true); tools[SHAPE_DELETE]->connect("pressed", callable_mp(this, &TileSetEditor::_on_tool_clicked), varray(SHAPE_DELETE)); toolbar->add_child(tools[SHAPE_DELETE]); @@ -534,11 +546,13 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { separator_grid = memnew(VSeparator); toolbar->add_child(separator_grid); tools[SHAPE_KEEP_INSIDE_TILE] = memnew(Button); + tools[SHAPE_KEEP_INSIDE_TILE]->set_flat(true); tools[SHAPE_KEEP_INSIDE_TILE]->set_toggle_mode(true); tools[SHAPE_KEEP_INSIDE_TILE]->set_pressed(true); tools[SHAPE_KEEP_INSIDE_TILE]->set_tooltip(TTR("Keep polygon inside region Rect.")); toolbar->add_child(tools[SHAPE_KEEP_INSIDE_TILE]); tools[TOOL_GRID_SNAP] = memnew(Button); + tools[TOOL_GRID_SNAP]->set_flat(true); tools[TOOL_GRID_SNAP]->set_toggle_mode(true); tools[TOOL_GRID_SNAP]->set_tooltip(TTR("Enable snap and show grid (configurable via the Inspector).")); tools[TOOL_GRID_SNAP]->connect("toggled", callable_mp(this, &TileSetEditor::_on_grid_snap_toggled)); @@ -549,19 +563,23 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { toolbar->add_child(separator); tools[ZOOM_OUT] = memnew(Button); + tools[ZOOM_OUT]->set_flat(true); tools[ZOOM_OUT]->connect("pressed", callable_mp(this, &TileSetEditor::_zoom_out)); toolbar->add_child(tools[ZOOM_OUT]); tools[ZOOM_OUT]->set_tooltip(TTR("Zoom Out")); tools[ZOOM_1] = memnew(Button); + tools[ZOOM_1]->set_flat(true); tools[ZOOM_1]->connect("pressed", callable_mp(this, &TileSetEditor::_zoom_reset)); toolbar->add_child(tools[ZOOM_1]); tools[ZOOM_1]->set_tooltip(TTR("Zoom Reset")); tools[ZOOM_IN] = memnew(Button); + tools[ZOOM_IN]->set_flat(true); tools[ZOOM_IN]->connect("pressed", callable_mp(this, &TileSetEditor::_zoom_in)); toolbar->add_child(tools[ZOOM_IN]); tools[ZOOM_IN]->set_tooltip(TTR("Zoom In")); tools[VISIBLE_INFO] = memnew(Button); + tools[VISIBLE_INFO]->set_flat(true); tools[VISIBLE_INFO]->set_toggle_mode(true); tools[VISIBLE_INFO]->set_tooltip(TTR("Display Tile Names (Hold Alt Key)")); toolbar->add_child(tools[VISIBLE_INFO]); diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index 53bd1150ec..217294464c 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -177,6 +177,9 @@ bool VisualShaderEditor::_is_available(int p_mode) { case VisualShader::TYPE_LIGHT: current_mode = 4; break; + case VisualShader::TYPE_COMPUTE: + current_mode = 8; + break; default: break; } @@ -191,6 +194,10 @@ bool VisualShaderEditor::_is_available(int p_mode) { temp_mode |= 4; } + if (p_mode == VisualShader::TYPE_COMPUTE) { + temp_mode = 8; + } + if (temp_mode == 0) { temp_mode |= 1; } @@ -2432,6 +2439,7 @@ VisualShaderEditor::VisualShaderEditor() { edit_type->add_item(TTR("Vertex")); edit_type->add_item(TTR("Fragment")); edit_type->add_item(TTR("Light")); + edit_type->add_item(TTR("Compute")); edit_type->select(1); edit_type->connect("item_selected", callable_mp(this, &VisualShaderEditor::_mode_selected)); graph->get_zoom_hbox()->add_child(edit_type); @@ -2644,6 +2652,7 @@ VisualShaderEditor::VisualShaderEditor() { const String input_param_for_fragment_shader_mode = TTR("'%s' input parameter for fragment shader mode."); const String input_param_for_light_shader_mode = TTR("'%s' input parameter for light shader mode."); const String input_param_for_vertex_shader_mode = TTR("'%s' input parameter for vertex shader mode."); + const String input_param_for_compute_shader_mode = TTR("'%s' input parameter for compute shader mode."); const String input_param_for_vertex_and_fragment_shader_mode = TTR("'%s' input parameter for vertex and fragment shader mode."); add_options.push_back(AddOption("Alpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT, Shader::MODE_SPATIAL)); @@ -2717,19 +2726,19 @@ VisualShaderEditor::VisualShaderEditor() { // PARTICLES INPUTS - add_options.push_back(AddOption("Active", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Alpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Color", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Custom", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("CustomAlpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Delta", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("EmissionTransform", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Index", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("LifeTime", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Restart", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Time", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Transform", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Velocity", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Active", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "active"), "active", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Alpha", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "alpha"), "alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Color", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "color"), "color", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Custom", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "custom"), "custom", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("CustomAlpha", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Delta", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("EmissionTransform", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Index", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("LifeTime", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Restart", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Time", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Transform", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "transform"), "transform", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Velocity", "Input", "Compute", "VisualShaderNodeInput", vformat(input_param_for_compute_shader_mode, "velocity"), "velocity", VisualShaderNode::PORT_TYPE_VECTOR, VisualShader::TYPE_COMPUTE, Shader::MODE_PARTICLES)); // SKY INPUTS diff --git a/editor/pot_generator.cpp b/editor/pot_generator.cpp index f9b8722aad..f09750efdc 100644 --- a/editor/pot_generator.cpp +++ b/editor/pot_generator.cpp @@ -31,23 +31,25 @@ #include "pot_generator.h" #include "core/error_macros.h" -#include "core/os/file_access.h" #include "core/project_settings.h" #include "editor_translation_parser.h" #include "plugins/packed_scene_translation_parser_plugin.h" POTGenerator *POTGenerator::singleton = nullptr; -//#define DEBUG_POT - #ifdef DEBUG_POT -void _print_all_translation_strings(const OrderedHashMap<String, Set<String>> &p_all_translation_strings) { - for (auto E_pair = p_all_translation_strings.front(); E_pair; E_pair = E_pair.next()) { - String msg = static_cast<String>(E_pair.key()) + " : "; - for (Set<String>::Element *E = E_pair.value().front(); E; E = E->next()) { - msg += E->get() + " "; +void POTGenerator::_print_all_translation_strings() { + for (auto E = all_translation_strings.front(); E; E = E.next()) { + Vector<MsgidData> v_md = all_translation_strings[E.key()]; + for (int i = 0; i < v_md.size(); i++) { + print_line("++++++"); + print_line("msgid: " + E.key()); + print_line("context: " + v_md[i].ctx); + print_line("msgid_plural: " + v_md[i].plural); + for (Set<String>::Element *E = v_md[i].locations.front(); E; E = E->next()) { + print_line("location: " + E->get()); + } } - print_line(msg); } } #endif @@ -65,27 +67,27 @@ void POTGenerator::generate_pot(const String &p_file) { // Collect all translatable strings according to files order in "POT Generation" setting. for (int i = 0; i < files.size(); i++) { - Vector<String> translation_strings; + Vector<String> msgids; + Vector<Vector<String>> msgids_context_plural; String file_path = files[i]; String file_extension = file_path.get_extension(); if (EditorTranslationParser::get_singleton()->can_parse(file_extension)) { - EditorTranslationParser::get_singleton()->get_parser(file_extension)->parse_file(file_path, &translation_strings); + EditorTranslationParser::get_singleton()->get_parser(file_extension)->parse_file(file_path, &msgids, &msgids_context_plural); } else { ERR_PRINT("Unrecognized file extension " + file_extension + " in generate_pot()"); return; } - // Store translation strings parsed in this iteration along with their corresponding source file - to write into POT later on. - for (int j = 0; j < translation_strings.size(); j++) { - all_translation_strings[translation_strings[j]].insert(file_path); + for (int j = 0; j < msgids_context_plural.size(); j++) { + Vector<String> entry = msgids_context_plural[j]; + _add_new_msgid(entry[0], entry[1], entry[2], file_path); + } + for (int j = 0; j < msgids.size(); j++) { + _add_new_msgid(msgids[j], "", "", file_path); } } -#ifdef DEBUG_POT - _print_all_translation_strings(all_translation_strings); -#endif - _write_to_pot(p_file); } @@ -119,35 +121,86 @@ void POTGenerator::_write_to_pot(const String &p_file) { file->store_string(header); - for (OrderedHashMap<String, Set<String>>::Element E_pair = all_translation_strings.front(); E_pair; E_pair = E_pair.next()) { - String msg = E_pair.key(); + for (OrderedHashMap<String, Vector<MsgidData>>::Element E_pair = all_translation_strings.front(); E_pair; E_pair = E_pair.next()) { + String msgid = E_pair.key(); + Vector<MsgidData> v_msgid_data = E_pair.value(); + for (int i = 0; i < v_msgid_data.size(); i++) { + String context = v_msgid_data[i].ctx; + String plural = v_msgid_data[i].plural; + const Set<String> &locations = v_msgid_data[i].locations; + + // Write file locations. + for (Set<String>::Element *E = locations.front(); E; E = E->next()) { + file->store_line("#: " + E->get().trim_prefix("res://")); + } - // Write file locations. - for (Set<String>::Element *E = E_pair.value().front(); E; E = E->next()) { - file->store_line("#: " + E->get().trim_prefix("res://")); - } + // Write context. + if (!context.empty()) { + file->store_line("msgctxt \"" + context + "\""); + } - // Split \\n and \n. - Vector<String> temp = msg.split("\\n"); - Vector<String> msg_lines; - for (int i = 0; i < temp.size(); i++) { - msg_lines.append_array(temp[i].split("\n")); - if (i < temp.size() - 1) { - // Add \n. - msg_lines.set(msg_lines.size() - 1, msg_lines[msg_lines.size() - 1] + "\\n"); + // Write msgid. + _write_msgid(file, msgid, false); + + // Write msgid_plural + if (!plural.empty()) { + _write_msgid(file, plural, true); + file->store_line("msgstr[0] \"\""); + file->store_line("msgstr[1] \"\"\n"); + } else { + file->store_line("msgstr \"\"\n"); } } + } - // Write msgid. - file->store_string("msgid "); - for (int i = 0; i < msg_lines.size(); i++) { - file->store_line("\"" + msg_lines[i] + "\""); + file->close(); +} + +void POTGenerator::_write_msgid(FileAccess *r_file, const String &p_id, bool p_plural) { + // Split \\n and \n. + Vector<String> temp = p_id.split("\\n"); + Vector<String> msg_lines; + for (int i = 0; i < temp.size(); i++) { + msg_lines.append_array(temp[i].split("\n")); + if (i < temp.size() - 1) { + // Add \n. + msg_lines.set(msg_lines.size() - 1, msg_lines[msg_lines.size() - 1] + "\\n"); } + } - file->store_line("msgstr \"\"\n"); + if (p_plural) { + r_file->store_string("msgid_plural "); + } else { + r_file->store_string("msgid "); } - file->close(); + for (int i = 0; i < msg_lines.size(); i++) { + r_file->store_line("\"" + msg_lines[i] + "\""); + } +} + +void POTGenerator::_add_new_msgid(const String &p_msgid, const String &p_context, const String &p_plural, const String &p_location) { + // Insert new location if msgid under same context exists already. + if (all_translation_strings.has(p_msgid)) { + Vector<MsgidData> &v_mdata = all_translation_strings[p_msgid]; + for (int i = 0; i < v_mdata.size(); i++) { + if (v_mdata[i].ctx == p_context) { + if (!v_mdata[i].plural.empty() && !p_plural.empty() && v_mdata[i].plural != p_plural) { + WARN_PRINT("Redefinition of plural message (msgid_plural), under the same message (msgid) and context (msgctxt)"); + } + v_mdata.write[i].locations.insert(p_location); + return; + } + } + } + + // Add a new entry of msgid, context, plural and location - context and plural might be empty if the inserted msgid doesn't associated + // context or plurals. + MsgidData mdata; + mdata.ctx = p_context; + mdata.plural = p_plural; + mdata.locations.insert(p_location); + all_translation_strings[p_msgid].push_back(mdata); } POTGenerator *POTGenerator::get_singleton() { diff --git a/editor/pot_generator.h b/editor/pot_generator.h index abe1a21d41..8853b784ed 100644 --- a/editor/pot_generator.h +++ b/editor/pot_generator.h @@ -32,14 +32,29 @@ #define POT_GENERATOR_H #include "core/ordered_hash_map.h" +#include "core/os/file_access.h" #include "core/set.h" +//#define DEBUG_POT + class POTGenerator { static POTGenerator *singleton; - // Stores all translatable strings and the source files containing them. - OrderedHashMap<String, Set<String>> all_translation_strings; + + struct MsgidData { + String ctx; + String plural; + Set<String> locations; + }; + // Store msgid as key and the additional data around the msgid - if it's under a context, has plurals and its file locations. + OrderedHashMap<String, Vector<MsgidData>> all_translation_strings; void _write_to_pot(const String &p_file); + void _write_msgid(FileAccess *r_file, const String &p_id, bool p_plural); + void _add_new_msgid(const String &p_msgid, const String &p_context, const String &p_plural, const String &p_location); + +#ifdef DEBUG_POT + void _print_all_translation_strings(); +#endif public: static POTGenerator *get_singleton(); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index a68742a985..ea55029de0 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -330,6 +330,7 @@ private: return; } } + String sp = p.simplify_path(); project_path->set_text(sp); _path_text_changed(sp); @@ -411,7 +412,7 @@ private: _test_path(); if (p_text == "") { - set_message(TTR("It would be a good idea to name your project."), MESSAGE_WARNING); + set_message(TTR("It would be a good idea to name your project."), MESSAGE_ERROR); } } @@ -475,10 +476,12 @@ private: set_message(TTR("Couldn't create project.godot in project path."), MESSAGE_ERROR); } else { f->store_line("[gd_resource type=\"Environment\" load_steps=2 format=2]"); + f->store_line(""); f->store_line("[sub_resource type=\"Sky\" id=1]"); + f->store_line(""); f->store_line("[resource]"); f->store_line("background_mode = 2"); - f->store_line("background_sky = SubResource( 1 )"); + f->store_line("sky = SubResource( 1 )"); memdelete(f); } } @@ -1010,7 +1013,7 @@ public: void update_dock_menu(); void load_projects(); void set_search_term(String p_search_term); - void set_order_option(ProjectListFilter::FilterOption p_option); + void set_order_option(int p_option); void sort_projects(); int get_project_count() const; void select_project(int p_index); @@ -1043,7 +1046,7 @@ private: static void load_project_data(const String &p_property_key, Item &p_item, bool p_favorite); String _search_term; - ProjectListFilter::FilterOption _order_option; + FilterOption _order_option; Set<String> _selected_project_keys; String _last_clicked; // Project key VBoxContainer *_scroll_children; @@ -1053,7 +1056,7 @@ private: }; struct ProjectListComparator { - ProjectListFilter::FilterOption order_option; + FilterOption order_option; // operator< _FORCE_INLINE_ bool operator()(const ProjectList::Item &a, const ProjectList::Item &b) const { @@ -1064,9 +1067,9 @@ struct ProjectListComparator { return false; } switch (order_option) { - case ProjectListFilter::FILTER_PATH: + case PATH: return a.project_key < b.project_key; - case ProjectListFilter::FILTER_EDIT_DATE: + case EDIT_DATE: return a.last_edited > b.last_edited; default: return a.project_name < b.project_name; @@ -1075,8 +1078,7 @@ struct ProjectListComparator { }; ProjectList::ProjectList() { - _order_option = ProjectListFilter::FILTER_EDIT_DATE; - + _order_option = FilterOption::NAME; _scroll_children = memnew(VBoxContainer); _scroll_children->set_h_size_flags(Control::SIZE_EXPAND_FILL); add_child(_scroll_children); @@ -1236,8 +1238,6 @@ void ProjectList::load_projects() { create_project_item_control(i); } - sort_projects(); - set_v_scroll(0); update_icons_async(); @@ -1389,12 +1389,13 @@ void ProjectList::set_search_term(String p_search_term) { _search_term = p_search_term; } -void ProjectList::set_order_option(ProjectListFilter::FilterOption p_option) { - if (_order_option != p_option) { - _order_option = p_option; - EditorSettings::get_singleton()->set("project_manager/sorting_order", (int)_order_option); - EditorSettings::get_singleton()->save(); - } +void ProjectList::set_order_option(int p_option) { + FilterOption selected = (FilterOption)p_option; + EditorSettings::get_singleton()->set("project_manager/sorting_order", p_option); + EditorSettings::get_singleton()->save(); + _order_option = selected; + + sort_projects(); } void ProjectList::sort_projects() { @@ -1796,6 +1797,9 @@ void ProjectList::_bind_methods() { void ProjectManager::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { + search_box->set_right_icon(get_theme_icon("Search", "EditorIcons")); + search_box->set_clear_button_enabled(true); + Engine::get_singleton()->set_editor_hint(false); } break; case NOTIFICATION_RESIZED: { @@ -1804,6 +1808,10 @@ void ProjectManager::_notification(int p_what) { } } break; case NOTIFICATION_READY: { + int default_sorting = (int)EditorSettings::get_singleton()->get("project_manager/sorting_order"); + filter_option->select(default_sorting); + _project_list->set_order_option(default_sorting); + if (_project_list->get_project_count() == 0 && StreamPeerSSL::is_available()) { open_templates->popup_centered(); } @@ -1811,7 +1819,7 @@ void ProjectManager::_notification(int p_what) { if (_project_list->get_project_count() >= 1) { // Focus on the search box immediately to allow the user // to search without having to reach for their mouse - project_filter->search_box->grab_focus(); + search_box->grab_focus(); } } break; case NOTIFICATION_VISIBILITY_CHANGED: { @@ -1831,7 +1839,7 @@ void ProjectManager::_dim_window() { // No transition is applied, as the effect needs to be visible immediately float c = 0.5f; Color dim_color = Color(c, c, c); - gui_base->set_modulate(dim_color); + set_modulate(dim_color); } void ProjectManager::_update_project_buttons() { @@ -1851,7 +1859,7 @@ void ProjectManager::_update_project_buttons() { rename_btn->set_disabled(empty_selection || is_missing_project_selected); run_btn->set_disabled(empty_selection || is_missing_project_selected); - erase_missing_btn->set_visible(_project_list->is_any_project_missing()); + erase_missing_btn->set_disabled(!_project_list->is_any_project_missing()); } void ProjectManager::_unhandled_input(const Ref<InputEvent> &p_ev) { @@ -1928,7 +1936,7 @@ void ProjectManager::_unhandled_input(const Ref<InputEvent> &p_ev) { } break; case KEY_F: { if (k->get_command()) { - this->project_filter->search_box->grab_focus(); + this->search_box->grab_focus(); } else { keycode_handled = false; } @@ -1945,8 +1953,7 @@ void ProjectManager::_unhandled_input(const Ref<InputEvent> &p_ev) { } void ProjectManager::_load_recent_projects() { - _project_list->set_order_option(project_order_filter->get_filter_option()); - _project_list->set_search_term(project_filter->get_search_term()); + _project_list->set_search_term(search_box->get_text().strip_edges()); _project_list->load_projects(); _update_project_buttons(); @@ -1968,7 +1975,7 @@ void ProjectManager::_on_projects_updated() { } void ProjectManager::_on_project_created(const String &dir) { - project_filter->clear(); + search_box->clear(); int i = _project_list->refresh_project(dir); _project_list->select_project(i); _project_list->ensure_project_visible(i); @@ -2111,7 +2118,6 @@ void ProjectManager::_run_project_confirm() { } } -// When you press the "Run" button void ProjectManager::_run_project() { const Set<String> &selected_list = _project_list->get_selected_project_keys(); @@ -2224,8 +2230,6 @@ void ProjectManager::_erase_missing_projects() { void ProjectManager::_language_selected(int p_id) { String lang = language_btn->get_item_metadata(p_id); EditorSettings::get_singleton()->set("interface/editor/editor_language", lang); - language_btn->set_text(lang); - language_btn->set_icon(get_theme_icon("Environment", "EditorIcons")); language_restart_ask->set_text(TTR("Language changed.\nThe interface will update after restarting the editor or project manager.")); language_restart_ask->popup_centered(); @@ -2302,13 +2306,14 @@ void ProjectManager::_scan_multiple_folders(PackedStringArray p_files) { } } -void ProjectManager::_on_order_option_changed() { - _project_list->set_order_option(project_order_filter->get_filter_option()); - _project_list->sort_projects(); +void ProjectManager::_on_order_option_changed(int p_idx) { + if (is_inside_tree()) { + _project_list->set_order_option(p_idx); + } } -void ProjectManager::_on_filter_option_changed() { - _project_list->set_search_term(project_filter->get_search_term()); +void ProjectManager::_on_search_term_changed(const String &p_term) { + _project_list->set_search_term(p_term); _project_list->sort_projects(); // Select the first visible project in the list. @@ -2339,7 +2344,6 @@ ProjectManager::ProjectManager() { { int display_scale = EditorSettings::get_singleton()->get("interface/editor/display_scale"); - float custom_display_scale = EditorSettings::get_singleton()->get("interface/editor/custom_display_scale"); switch (display_scale) { case 0: { @@ -2370,9 +2374,8 @@ ProjectManager::ProjectManager() { case 6: editor_set_scale(2.0); break; - default: { - editor_set_scale(custom_display_scale); + editor_set_scale(EditorSettings::get_singleton()->get("interface/editor/custom_display_scale")); } break; } @@ -2383,28 +2386,26 @@ ProjectManager::ProjectManager() { DisplayServer::get_singleton()->window_set_size(DisplayServer::get_singleton()->window_get_size() * MAX(1, EDSCALE)); } + String cp; + cp += 0xA9; + DisplayServer::get_singleton()->window_set_title(VERSION_NAME + String(" - ") + TTR("Project Manager") + " - " + cp + " 2007-2020 Juan Linietsky, Ariel Manzur & Godot Contributors"); + FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files")); set_anchors_and_margins_preset(Control::PRESET_WIDE); set_theme(create_custom_theme()); - gui_base = memnew(Control); - add_child(gui_base); - gui_base->set_anchors_and_margins_preset(Control::PRESET_WIDE); + set_anchors_and_margins_preset(Control::PRESET_WIDE); Panel *panel = memnew(Panel); - gui_base->add_child(panel); + add_child(panel); panel->set_anchors_and_margins_preset(Control::PRESET_WIDE); - panel->add_theme_style_override("panel", gui_base->get_theme_stylebox("Background", "EditorStyles")); + panel->add_theme_style_override("panel", get_theme_stylebox("Background", "EditorStyles")); VBoxContainer *vb = memnew(VBoxContainer); panel->add_child(vb); vb->set_anchors_and_margins_preset(Control::PRESET_WIDE, Control::PRESET_MODE_MINSIZE, 8 * EDSCALE); - String cp; - cp += 0xA9; - DisplayServer::get_singleton()->window_set_title(VERSION_NAME + String(" - ") + TTR("Project Manager") + " - " + cp + " 2007-2020 Juan Linietsky, Ariel Manzur & Godot Contributors"); - Control *center_box = memnew(Control); center_box->set_v_size_flags(Control::SIZE_EXPAND_FILL); vb->add_child(center_box); @@ -2414,218 +2415,231 @@ ProjectManager::ProjectManager() { tabs->set_anchors_and_margins_preset(Control::PRESET_WIDE); tabs->set_tab_align(TabContainer::ALIGN_LEFT); - HBoxContainer *tree_hb = memnew(HBoxContainer); - projects_hb = tree_hb; - + HBoxContainer *projects_hb = memnew(HBoxContainer); projects_hb->set_name(TTR("Projects")); + tabs->add_child(projects_hb); - tabs->add_child(tree_hb); - - VBoxContainer *search_tree_vb = memnew(VBoxContainer); - tree_hb->add_child(search_tree_vb); - search_tree_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL); - - HBoxContainer *sort_filters = memnew(HBoxContainer); - Label *sort_label = memnew(Label); - sort_label->set_text(TTR("Sort:")); - sort_filters->add_child(sort_label); - Vector<String> sort_filter_titles; - sort_filter_titles.push_back(TTR("Name")); - sort_filter_titles.push_back(TTR("Path")); - sort_filter_titles.push_back(TTR("Last Edited")); - project_order_filter = memnew(ProjectListFilter); - project_order_filter->add_filter_option(); - project_order_filter->_setup_filters(sort_filter_titles); - project_order_filter->set_filter_size(150); - sort_filters->add_child(project_order_filter); - project_order_filter->connect("filter_changed", callable_mp(this, &ProjectManager::_on_order_option_changed)); - project_order_filter->set_custom_minimum_size(Size2(180, 10) * EDSCALE); - - int projects_sorting_order = (int)EditorSettings::get_singleton()->get("project_manager/sorting_order"); - project_order_filter->set_filter_option((ProjectListFilter::FilterOption)projects_sorting_order); - - sort_filters->add_spacer(true); - - project_filter = memnew(ProjectListFilter); - project_filter->add_search_box(); - project_filter->connect("filter_changed", callable_mp(this, &ProjectManager::_on_filter_option_changed)); - project_filter->set_custom_minimum_size(Size2(280, 10) * EDSCALE); - sort_filters->add_child(project_filter); - - search_tree_vb->add_child(sort_filters); - - PanelContainer *pc = memnew(PanelContainer); - pc->add_theme_style_override("panel", gui_base->get_theme_stylebox("bg", "Tree")); - search_tree_vb->add_child(pc); - pc->set_v_size_flags(Control::SIZE_EXPAND_FILL); - - _project_list = memnew(ProjectList); - _project_list->connect(ProjectList::SIGNAL_SELECTION_CHANGED, callable_mp(this, &ProjectManager::_update_project_buttons)); - _project_list->connect(ProjectList::SIGNAL_PROJECT_ASK_OPEN, callable_mp(this, &ProjectManager::_open_selected_projects_ask)); - pc->add_child(_project_list); - _project_list->set_enable_h_scroll(false); - - VBoxContainer *tree_vb = memnew(VBoxContainer); - tree_hb->add_child(tree_vb); - - Button *open = memnew(Button); - open->set_text(TTR("Edit")); - tree_vb->add_child(open); - open->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects_ask)); - open_btn = open; - - Button *run = memnew(Button); - run->set_text(TTR("Run")); - tree_vb->add_child(run); - run->connect("pressed", callable_mp(this, &ProjectManager::_run_project)); - run_btn = run; - - tree_vb->add_child(memnew(HSeparator)); - - Button *scan = memnew(Button); - scan->set_text(TTR("Scan")); - tree_vb->add_child(scan); - scan->connect("pressed", callable_mp(this, &ProjectManager::_scan_projects)); - - tree_vb->add_child(memnew(HSeparator)); - - scan_dir = memnew(FileDialog); - scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM); - scan_dir->set_file_mode(FileDialog::FILE_MODE_OPEN_DIR); - scan_dir->set_title(TTR("Select a Folder to Scan")); // must be after mode or it's overridden - scan_dir->set_current_dir(EditorSettings::get_singleton()->get("filesystem/directories/default_project_path")); - gui_base->add_child(scan_dir); - scan_dir->connect("dir_selected", callable_mp(this, &ProjectManager::_scan_begin)); - - Button *create = memnew(Button); - create->set_text(TTR("New Project")); - tree_vb->add_child(create); - create->connect("pressed", callable_mp(this, &ProjectManager::_new_project)); - - Button *import = memnew(Button); - import->set_text(TTR("Import")); - tree_vb->add_child(import); - import->connect("pressed", callable_mp(this, &ProjectManager::_import_project)); - - Button *rename = memnew(Button); - rename->set_text(TTR("Rename")); - tree_vb->add_child(rename); - rename->connect("pressed", callable_mp(this, &ProjectManager::_rename_project)); - rename_btn = rename; - - Button *erase = memnew(Button); - erase->set_text(TTR("Remove")); - tree_vb->add_child(erase); - erase->connect("pressed", callable_mp(this, &ProjectManager::_erase_project)); - erase_btn = erase; - - Button *erase_missing = memnew(Button); - erase_missing->set_text(TTR("Remove Missing")); - tree_vb->add_child(erase_missing); - erase_missing->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects)); - erase_missing_btn = erase_missing; - - tree_vb->add_spacer(); + { + // Projects + search bar + VBoxContainer *search_tree_vb = memnew(VBoxContainer); + projects_hb->add_child(search_tree_vb); + search_tree_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL); - if (StreamPeerSSL::is_available()) { - asset_library = memnew(EditorAssetLibrary(true)); - asset_library->set_name(TTR("Templates")); - tabs->add_child(asset_library); - asset_library->connect("install_asset", callable_mp(this, &ProjectManager::_install_project)); - } else { - WARN_PRINT("Asset Library not available, as it requires SSL to work."); - } + HBoxContainer *hb = memnew(HBoxContainer); + hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); + search_tree_vb->add_child(hb); - HBoxContainer *settings_hb = memnew(HBoxContainer); - settings_hb->set_alignment(BoxContainer::ALIGN_END); - settings_hb->set_h_grow_direction(Control::GROW_DIRECTION_BEGIN); + search_box = memnew(LineEdit); + search_box->set_placeholder(TTR("Search")); + search_box->set_tooltip(TTR("The search box filters projects by name and last path component.\nTo filter projects by name and full path, the query must contain at least one `/` character.")); + search_box->connect("text_changed", callable_mp(this, &ProjectManager::_on_search_term_changed)); + search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); + hb->add_child(search_box); - Label *version_label = memnew(Label); - String hash = String(VERSION_HASH); - if (hash.length() != 0) { - hash = "." + hash.left(9); - } - version_label->set_text("v" VERSION_FULL_BUILD "" + hash); - // Fade out the version label to be less prominent, but still readable - version_label->set_self_modulate(Color(1, 1, 1, 0.6)); - version_label->set_align(Label::ALIGN_CENTER); - settings_hb->add_child(version_label); + hb->add_spacer(); - language_btn = memnew(OptionButton); - language_btn->set_flat(true); - language_btn->set_focus_mode(Control::FOCUS_NONE); + Label *sort_label = memnew(Label); + sort_label->set_text(TTR("Sort:")); + hb->add_child(sort_label); - Vector<String> editor_languages; - List<PropertyInfo> editor_settings_properties; - EditorSettings::get_singleton()->get_property_list(&editor_settings_properties); - for (List<PropertyInfo>::Element *E = editor_settings_properties.front(); E; E = E->next()) { - PropertyInfo &pi = E->get(); - if (pi.name == "interface/editor/editor_language") { - editor_languages = pi.hint_string.split(","); - } - } - String current_lang = EditorSettings::get_singleton()->get("interface/editor/editor_language"); - for (int i = 0; i < editor_languages.size(); i++) { - String lang = editor_languages[i]; - String lang_name = TranslationServer::get_singleton()->get_locale_name(lang); - language_btn->add_item(lang_name + " [" + lang + "]", i); - language_btn->set_item_metadata(i, lang); - if (current_lang == lang) { - language_btn->select(i); - language_btn->set_text(lang); - } - } - language_btn->set_icon(get_theme_icon("Environment", "EditorIcons")); + filter_option = memnew(OptionButton); + filter_option->set_clip_text(true); + filter_option->set_custom_minimum_size(Size2(150 * EDSCALE, 10 * EDSCALE)); + filter_option->connect("item_selected", callable_mp(this, &ProjectManager::_on_order_option_changed)); + hb->add_child(filter_option); - settings_hb->add_child(language_btn); - language_btn->connect("item_selected", callable_mp(this, &ProjectManager::_language_selected)); + Vector<String> sort_filter_titles; + sort_filter_titles.push_back(TTR("Name")); + sort_filter_titles.push_back(TTR("Path")); + sort_filter_titles.push_back(TTR("Last Edited")); - center_box->add_child(settings_hb); - settings_hb->set_anchors_and_margins_preset(Control::PRESET_TOP_RIGHT); + for (int i = 0; i < sort_filter_titles.size(); i++) { + filter_option->add_item(sort_filter_titles[i]); + } - ////////////////////////////////////////////////////////////// + PanelContainer *pc = memnew(PanelContainer); + pc->add_theme_style_override("panel", get_theme_stylebox("bg", "Tree")); + pc->set_v_size_flags(Control::SIZE_EXPAND_FILL); + search_tree_vb->add_child(pc); - language_restart_ask = memnew(ConfirmationDialog); - language_restart_ask->get_ok()->set_text(TTR("Restart Now")); - language_restart_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_restart_confirm)); - language_restart_ask->get_cancel()->set_text(TTR("Continue")); - gui_base->add_child(language_restart_ask); + _project_list = memnew(ProjectList); + _project_list->connect(ProjectList::SIGNAL_SELECTION_CHANGED, callable_mp(this, &ProjectManager::_update_project_buttons)); + _project_list->connect(ProjectList::SIGNAL_PROJECT_ASK_OPEN, callable_mp(this, &ProjectManager::_open_selected_projects_ask)); + _project_list->set_enable_h_scroll(false); + pc->add_child(_project_list); + } - erase_missing_ask = memnew(ConfirmationDialog); - erase_missing_ask->get_ok()->set_text(TTR("Remove All")); - erase_missing_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects_confirm)); - gui_base->add_child(erase_missing_ask); + { + // Project tab side bar + VBoxContainer *tree_vb = memnew(VBoxContainer); + tree_vb->set_custom_minimum_size(Size2(120, 120)); + projects_hb->add_child(tree_vb); + + Button *create = memnew(Button); + create->set_text(TTR("New Project")); + create->connect("pressed", callable_mp(this, &ProjectManager::_new_project)); + tree_vb->add_child(create); + + Button *import = memnew(Button); + import->set_text(TTR("Import")); + import->connect("pressed", callable_mp(this, &ProjectManager::_import_project)); + tree_vb->add_child(import); + + Button *scan = memnew(Button); + scan->set_text(TTR("Scan")); + scan->connect("pressed", callable_mp(this, &ProjectManager::_scan_projects)); + tree_vb->add_child(scan); + + tree_vb->add_child(memnew(HSeparator)); + + open_btn = memnew(Button); + open_btn->set_text(TTR("Edit")); + open_btn->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects_ask)); + tree_vb->add_child(open_btn); + + run_btn = memnew(Button); + run_btn->set_text(TTR("Run")); + run_btn->connect("pressed", callable_mp(this, &ProjectManager::_run_project)); + tree_vb->add_child(run_btn); + + rename_btn = memnew(Button); + rename_btn->set_text(TTR("Rename")); + rename_btn->connect("pressed", callable_mp(this, &ProjectManager::_rename_project)); + tree_vb->add_child(rename_btn); + + erase_btn = memnew(Button); + erase_btn->set_text(TTR("Remove")); + erase_btn->connect("pressed", callable_mp(this, &ProjectManager::_erase_project)); + tree_vb->add_child(erase_btn); + + erase_missing_btn = memnew(Button); + erase_missing_btn->set_text(TTR("Remove Missing")); + erase_missing_btn->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects)); + tree_vb->add_child(erase_missing_btn); + } - erase_ask = memnew(ConfirmationDialog); - erase_ask->get_ok()->set_text(TTR("Remove")); - erase_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_project_confirm)); - gui_base->add_child(erase_ask); + { + // Version info and language options + HBoxContainer *settings_hb = memnew(HBoxContainer); + settings_hb->set_alignment(BoxContainer::ALIGN_END); + settings_hb->set_h_grow_direction(Control::GROW_DIRECTION_BEGIN); + + Label *version_label = memnew(Label); + String hash = String(VERSION_HASH); + if (hash.length() != 0) { + hash = "." + hash.left(9); + } + version_label->set_text("v" VERSION_FULL_BUILD "" + hash); + version_label->set_self_modulate(Color(1, 1, 1, 0.6)); + version_label->set_align(Label::ALIGN_CENTER); + settings_hb->add_child(version_label); + + language_btn = memnew(OptionButton); + language_btn->set_flat(true); + language_btn->set_icon(get_theme_icon("Environment", "EditorIcons")); + language_btn->set_focus_mode(Control::FOCUS_NONE); + language_btn->connect("item_selected", callable_mp(this, &ProjectManager::_language_selected)); + + Vector<String> editor_languages; + List<PropertyInfo> editor_settings_properties; + EditorSettings::get_singleton()->get_property_list(&editor_settings_properties); + for (List<PropertyInfo>::Element *E = editor_settings_properties.front(); E; E = E->next()) { + PropertyInfo &pi = E->get(); + if (pi.name == "interface/editor/editor_language") { + editor_languages = pi.hint_string.split(","); + break; + } + } - multi_open_ask = memnew(ConfirmationDialog); - multi_open_ask->get_ok()->set_text(TTR("Edit")); - multi_open_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects)); - gui_base->add_child(multi_open_ask); + String current_lang = EditorSettings::get_singleton()->get("interface/editor/editor_language"); + language_btn->set_text(current_lang); - multi_run_ask = memnew(ConfirmationDialog); - multi_run_ask->get_ok()->set_text(TTR("Run")); - multi_run_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_run_project_confirm)); - gui_base->add_child(multi_run_ask); + for (int i = 0; i < editor_languages.size(); i++) { + String lang = editor_languages[i]; + String lang_name = TranslationServer::get_singleton()->get_locale_name(lang); + language_btn->add_item(lang_name + " [" + lang + "]", i); + language_btn->set_item_metadata(i, lang); + if (current_lang == lang) { + language_btn->select(i); + } + } - multi_scan_ask = memnew(ConfirmationDialog); - multi_scan_ask->get_ok()->set_text(TTR("Scan")); - gui_base->add_child(multi_scan_ask); + settings_hb->add_child(language_btn); + center_box->add_child(settings_hb); + settings_hb->set_anchors_and_margins_preset(Control::PRESET_TOP_RIGHT); + } - ask_update_settings = memnew(ConfirmationDialog); - ask_update_settings->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_confirm_update_settings)); - gui_base->add_child(ask_update_settings); + if (StreamPeerSSL::is_available()) { + asset_library = memnew(EditorAssetLibrary(true)); + asset_library->set_name(TTR("Templates")); + tabs->add_child(asset_library); + asset_library->connect("install_asset", callable_mp(this, &ProjectManager::_install_project)); + } else { + WARN_PRINT("Asset Library not available, as it requires SSL to work."); + } - OS::get_singleton()->set_low_processor_usage_mode(true); + { + // Dialogs + language_restart_ask = memnew(ConfirmationDialog); + language_restart_ask->get_ok()->set_text(TTR("Restart Now")); + language_restart_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_restart_confirm)); + language_restart_ask->get_cancel()->set_text(TTR("Continue")); + add_child(language_restart_ask); + + scan_dir = memnew(FileDialog); + scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM); + scan_dir->set_file_mode(FileDialog::FILE_MODE_OPEN_DIR); + scan_dir->set_title(TTR("Select a Folder to Scan")); // must be after mode or it's overridden + scan_dir->set_current_dir(EditorSettings::get_singleton()->get("filesystem/directories/default_project_path")); + add_child(scan_dir); + scan_dir->connect("dir_selected", callable_mp(this, &ProjectManager::_scan_begin)); + + erase_missing_ask = memnew(ConfirmationDialog); + erase_missing_ask->get_ok()->set_text(TTR("Remove All")); + erase_missing_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_missing_projects_confirm)); + add_child(erase_missing_ask); + + erase_ask = memnew(ConfirmationDialog); + erase_ask->get_ok()->set_text(TTR("Remove")); + erase_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_erase_project_confirm)); + add_child(erase_ask); + + multi_open_ask = memnew(ConfirmationDialog); + multi_open_ask->get_ok()->set_text(TTR("Edit")); + multi_open_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_open_selected_projects)); + add_child(multi_open_ask); + + multi_run_ask = memnew(ConfirmationDialog); + multi_run_ask->get_ok()->set_text(TTR("Run")); + multi_run_ask->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_run_project_confirm)); + add_child(multi_run_ask); + + multi_scan_ask = memnew(ConfirmationDialog); + multi_scan_ask->get_ok()->set_text(TTR("Scan")); + add_child(multi_scan_ask); + + ask_update_settings = memnew(ConfirmationDialog); + ask_update_settings->get_ok()->connect("pressed", callable_mp(this, &ProjectManager::_confirm_update_settings)); + add_child(ask_update_settings); + + npdialog = memnew(ProjectDialog); + npdialog->connect("projects_updated", callable_mp(this, &ProjectManager::_on_projects_updated)); + npdialog->connect("project_created", callable_mp(this, &ProjectManager::_on_project_created)); + add_child(npdialog); + + run_error_diag = memnew(AcceptDialog); + run_error_diag->set_title(TTR("Can't run project")); + add_child(run_error_diag); - npdialog = memnew(ProjectDialog); - gui_base->add_child(npdialog); + dialog_error = memnew(AcceptDialog); + add_child(dialog_error); - npdialog->connect("projects_updated", callable_mp(this, &ProjectManager::_on_projects_updated)); - npdialog->connect("project_created", callable_mp(this, &ProjectManager::_on_project_created)); + open_templates = memnew(ConfirmationDialog); + open_templates->set_text(TTR("You currently don't have any projects.\nWould you like to explore official example projects in the Asset Library?")); + open_templates->get_ok()->set_text(TTR("Open Asset Library")); + open_templates->connect("confirmed", callable_mp(this, &ProjectManager::_open_asset_library)); + add_child(open_templates); + } _load_recent_projects(); @@ -2635,18 +2649,7 @@ ProjectManager::ProjectManager() { SceneTree::get_singleton()->get_root()->connect("files_dropped", callable_mp(this, &ProjectManager::_files_dropped)); - run_error_diag = memnew(AcceptDialog); - gui_base->add_child(run_error_diag); - run_error_diag->set_title(TTR("Can't run project")); - - dialog_error = memnew(AcceptDialog); - gui_base->add_child(dialog_error); - - open_templates = memnew(ConfirmationDialog); - open_templates->set_text(TTR("You currently don't have any projects.\nWould you like to explore official example projects in the Asset Library?")); - open_templates->get_ok()->set_text(TTR("Open Asset Library")); - open_templates->connect("confirmed", callable_mp(this, &ProjectManager::_open_asset_library)); - add_child(open_templates); + OS::get_singleton()->set_low_processor_usage_mode(true); } ProjectManager::~ProjectManager() { @@ -2654,82 +2657,3 @@ ProjectManager::~ProjectManager() { EditorSettings::destroy(); } } - -void ProjectListFilter::_setup_filters(Vector<String> options) { - filter_option->clear(); - for (int i = 0; i < options.size(); i++) { - filter_option->add_item(options[i]); - } -} - -void ProjectListFilter::_search_text_changed(const String &p_newtext) { - emit_signal("filter_changed"); -} - -String ProjectListFilter::get_search_term() { - return search_box->get_text().strip_edges(); -} - -ProjectListFilter::FilterOption ProjectListFilter::get_filter_option() { - return _current_filter; -} - -void ProjectListFilter::set_filter_option(FilterOption option) { - filter_option->select((int)option); - _filter_option_selected(0); -} - -void ProjectListFilter::_filter_option_selected(int p_idx) { - FilterOption selected = (FilterOption)(filter_option->get_selected()); - if (_current_filter != selected) { - _current_filter = selected; - if (is_inside_tree()) { - emit_signal("filter_changed"); - } - } -} - -void ProjectListFilter::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE && has_search_box) { - search_box->set_right_icon(get_theme_icon("Search", "EditorIcons")); - search_box->set_clear_button_enabled(true); - } -} - -void ProjectListFilter::_bind_methods() { - ADD_SIGNAL(MethodInfo("filter_changed")); -} - -void ProjectListFilter::add_filter_option() { - filter_option = memnew(OptionButton); - filter_option->set_clip_text(true); - filter_option->connect("item_selected", callable_mp(this, &ProjectListFilter::_filter_option_selected)); - add_child(filter_option); -} - -void ProjectListFilter::add_search_box() { - search_box = memnew(LineEdit); - search_box->set_placeholder(TTR("Search")); - search_box->set_tooltip( - TTR("The search box filters projects by name and last path component.\nTo filter projects by name and full path, the query must contain at least one `/` character.")); - search_box->connect("text_changed", callable_mp(this, &ProjectListFilter::_search_text_changed)); - search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); - add_child(search_box); - - has_search_box = true; -} - -void ProjectListFilter::set_filter_size(int h_size) { - filter_option->set_custom_minimum_size(Size2(h_size * EDSCALE, 10 * EDSCALE)); -} - -ProjectListFilter::ProjectListFilter() { - _current_filter = FILTER_NAME; - has_search_box = false; -} - -void ProjectListFilter::clear() { - if (has_search_box) { - search_box->clear(); - } -} diff --git a/editor/project_manager.h b/editor/project_manager.h index 66b38d0746..407dba0c94 100644 --- a/editor/project_manager.h +++ b/editor/project_manager.h @@ -39,22 +39,31 @@ class ProjectDialog; class ProjectList; -class ProjectListFilter; + +enum FilterOption { + NAME, + PATH, + EDIT_DATE, +}; class ProjectManager : public Control { GDCLASS(ProjectManager, Control); - Button *erase_btn; - Button *erase_missing_btn; + TabContainer *tabs; + + ProjectList *_project_list; + + LineEdit *search_box; + OptionButton *filter_option; + + Button *run_btn; Button *open_btn; Button *rename_btn; - Button *run_btn; + Button *erase_btn; + Button *erase_missing_btn; EditorAssetLibrary *asset_library; - ProjectListFilter *project_filter; - ProjectListFilter *project_order_filter; - FileDialog *scan_dir; ConfirmationDialog *language_restart_ask; ConfirmationDialog *erase_ask; @@ -64,18 +73,12 @@ class ProjectManager : public Control { ConfirmationDialog *multi_scan_ask; ConfirmationDialog *ask_update_settings; ConfirmationDialog *open_templates; + AcceptDialog *run_error_diag; AcceptDialog *dialog_error; ProjectDialog *npdialog; - HBoxContainer *projects_hb; - TabContainer *tabs; - ProjectList *_project_list; - OptionButton *language_btn; - Control *gui_base; - - bool importing; void _open_asset_library(); void _scan_projects(); @@ -94,14 +97,13 @@ class ProjectManager : public Control { void _language_selected(int p_id); void _restart_confirm(); void _exit_dialog(); - void _scan_begin(const String &p_base); - void _confirm_update_settings(); void _load_recent_projects(); void _on_project_created(const String &dir); void _on_projects_updated(); - void _update_scroll_position(const String &dir); + void _scan_multiple_folders(PackedStringArray p_files); + void _scan_begin(const String &p_base); void _scan_dir(const String &path, List<String> *r_projects); void _install_project(const String &p_zip_path, const String &p_title); @@ -109,10 +111,9 @@ class ProjectManager : public Control { void _dim_window(); void _unhandled_input(const Ref<InputEvent> &p_ev); void _files_dropped(PackedStringArray p_files, int p_screen); - void _scan_multiple_folders(PackedStringArray p_files); - void _on_order_option_changed(); - void _on_filter_option_changed(); + void _on_order_option_changed(int p_idx); + void _on_search_term_changed(const String &p_term); protected: void _notification(int p_what); @@ -123,41 +124,4 @@ public: ~ProjectManager(); }; -class ProjectListFilter : public HBoxContainer { - GDCLASS(ProjectListFilter, HBoxContainer); - -public: - enum FilterOption { - FILTER_NAME, - FILTER_PATH, - FILTER_EDIT_DATE, - }; - -private: - friend class ProjectManager; - - OptionButton *filter_option; - LineEdit *search_box; - bool has_search_box; - FilterOption _current_filter; - - void _search_text_changed(const String &p_newtext); - void _filter_option_selected(int p_idx); - -protected: - void _notification(int p_what); - static void _bind_methods(); - -public: - void _setup_filters(Vector<String> options); - void add_filter_option(); - void add_search_box(); - void set_filter_size(int h_size); - String get_search_term(); - FilterOption get_filter_option(); - void set_filter_option(FilterOption); - ProjectListFilter(); - void clear(); -}; - #endif // PROJECT_MANAGER_H diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 0257e31ee7..b6621d0d1e 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -30,8 +30,6 @@ #include "project_settings_editor.h" -#include "core/global_constants.h" -#include "core/os/keyboard.h" #include "core/project_settings.h" #include "editor/editor_export.h" #include "editor/editor_node.h" @@ -48,175 +46,163 @@ void ProjectSettingsEditor::popup_project_settings() { popup_centered_clamped(Size2(900, 700) * EDSCALE, 0.8); } - globals_editor->update_category_list(); + _add_feature_overrides(); + inspector->update_category_list(); + localization_editor->update_translations(); autoload_settings->update_autoload(); plugin_settings->update_plugins(); - set_process_unhandled_input(true); } -void ProjectSettingsEditor::_unhandled_input(const Ref<InputEvent> &p_event) { - const Ref<InputEventKey> k = p_event; - - if (k.is_valid() && k->is_pressed()) { - if (k->get_keycode_with_modifiers() == (KEY_MASK_CMD | KEY_F)) { - if (search_button->is_pressed()) { - search_box->grab_focus(); - search_box->select_all(); - } else { - // This toggles the search bar display while giving the button its "pressed" appearance - search_button->set_pressed(true); - } - - set_input_as_handled(); - } - } +void ProjectSettingsEditor::queue_save() { + timer->start(); } -void ProjectSettingsEditor::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_VISIBILITY_CHANGED: { - if (!is_visible()) { - EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "project_settings", Rect2(get_position(), get_size())); - set_process_unhandled_input(false); - } - } break; - case NOTIFICATION_ENTER_TREE: { - globals_editor->edit(ProjectSettings::get_singleton()); - - search_button->set_icon(get_theme_icon("Search", "EditorIcons")); - search_box->set_right_icon(get_theme_icon("Search", "EditorIcons")); - search_box->set_clear_button_enabled(true); - - restart_close_button->set_icon(get_theme_icon("Close", "EditorIcons")); - restart_container->add_theme_style_override("panel", get_theme_stylebox("bg", "Tree")); - restart_icon->set_texture(get_theme_icon("StatusWarning", "EditorIcons")); - restart_label->add_theme_color_override("font_color", get_theme_color("warning_color", "Editor")); - - } break; - case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { - search_button->set_icon(get_theme_icon("Search", "EditorIcons")); - search_box->set_right_icon(get_theme_icon("Search", "EditorIcons")); - search_box->set_clear_button_enabled(true); - } break; - } +void ProjectSettingsEditor::set_plugins_page() { + tab_container->set_current_tab(plugin_settings->get_index()); } void ProjectSettingsEditor::update_plugins() { plugin_settings->update_plugins(); } -void ProjectSettingsEditor::_item_selected(const String &p_path) { - const String &selected_path = p_path; - if (selected_path == String()) { - return; - } - category->set_text(globals_editor->get_current_section()); - property->set_text(selected_path); - popup_copy_to_feature->set_disabled(false); +void ProjectSettingsEditor::_setting_edited(const String &p_name) { + queue_save(); } -void ProjectSettingsEditor::_item_adds(String) { - _item_add(); +void ProjectSettingsEditor::_advanced_pressed() { + if (advanced->is_pressed()) { + _update_advanced_bar(); + advanced_bar->show(); + } else { + advanced_bar->hide(); + } } -void ProjectSettingsEditor::_item_add() { - // Initialize the property with the default value for the given type. - // The type list starts at 1 (as we exclude Nil), so add 1 to the selected value. - Callable::CallError ce; - const Variant value = Variant::construct(Variant::Type(type->get_selected() + 1), nullptr, 0, ce); - - String catname = category->get_text().strip_edges(); - String propname = property->get_text().strip_edges(); - - if (propname.empty()) { +void ProjectSettingsEditor::_setting_selected(const String &p_path) { + if (p_path == String()) { return; } - if (catname.empty()) { - catname = "global"; - } + category_box->set_text(inspector->get_current_section()); + property_box->set_text(p_path); - String name = catname + "/" + propname; + if (advanced_bar->is_visible()) { + _update_advanced_bar(); // set_text doesn't trigger text_changed + } +} - undo_redo->create_action(TTR("Add Global Property")); +void ProjectSettingsEditor::_add_setting() { + String setting = _get_setting_name(); - undo_redo->add_do_property(ProjectSettings::get_singleton(), name, value); + // Initialize the property with the default value for the given type. + // The type list starts at 1 (as we exclude Nil), so add 1 to the selected value. + Callable::CallError ce; + const Variant value = Variant::construct(Variant::Type(type->get_selected() + 1), nullptr, 0, ce); - if (ProjectSettings::get_singleton()->has_setting(name)) { - undo_redo->add_undo_property(ProjectSettings::get_singleton(), name, ProjectSettings::get_singleton()->get(name)); - } else { - undo_redo->add_undo_property(ProjectSettings::get_singleton(), name, Variant()); - } + undo_redo->create_action(TTR("Add Project Setting")); + undo_redo->add_do_property(ps, setting, value); + undo_redo->add_undo_property(ps, setting, ps->has_setting(setting) ? ps->get(setting) : Variant()); - undo_redo->add_do_method(globals_editor, "update_category_list"); - undo_redo->add_undo_method(globals_editor, "update_category_list"); - undo_redo->add_do_method(this, "_settings_changed"); - undo_redo->add_undo_method(this, "_settings_changed"); + undo_redo->add_do_method(inspector, "update_category_list"); + undo_redo->add_undo_method(inspector, "update_category_list"); + undo_redo->add_do_method(this, "queue_save"); + undo_redo->add_undo_method(this, "queue_save"); undo_redo->commit_action(); - globals_editor->set_current_section(catname); - - _settings_changed(); + inspector->set_current_section(setting.get_slice("/", 1)); } -void ProjectSettingsEditor::_item_del() { - String path = globals_editor->get_inspector()->get_selected_path(); - if (path == String()) { - EditorNode::get_singleton()->show_warning(TTR("Select a setting item first!")); - return; - } - - String property = globals_editor->get_current_section().plus_file(path); - - if (!ProjectSettings::get_singleton()->has_setting(property)) { - EditorNode::get_singleton()->show_warning(vformat(TTR("No property '%s' exists."), property)); - return; - } +void ProjectSettingsEditor::_delete_setting(bool p_confirmed) { + String setting = _get_setting_name(); + Variant value = ps->get(setting); + int order = ps->get_order(setting); - if (ProjectSettings::get_singleton()->get_order(property) < ProjectSettings::NO_BUILTIN_ORDER_BASE) { - EditorNode::get_singleton()->show_warning(vformat(TTR("Setting '%s' is internal, and it can't be deleted."), property)); + if (!p_confirmed) { + del_confirmation->set_text(vformat(TTR("Are you sure you want to delete '%s'?"), setting)); + del_confirmation->popup_centered(); return; } undo_redo->create_action(TTR("Delete Item")); - Variant value = ProjectSettings::get_singleton()->get(property); - int order = ProjectSettings::get_singleton()->get_order(property); + undo_redo->add_do_method(ps, "clear", setting); + undo_redo->add_undo_method(ps, "set", setting, value); + undo_redo->add_undo_method(ps, "set_order", setting, order); - undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", property); - undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", property, value); - undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set_order", property, order); - - undo_redo->add_do_method(globals_editor, "update_category_list"); - undo_redo->add_undo_method(globals_editor, "update_category_list"); - - undo_redo->add_do_method(this, "_settings_changed"); - undo_redo->add_undo_method(this, "_settings_changed"); + undo_redo->add_do_method(inspector, "update_category_list"); + undo_redo->add_undo_method(inspector, "update_category_list"); + undo_redo->add_do_method(this, "queue_save"); + undo_redo->add_undo_method(this, "queue_save"); undo_redo->commit_action(); + + property_box->clear(); } -void ProjectSettingsEditor::_save() { - Error err = ProjectSettings::get_singleton()->save(); - message->set_text(err != OK ? TTR("Error saving settings.") : TTR("Settings saved OK.")); - message->popup_centered(Size2(300, 100) * EDSCALE); +void ProjectSettingsEditor::_text_field_changed(const String &p_text) { + _update_advanced_bar(); } -void ProjectSettingsEditor::_settings_prop_edited(const String &p_name) { - // Method needed to discard the mandatory argument of the property_edited signal - _settings_changed(); +void ProjectSettingsEditor::_feature_selected(int p_index) { + _update_advanced_bar(); } -void ProjectSettingsEditor::_settings_changed() { - timer->start(); +void ProjectSettingsEditor::_update_advanced_bar() { + const String property_text = property_box->get_text().strip_edges(); + + String error_msg = ""; + bool disable_add = true; + bool disable_del = true; + + if (!property_box->get_text().empty()) { + const String setting = _get_setting_name(); + bool setting_exists = ps->has_setting(setting); + if (setting_exists) { + error_msg = TTR(" - Cannot add already existing setting."); + + disable_del = ps->is_builtin_setting(setting); + if (disable_del) { + String msg = TTR(" - Cannot delete built-in setting."); + error_msg += (error_msg == "") ? msg : "\n" + msg; + } + } else { + bool bad_category = false; // Allow empty string. + Vector<String> cats = category_box->get_text().strip_edges().split("/"); + for (int i = 0; i < cats.size(); i++) { + if (!cats[i].is_valid_identifier()) { + bad_category = true; + error_msg = TTR(" - Invalid category name."); + break; + } + } + + disable_add = bad_category; + + if (!property_text.is_valid_identifier()) { + disable_add = true; + String msg = TTR(" - Invalid property name."); + error_msg += (error_msg == "") ? msg : "\n" + msg; + } + } + } + + add_button->set_disabled(disable_add); + del_button->set_disabled(disable_del); + + error_label->set_text(error_msg); + error_label->set_visible(error_msg != ""); } -void ProjectSettingsEditor::queue_save() { - _settings_changed(); +String ProjectSettingsEditor::_get_setting_name() const { + const String cat = category_box->get_text(); + const String name = (cat.empty() ? "global" : cat.strip_edges()).plus_file(property_box->get_text().strip_edges()); + const String feature = feature_override->get_item_text(feature_override->get_selected()); + + return (feature == "") ? name : (name + "." + feature); } -void ProjectSettingsEditor::_copy_to_platform_about_to_show() { +void ProjectSettingsEditor::_add_feature_overrides() { Set<String> presets; presets.insert("bptc"); @@ -230,25 +216,26 @@ void ProjectSettingsEditor::_copy_to_platform_about_to_show() { presets.insert("standalone"); presets.insert("32"); presets.insert("64"); - // Not available as an export platform yet, so it needs to be added manually - presets.insert("Server"); + presets.insert("Server"); // Not available as an export platform yet, so it needs to be added manually + + EditorExport *ee = EditorExport::get_singleton(); - for (int i = 0; i < EditorExport::get_singleton()->get_export_platform_count(); i++) { + for (int i = 0; i < ee->get_export_platform_count(); i++) { List<String> p; - EditorExport::get_singleton()->get_export_platform(i)->get_platform_features(&p); + ee->get_export_platform(i)->get_platform_features(&p); for (List<String>::Element *E = p.front(); E; E = E->next()) { presets.insert(E->get()); } } - for (int i = 0; i < EditorExport::get_singleton()->get_export_preset_count(); i++) { + for (int i = 0; i < ee->get_export_preset_count(); i++) { List<String> p; - EditorExport::get_singleton()->get_export_preset(i)->get_platform()->get_preset_features(EditorExport::get_singleton()->get_export_preset(i), &p); + ee->get_export_preset(i)->get_platform()->get_preset_features(ee->get_export_preset(i), &p); for (List<String>::Element *E = p.front(); E; E = E->next()) { presets.insert(E->get()); } - String custom = EditorExport::get_singleton()->get_export_preset(i)->get_custom_features(); + String custom = ee->get_export_preset(i)->get_custom_features(); Vector<String> custom_list = custom.split(","); for (int j = 0; j < custom_list.size(); j++) { String f = custom_list[j].strip_edges(); @@ -258,70 +245,14 @@ void ProjectSettingsEditor::_copy_to_platform_about_to_show() { } } - popup_copy_to_feature->get_popup()->clear(); - int id = 0; + feature_override->clear(); + feature_override->add_item("", 0); // So it is always on top. + int id = 1; for (Set<String>::Element *E = presets.front(); E; E = E->next()) { - popup_copy_to_feature->get_popup()->add_item(E->get(), id++); + feature_override->add_item(E->get(), id++); } } -void ProjectSettingsEditor::_copy_to_platform(int p_which) { - String path = globals_editor->get_inspector()->get_selected_path(); - if (path == String()) { - EditorNode::get_singleton()->show_warning(TTR("Select a setting item first!")); - return; - } - - String property = globals_editor->get_current_section().plus_file(path); - - undo_redo->create_action(TTR("Override for Feature")); - - Variant value = ProjectSettings::get_singleton()->get(property); - if (property.find(".") != -1) { //overwriting overwrite, keep overwrite - undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", property); - undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", property, value); - } - - String feature = popup_copy_to_feature->get_popup()->get_item_text(p_which); - String new_path = property + "." + feature; - - undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", new_path, value); - if (ProjectSettings::get_singleton()->has_setting(new_path)) { - undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set", new_path, ProjectSettings::get_singleton()->get(new_path)); - } - - undo_redo->add_do_method(globals_editor, "update_category_list"); - undo_redo->add_undo_method(globals_editor, "update_category_list"); - - undo_redo->add_do_method(this, "_settings_changed"); - undo_redo->add_undo_method(this, "_settings_changed"); - - undo_redo->commit_action(); -} - -void ProjectSettingsEditor::_toggle_search_bar(bool p_pressed) { - globals_editor->get_inspector()->set_use_filter(p_pressed); - - if (p_pressed) { - search_bar->show(); - add_prop_bar->hide(); - search_box->grab_focus(); - search_box->select_all(); - } else { - search_box->clear(); - search_bar->hide(); - add_prop_bar->show(); - } -} - -void ProjectSettingsEditor::set_plugins_page() { - tab_container->set_current_tab(plugin_settings->get_index()); -} - -TabContainer *ProjectSettingsEditor::get_tabs() { - return tab_container; -} - void ProjectSettingsEditor::_editor_restart() { EditorNode::get_singleton()->save_all_scenes(); EditorNode::get_singleton()->restart_editor(); @@ -335,17 +266,48 @@ void ProjectSettingsEditor::_editor_restart_close() { restart_container->hide(); } -void ProjectSettingsEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_unhandled_input"), &ProjectSettingsEditor::_unhandled_input); - ClassDB::bind_method(D_METHOD("_save"), &ProjectSettingsEditor::_save); +void ProjectSettingsEditor::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_VISIBILITY_CHANGED: { + if (!is_visible()) { + EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "project_settings", Rect2(get_position(), get_size())); + if (advanced->is_pressed()) { + advanced->set_pressed(false); + advanced_bar->hide(); + } + } + } break; + case NOTIFICATION_ENTER_TREE: { + inspector->edit(ps); + + error_label->add_theme_color_override("font_color", error_label->get_theme_color("error_color", "Editor")); + add_button->set_icon(get_theme_icon("Add", "EditorIcons")); + del_button->set_icon(get_theme_icon("Remove", "EditorIcons")); + + search_box->set_right_icon(get_theme_icon("Search", "EditorIcons")); + search_box->set_clear_button_enabled(true); - ClassDB::bind_method(D_METHOD("get_tabs"), &ProjectSettingsEditor::get_tabs); + restart_close_button->set_icon(get_theme_icon("Close", "EditorIcons")); + restart_container->add_theme_style_override("panel", get_theme_stylebox("bg", "Tree")); + restart_icon->set_texture(get_theme_icon("StatusWarning", "EditorIcons")); + restart_label->add_theme_color_override("font_color", get_theme_color("warning_color", "Editor")); + } break; + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { + search_box->set_right_icon(get_theme_icon("Search", "EditorIcons")); + search_box->set_clear_button_enabled(true); + } break; + } +} + +void ProjectSettingsEditor::_bind_methods() { + ClassDB::bind_method(D_METHOD("queue_save"), &ProjectSettingsEditor::queue_save); } ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { singleton = this; set_title(TTR("Project Settings (project.godot)")); + ps = ProjectSettings::get_singleton(); undo_redo = &p_data->get_undo_redo(); data = p_data; @@ -354,103 +316,109 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { tab_container->set_use_hidden_tabs_for_min_size(true); add_child(tab_container); - VBoxContainer *props_base = memnew(VBoxContainer); - props_base->set_name(TTR("General")); - props_base->set_alignment(BoxContainer::ALIGN_BEGIN); - props_base->set_v_size_flags(Control::SIZE_EXPAND_FILL); - tab_container->add_child(props_base); - - HBoxContainer *hbc = memnew(HBoxContainer); - hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL); - props_base->add_child(hbc); - - search_button = memnew(Button); - search_button->set_text(TTR("Search")); - search_button->set_toggle_mode(true); - search_button->set_pressed(false); - search_button->connect("toggled", callable_mp(this, &ProjectSettingsEditor::_toggle_search_bar)); - hbc->add_child(search_button); - - hbc->add_child(memnew(VSeparator)); - - add_prop_bar = memnew(HBoxContainer); - add_prop_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL); - hbc->add_child(add_prop_bar); - - Label *l = memnew(Label); - l->set_text(TTR("Category:")); - add_prop_bar->add_child(l); - - category = memnew(LineEdit); - category->set_h_size_flags(Control::SIZE_EXPAND_FILL); - category->connect("text_entered", callable_mp(this, &ProjectSettingsEditor::_item_adds)); - add_prop_bar->add_child(category); - - l = memnew(Label); - l->set_text(TTR("Property:")); - add_prop_bar->add_child(l); - - property = memnew(LineEdit); - property->set_h_size_flags(Control::SIZE_EXPAND_FILL); - property->connect("text_entered", callable_mp(this, &ProjectSettingsEditor::_item_adds)); - add_prop_bar->add_child(property); - - l = memnew(Label); - l->set_text(TTR("Type:")); - add_prop_bar->add_child(l); - - type = memnew(OptionButton); - type->set_h_size_flags(Control::SIZE_EXPAND_FILL); - add_prop_bar->add_child(type); - - // Start at 1 to avoid adding "Nil" as an option - for (int i = 1; i < Variant::VARIANT_MAX; i++) { - type->add_item(Variant::get_type_name(Variant::Type(i))); + VBoxContainer *general_editor = memnew(VBoxContainer); + general_editor->set_name(TTR("General")); + general_editor->set_alignment(BoxContainer::ALIGN_BEGIN); + general_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL); + tab_container->add_child(general_editor); + + VBoxContainer *header = memnew(VBoxContainer); + header->set_h_size_flags(Control::SIZE_EXPAND_FILL); + general_editor->add_child(header); + + { + // Search bar. + search_bar = memnew(HBoxContainer); + search_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL); + header->add_child(search_bar); + + search_box = memnew(LineEdit); + search_box->set_placeholder(TTR("Search")); + search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); + search_bar->add_child(search_box); + + advanced = memnew(CheckButton); + advanced->set_text(TTR("Advanced")); + advanced->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_advanced_pressed)); + search_bar->add_child(advanced); } - Button *add = memnew(Button); - add->set_text(TTR("Add")); - add->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_item_add)); - add_prop_bar->add_child(add); - - search_bar = memnew(HBoxContainer); - search_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL); - search_bar->hide(); - hbc->add_child(search_bar); - - search_box = memnew(LineEdit); - search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); - search_bar->add_child(search_box); + { + // Advanced bar. + advanced_bar = memnew(VBoxContainer); + advanced_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL); + advanced_bar->hide(); + header->add_child(advanced_bar); + + advanced_bar->add_child(memnew(HSeparator)); + + HBoxContainer *hbc = memnew(HBoxContainer); + hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL); + advanced_bar->add_margin_child(TTR("Add or Remove Custom Project Settings:"), hbc, true); + + category_box = memnew(LineEdit); + category_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); + category_box->connect("text_changed", callable_mp(this, &ProjectSettingsEditor::_text_field_changed)); + category_box->set_placeholder(TTR("Category")); + hbc->add_child(category_box); + + Label *l = memnew(Label); + l->set_text("/"); + hbc->add_child(l); + + property_box = memnew(LineEdit); + property_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); + property_box->set_placeholder(TTR("Property")); + property_box->connect("text_changed", callable_mp(this, &ProjectSettingsEditor::_text_field_changed)); + hbc->add_child(property_box); + + l = memnew(Label); + l->set_text(TTR("Type:")); + hbc->add_child(l); + + type = memnew(OptionButton); + type->set_custom_minimum_size(Size2(100, 0) * EDSCALE); + hbc->add_child(type); + + // Start at 1 to avoid adding "Nil" as an option + for (int i = 1; i < Variant::VARIANT_MAX; i++) { + type->add_item(Variant::get_type_name(Variant::Type(i))); + } - globals_editor = memnew(SectionedInspector); - globals_editor->get_inspector()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo()); - globals_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL); - globals_editor->register_search_box(search_box); - globals_editor->get_inspector()->connect("property_selected", callable_mp(this, &ProjectSettingsEditor::_item_selected)); - globals_editor->get_inspector()->connect("property_edited", callable_mp(this, &ProjectSettingsEditor::_settings_prop_edited)); - globals_editor->get_inspector()->connect("restart_requested", callable_mp(this, &ProjectSettingsEditor::_editor_restart_request)); - props_base->add_child(globals_editor); + l = memnew(Label); + l->set_text(TTR("Feature Override:")); + hbc->add_child(l); - Button *del = memnew(Button); - del->set_text(TTR("Delete")); - del->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_item_del)); - hbc->add_child(del); + feature_override = memnew(OptionButton); + feature_override->set_custom_minimum_size(Size2(100, 0) * EDSCALE); + feature_override->connect("item_selected", callable_mp(this, &ProjectSettingsEditor::_feature_selected)); + hbc->add_child(feature_override); - add_prop_bar->add_child(memnew(VSeparator)); + add_button = memnew(Button); + add_button->set_flat(true); + add_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_add_setting)); + hbc->add_child(add_button); - popup_copy_to_feature = memnew(MenuButton); - popup_copy_to_feature->set_text(TTR("Override For...")); - popup_copy_to_feature->set_disabled(true); - add_prop_bar->add_child(popup_copy_to_feature); + del_button = memnew(Button); + del_button->set_flat(true); + del_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_delete_setting), varray(false)); + hbc->add_child(del_button); - popup_copy_to_feature->get_popup()->connect("id_pressed", callable_mp(this, &ProjectSettingsEditor::_copy_to_platform)); - popup_copy_to_feature->get_popup()->connect("about_to_popup", callable_mp(this, &ProjectSettingsEditor::_copy_to_platform_about_to_show)); + error_label = memnew(Label); + advanced_bar->add_child(error_label); + } - get_ok()->set_text(TTR("Close")); - set_hide_on_ok(true); + inspector = memnew(SectionedInspector); + inspector->get_inspector()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo()); + inspector->set_v_size_flags(Control::SIZE_EXPAND_FILL); + inspector->register_search_box(search_box); + inspector->get_inspector()->connect("property_selected", callable_mp(this, &ProjectSettingsEditor::_setting_selected)); + inspector->get_inspector()->connect("property_edited", callable_mp(this, &ProjectSettingsEditor::_setting_edited)); + inspector->get_inspector()->connect("restart_requested", callable_mp(this, &ProjectSettingsEditor::_editor_restart_request)); + general_editor->add_child(inspector); restart_container = memnew(PanelContainer); - props_base->add_child(restart_container); + general_editor->add_child(restart_container); HBoxContainer *restart_hb = memnew(HBoxContainer); restart_container->hide(); @@ -475,27 +443,24 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { restart_close_button->connect("pressed", callable_mp(this, &ProjectSettingsEditor::_editor_restart_close)); restart_hb->add_child(restart_close_button); - message = memnew(AcceptDialog); - add_child(message); - inputmap_editor = memnew(InputMapEditor); inputmap_editor->set_name(TTR("Input Map")); - inputmap_editor->connect("inputmap_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed)); + inputmap_editor->connect("inputmap_changed", callable_mp(this, &ProjectSettingsEditor::queue_save)); tab_container->add_child(inputmap_editor); localization_editor = memnew(LocalizationEditor); localization_editor->set_name(TTR("Localization")); - localization_editor->connect("localization_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed)); + localization_editor->connect("localization_changed", callable_mp(this, &ProjectSettingsEditor::queue_save)); tab_container->add_child(localization_editor); autoload_settings = memnew(EditorAutoloadSettings); autoload_settings->set_name(TTR("AutoLoad")); - autoload_settings->connect("autoload_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed)); + autoload_settings->connect("autoload_changed", callable_mp(this, &ProjectSettingsEditor::queue_save)); tab_container->add_child(autoload_settings); shaders_global_variables_editor = memnew(ShaderGlobalsEditor); shaders_global_variables_editor->set_name(TTR("Shader Globals")); - shaders_global_variables_editor->connect("globals_changed", callable_mp(this, &ProjectSettingsEditor::_settings_changed)); + shaders_global_variables_editor->connect("globals_changed", callable_mp(this, &ProjectSettingsEditor::queue_save)); tab_container->add_child(shaders_global_variables_editor); plugin_settings = memnew(EditorPluginSettings); @@ -504,7 +469,14 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { timer = memnew(Timer); timer->set_wait_time(1.5); - timer->connect("timeout", callable_mp(ProjectSettings::get_singleton(), &ProjectSettings::save)); + timer->connect("timeout", callable_mp(ps, &ProjectSettings::save)); timer->set_one_shot(true); add_child(timer); + + del_confirmation = memnew(ConfirmationDialog); + del_confirmation->connect("confirmed", callable_mp(this, &ProjectSettingsEditor::_delete_setting), varray(true)); + add_child(del_confirmation); + + get_ok()->set_text(TTR("Close")); + set_hide_on_ok(true); } diff --git a/editor/project_settings_editor.h b/editor/project_settings_editor.h index c99c2fe9a2..4ecd28e514 100644 --- a/editor/project_settings_editor.h +++ b/editor/project_settings_editor.h @@ -35,12 +35,11 @@ #include "editor/editor_data.h" #include "editor/editor_plugin_settings.h" #include "editor/editor_sectioned_inspector.h" +#include "editor/input_map_editor.h" +#include "editor/localization_editor.h" +#include "editor/shader_globals_editor.h" #include "editor_autoload_settings.h" -#include "input_map_editor.h" -#include "localization_editor.h" -#include "scene/gui/dialogs.h" #include "scene/gui/tab_container.h" -#include "shader_globals_editor.h" class ProjectSettingsEditor : public AcceptDialog { GDCLASS(ProjectSettingsEditor, AcceptDialog); @@ -53,28 +52,33 @@ class ProjectSettingsEditor : public AcceptDialog { INPUT_MOUSE_BUTTON }; - TabContainer *tab_container; - AcceptDialog *message; + static ProjectSettingsEditor *singleton; + ProjectSettings *ps; Timer *timer; - HBoxContainer *search_bar; - Button *search_button; - LineEdit *search_box; - HBoxContainer *add_prop_bar; - LineEdit *category; - LineEdit *property; - OptionButton *type; - - SectionedInspector *globals_editor; - - MenuButton *popup_copy_to_feature; - + TabContainer *tab_container; + SectionedInspector *inspector; InputMapEditor *inputmap_editor; LocalizationEditor *localization_editor; EditorAutoloadSettings *autoload_settings; ShaderGlobalsEditor *shaders_global_variables_editor; EditorPluginSettings *plugin_settings; + HBoxContainer *search_bar; + LineEdit *search_box; + CheckButton *advanced; + + VBoxContainer *advanced_bar; + LineEdit *category_box; + LineEdit *property_box; + Button *add_button; + Button *del_button; + OptionButton *type; + OptionButton *feature_override; + Label *error_label; + + ConfirmationDialog *del_confirmation; + Label *restart_label; TextureRect *restart_icon; PanelContainer *restart_container; @@ -83,30 +87,25 @@ class ProjectSettingsEditor : public AcceptDialog { EditorData *data; UndoRedo *undo_redo; - void _item_selected(const String &); - void _item_adds(String); - void _item_add(); - void _item_del(); - void _save(); - - void _settings_prop_edited(const String &p_name); - void _settings_changed(); - - void _copy_to_platform(int p_which); - void _copy_to_platform_about_to_show(); - - void _toggle_search_bar(bool p_pressed); + void _advanced_pressed(); + void _update_advanced_bar(); + void _text_field_changed(const String &p_text); + void _feature_selected(int p_index); - ProjectSettingsEditor(); - - static ProjectSettingsEditor *singleton; + String _get_setting_name() const; + void _setting_edited(const String &p_name); + void _setting_selected(const String &p_path); + void _add_setting(); + void _delete_setting(bool p_confirmed); void _editor_restart_request(); void _editor_restart(); void _editor_restart_close(); + void _add_feature_overrides(); + ProjectSettingsEditor(); + protected: - void _unhandled_input(const Ref<InputEvent> &p_event); void _notification(int p_what); static void _bind_methods(); @@ -117,8 +116,7 @@ public: void update_plugins(); EditorAutoloadSettings *get_autoload_settings() { return autoload_settings; } - - TabContainer *get_tabs(); + TabContainer *get_tabs() { return tab_container; } void queue_save(); diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp index c6c93fae83..27b11e4fb5 100644 --- a/editor/property_selector.cpp +++ b/editor/property_selector.cpp @@ -84,6 +84,9 @@ void PropertySelector::_update_search() { TreeItem *root = search_options->create_item(); + // Allow using spaces in place of underscores in the search string (makes the search more fault-tolerant). + const String search_text = search_box->get_text().replace(" ", "_"); + if (properties) { List<PropertyInfo> props; @@ -167,7 +170,7 @@ void PropertySelector::_update_search() { continue; } - if (search_box->get_text() != String() && E->get().name.find(search_box->get_text()) == -1) { + if (search_box->get_text() != String() && E->get().name.findn(search_text) == -1) { continue; } @@ -180,7 +183,7 @@ void PropertySelector::_update_search() { item->set_metadata(0, E->get().name); item->set_icon(0, type_icons[E->get().type]); - if (!found && search_box->get_text() != String() && E->get().name.find(search_box->get_text()) != -1) { + if (!found && search_box->get_text() != String() && E->get().name.findn(search_text) != -1) { item->select(0); found = true; } @@ -255,7 +258,7 @@ void PropertySelector::_update_search() { continue; } - if (search_box->get_text() != String() && name.find(search_box->get_text()) == -1) { + if (search_box->get_text() != String() && name.findn(search_text) == -1) { continue; } @@ -270,29 +273,29 @@ void PropertySelector::_update_search() { } else if (mi.return_val.type != Variant::NIL) { desc = Variant::get_type_name(mi.return_val.type); } else { - desc = "void "; + desc = "void"; } - desc += " " + mi.name + " ( "; + desc += vformat(" %s(", mi.name); for (int i = 0; i < mi.arguments.size(); i++) { if (i > 0) { desc += ", "; } + desc += mi.arguments[i].name; + if (mi.arguments[i].type == Variant::NIL) { - desc += "var "; + desc += ": Variant"; } else if (mi.arguments[i].name.find(":") != -1) { - desc += mi.arguments[i].name.get_slice(":", 1) + " "; + desc += vformat(": %s", mi.arguments[i].name.get_slice(":", 1)); mi.arguments[i].name = mi.arguments[i].name.get_slice(":", 0); } else { - desc += Variant::get_type_name(mi.arguments[i].type) + " "; + desc += vformat(": %s", Variant::get_type_name(mi.arguments[i].type)); } - - desc += mi.arguments[i].name; } - desc += " )"; + desc += ")"; if (E->get().flags & METHOD_FLAG_CONST) { desc += " const"; @@ -306,7 +309,7 @@ void PropertySelector::_update_search() { item->set_metadata(0, name); item->set_selectable(0, true); - if (!found && search_box->get_text() != String() && name.find(search_box->get_text()) != -1) { + if (!found && search_box->get_text() != String() && name.findn(search_text) != -1) { item->select(0); found = true; } diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp index 211e365454..23990bca07 100644 --- a/editor/rename_dialog.cpp +++ b/editor/rename_dialog.cpp @@ -61,18 +61,16 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und // ---- 1st & 2nd row Label *lbl_search = memnew(Label); - lbl_search->set_text(TTR("Search")); + lbl_search->set_text(TTR("Search:")); lne_search = memnew(LineEdit); - lne_search->set_placeholder(TTR("Search")); lne_search->set_name("lne_search"); lne_search->set_h_size_flags(Control::SIZE_EXPAND_FILL); Label *lbl_replace = memnew(Label); - lbl_replace->set_text(TTR("Replace")); + lbl_replace->set_text(TTR("Replace:")); lne_replace = memnew(LineEdit); - lne_replace->set_placeholder(TTR("Replace")); lne_replace->set_name("lne_replace"); lne_replace->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -84,18 +82,16 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und // ---- 3rd & 4th row Label *lbl_prefix = memnew(Label); - lbl_prefix->set_text(TTR("Prefix")); + lbl_prefix->set_text(TTR("Prefix:")); lne_prefix = memnew(LineEdit); - lne_prefix->set_placeholder(TTR("Prefix")); lne_prefix->set_name("lne_prefix"); lne_prefix->set_h_size_flags(Control::SIZE_EXPAND_FILL); Label *lbl_suffix = memnew(Label); - lbl_suffix->set_text(TTR("Suffix")); + lbl_suffix->set_text(TTR("Suffix:")); lne_suffix = memnew(LineEdit); - lne_suffix->set_placeholder(TTR("Suffix")); lne_suffix->set_name("lne_suffix"); lne_suffix->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -106,8 +102,6 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und // -- Feature Tabs - const int feature_min_height = 160 * EDSCALE; - cbut_regex = memnew(CheckButton); cbut_regex->set_text(TTR("Use Regular Expressions")); vbc->add_child(cbut_regex); @@ -118,13 +112,13 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und tabc_features = memnew(TabContainer); tabc_features->set_tab_align(TabContainer::ALIGN_LEFT); + tabc_features->set_use_hidden_tabs_for_min_size(true); vbc->add_child(tabc_features); // ---- Tab Substitute VBoxContainer *vbc_substitute = memnew(VBoxContainer); vbc_substitute->set_h_size_flags(Control::SIZE_EXPAND_FILL); - vbc_substitute->set_custom_minimum_size(Size2(0, feature_min_height)); vbc_substitute->set_name(TTR("Substitute")); tabc_features->add_child(vbc_substitute); @@ -199,7 +193,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und chk_per_level_counter = memnew(CheckBox); chk_per_level_counter->set_text(TTR("Per-level Counter")); - chk_per_level_counter->set_tooltip(TTR("If set the counter restarts for each group of child nodes.")); + chk_per_level_counter->set_tooltip(TTR("If set, the counter restarts for each group of child nodes.")); vbc_substitute->add_child(chk_per_level_counter); HBoxContainer *hbc_count_options = memnew(HBoxContainer); @@ -241,7 +235,6 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und VBoxContainer *vbc_process = memnew(VBoxContainer); vbc_process->set_h_size_flags(Control::SIZE_EXPAND_FILL); vbc_process->set_name(TTR("Post-Process")); - vbc_process->set_custom_minimum_size(Size2(0, feature_min_height)); tabc_features->add_child(vbc_process); cbut_process = memnew(CheckBox); @@ -285,18 +278,14 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und vbc->add_child(sep_preview); lbl_preview_title = memnew(Label); - lbl_preview_title->set_text(TTR("Preview")); vbc->add_child(lbl_preview_title); lbl_preview = memnew(Label); - lbl_preview->set_text(""); - lbl_preview->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color("error_color", "Editor")); vbc->add_child(lbl_preview); // ---- Dialog related set_min_size(Size2(383, 0)); - //set_as_toplevel(true); get_ok()->set_text(TTR("Rename")); Button *but_reset = add_button(TTR("Reset")); @@ -307,7 +296,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und cbut_collapse_features->connect("toggled", callable_mp(this, &RenameDialog::_features_toggled)); - // Substitite Buttons + // Substitute Buttons lne_search->connect("focus_entered", callable_mp(this, &RenameDialog::_update_substitute)); lne_search->connect("focus_exited", callable_mp(this, &RenameDialog::_update_substitute)); @@ -391,7 +380,7 @@ void RenameDialog::_update_preview(String new_text) { String new_name = _apply_rename(preview_node, spn_count_start->get_value()); if (!has_errors) { - lbl_preview_title->set_text(TTR("Preview")); + lbl_preview_title->set_text(TTR("Preview:")); lbl_preview->set_text(new_name); if (new_name == preview_node->get_name()) { @@ -482,7 +471,7 @@ void RenameDialog::_error_handler(void *p_self, const char *p_func, const char * } self->has_errors = true; - self->lbl_preview_title->set_text(TTR("Regular Expression Error")); + self->lbl_preview_title->set_text(TTR("Regular Expression Error:")); self->lbl_preview->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color("error_color", "Editor")); self->lbl_preview->set_text(vformat(TTR("At character %s"), err_str)); } diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index 7404c9779b..a62448169d 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -258,27 +258,35 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { int num_connections = p_node->get_persistent_signal_connection_count(); int num_groups = p_node->get_persistent_group_count(); + String msg_temp; + if (num_connections >= 1) { + Array arr; + arr.push_back(num_connections); + msg_temp += TTRN("Node has one connection.", "Node has {num} connections.", num_connections).format(arr, "{num}"); + msg_temp += " "; + } + if (num_groups >= 1) { + Array arr; + arr.push_back(num_groups); + msg_temp += TTRN("Node is in one group.", "Node is in {num} groups.", num_groups).format(arr, "{num}"); + } + if (num_connections >= 1 || num_groups >= 1) { + msg_temp += "\n" + TTR("Click to show signals dock."); + } + + Ref<Texture2D> icon_temp; + auto signal_temp = BUTTON_SIGNALS; if (num_connections >= 1 && num_groups >= 1) { - item->add_button( - 0, - get_theme_icon("SignalsAndGroups", "EditorIcons"), - BUTTON_SIGNALS, - false, - vformat(TTR("Node has %s connection(s) and %s group(s).\nClick to show signals dock."), num_connections, num_groups)); + icon_temp = get_theme_icon("SignalsAndGroups", "EditorIcons"); } else if (num_connections >= 1) { - item->add_button( - 0, - get_theme_icon("Signals", "EditorIcons"), - BUTTON_SIGNALS, - false, - vformat(TTR("Node has %s connection(s).\nClick to show signals dock."), num_connections)); + icon_temp = get_theme_icon("Signals", "EditorIcons"); } else if (num_groups >= 1) { - item->add_button( - 0, - get_theme_icon("Groups", "EditorIcons"), - BUTTON_GROUPS, - false, - vformat(TTR("Node is in %s group(s).\nClick to show groups dock."), num_groups)); + icon_temp = get_theme_icon("Groups", "EditorIcons"); + signal_temp = BUTTON_GROUPS; + } + + if (num_connections >= 1 || num_groups >= 1) { + item->add_button(0, icon_temp, signal_temp, false, msg_temp); } } diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp index 628475bbc0..90efb11b7d 100644 --- a/editor/script_create_dialog.cpp +++ b/editor/script_create_dialog.cpp @@ -722,6 +722,15 @@ void ScriptCreateDialog::_update_dialog() { } get_ok()->set_disabled(!script_ok); + + Callable entered_call = callable_mp(this, &ScriptCreateDialog::_path_entered); + if (script_ok) { + if (!file_path->is_connected("text_entered", entered_call)) { + file_path->connect("text_entered", entered_call); + } + } else if (file_path->is_connected("text_entered", entered_call)) { + file_path->disconnect("text_entered", entered_call); + } } void ScriptCreateDialog::_bind_methods() { @@ -849,7 +858,6 @@ ScriptCreateDialog::ScriptCreateDialog() { hb->connect("sort_children", callable_mp(this, &ScriptCreateDialog::_path_hbox_sorted)); file_path = memnew(LineEdit); file_path->connect("text_changed", callable_mp(this, &ScriptCreateDialog::_path_changed)); - file_path->connect("text_entered", callable_mp(this, &ScriptCreateDialog::_path_entered)); file_path->set_h_size_flags(Control::SIZE_EXPAND_FILL); hb->add_child(file_path); path_button = memnew(Button); diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp index 9f286bd8f6..35610ef71b 100644 --- a/editor/settings_config_dialog.cpp +++ b/editor/settings_config_dialog.cpp @@ -405,6 +405,7 @@ EditorSettingsDialog::EditorSettingsDialog() { tab_general->add_child(hbc); search_box = memnew(LineEdit); + search_box->set_placeholder(TTR("Search")); search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); hbc->add_child(search_box); @@ -449,6 +450,7 @@ EditorSettingsDialog::EditorSettingsDialog() { tab_shortcuts->add_child(hbc); shortcut_search_box = memnew(LineEdit); + shortcut_search_box->set_placeholder(TTR("Search")); shortcut_search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); hbc->add_child(shortcut_search_box); shortcut_search_box->connect("text_changed", callable_mp(this, &EditorSettingsDialog::_filter_shortcuts)); diff --git a/editor/translations/af.po b/editor/translations/af.po index 90dca850de..526fe331ae 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -1186,6 +1186,16 @@ msgid "Gold Sponsors" msgstr "Goue Borge" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Silver Skenkers" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Brons Skenkers" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Borge" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 45ac317d99..d5b9ecc9d4 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -43,12 +43,13 @@ # HeroFight dev <abdkafi2002@gmail.com>, 2020. # أحمد مصطفى الطبراني <eltabaraniahmed@gmail.com>, 2020. # ChemicalInk <aladdinalkhafaji@gmail.com>, 2020. +# Musab Alasaifer <mousablasefer@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-21 13:41+0000\n" -"Last-Translator: ChemicalInk <aladdinalkhafaji@gmail.com>\n" +"PO-Revision-Date: 2020-08-20 15:20+0000\n" +"Last-Translator: أحمد مصطفى الطبراني <eltabaraniahmed@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" @@ -57,12 +58,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "معامل type خاطئ لدالة Convert, استخدم احدى الثوابت من مجموعة TYPE_*." +msgstr "معامل خاطئ لدالة ()Convert, استخدم احدى الثوابت من مجموعة TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." @@ -156,11 +157,11 @@ msgstr "أدخل المفتاح هنا" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" -msgstr "استنساخ المفاتيح المحدد(ة)" +msgstr "تكرار المفتاح(المفاتيح) المحدد(ة)" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" -msgstr "إمسح المفاتيح المحدد(ة)" +msgstr "إمسح المفتاح(المفاتيح) المحدد(ة)" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" @@ -184,7 +185,7 @@ msgstr "تغيير وقت الإطار الرئيسي للحركة" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "تغيير إنتقالية التحريك" +msgstr "تغيير إنتقالية الرسوم المتحركة" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" @@ -253,11 +254,11 @@ msgstr "شريط ضبط الحركة" #: editor/animation_track_editor.cpp msgid "Animation length (frames)" -msgstr "مدة الحركة (frames)" +msgstr "مدة الحركة (بالإطارات)" #: editor/animation_track_editor.cpp msgid "Animation length (seconds)" -msgstr "مدة الحركة (seconds)" +msgstr "مدة الحركة (بالثواني)" #: editor/animation_track_editor.cpp msgid "Add Track" @@ -380,7 +381,7 @@ msgstr "حذف مسار التحريك" #: editor/animation_track_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "أنشئ مسار جديد لـ %s و أدخل مفتاح؟" +msgstr "أنشئ مسار جديد لـ %s و إدخال مفتاح؟" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" @@ -444,11 +445,11 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "مسارات الحركة يمكنها فقط أن تشير إلى عقد مشغّل الحركة." +msgstr "مسارات الحركة يمكنها فقط أن تشير إلى عُقد مشغّل الحركة." #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." -msgstr "مشغل الحركة لا يمكنه تحريك نفسه, فقط الاعبين الأخرين." +msgstr "مشغل الحركة لا يمكنه أن يحرك نفسه, فقط الاعبين الأخرين." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" @@ -456,11 +457,11 @@ msgstr "لا يمكن إضافة مقطع جديد بدون جذر" #: editor/animation_track_editor.cpp msgid "Invalid track for Bezier (no suitable sub-properties)" -msgstr "مقطع غير متوافق مع منحنى بيزير Bezier (خصائص فرعية غير متوافقة)" +msgstr "مقطع غير متوافق مع منحنى بيزر (Bezier) (خصائص فرعية غير متوافقة)" #: editor/animation_track_editor.cpp msgid "Add Bezier Track" -msgstr "إضافة مسار لمنحنى بريزير" +msgstr "إضافة مسار لمنحنى بيزر" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." @@ -468,7 +469,7 @@ msgstr "مسار المقطع غير صالح, إذن لا يمكن إضافة #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "المقطع ليس من نوع مكاني (Spatial), لا يمكن إضافة مفتاح." +msgstr "المقطع ليس من نوع مكاني (Spatial), لا يمكن إضافة مفتاح" #: editor/animation_track_editor.cpp msgid "Add Transform Track Key" @@ -496,7 +497,7 @@ msgstr "مفتاح حركة التحريك" #: editor/animation_track_editor.cpp msgid "Clipboard is empty" -msgstr "ذاكرة التخزين المؤقت (Clipboard) فارغة" +msgstr "الحافظة (Clipboard) فارغة" #: editor/animation_track_editor.cpp msgid "Paste Tracks" @@ -509,7 +510,7 @@ msgstr "مفتاح تكبير حركة" #: editor/animation_track_editor.cpp msgid "" "This option does not work for Bezier editing, as it's only a single track." -msgstr "هذا الخيار لا يعمل لتعديل خط (Bezier), لأنه فقط مقطع واحد." +msgstr "هذا الخيار لا يعمل لتعديل منحنى بيزر (Bezier), لأنه فقط مقطع واحد." #: editor/animation_track_editor.cpp msgid "" @@ -523,12 +524,14 @@ msgid "" "Alternatively, use an import preset that imports animations to separate " "files." msgstr "" -"هذا الانيميشن ينتمي الى مشهد مستورد، لذا فإن أي تغييرات في المسارات " -"المستوردة لن يتم حفظها.\n" +"هذه الحركة (رسوم متحركة) تنتمي الى مشهد مستورد، لذا فإن أي تغييرات في " +"المسارات المستوردة لن يتم حفظها.\n" "\n" "لتشغيل الامكانية لإضافة مسارات خاصة، انتقل إلى إعدادات استيراد المشهد واضبط " -"\"Animation > Storage\" إلى \"Files\"، شغل \"Animation > Keep Custom Tracks" -"\"، ثم ..." +"\"رسوم متحركة > تخزين\" إلى \"ملفات\"،\n" +"شغل \"رسوم متحركة > أحتفظ بالمقاطع (المسارات) المخصصة\"، ثم اعد الاستيراد.\n" +"يمكنك ايضاً استخدام إعدادات استيراد مسبقة تقوم باستيراد الرسم المتحرك الى " +"ملفات متفرقة." #: editor/animation_track_editor.cpp msgid "Warning: Editing imported animation" @@ -594,7 +597,7 @@ msgstr "تكرير المحدد" #: editor/animation_track_editor.cpp msgid "Duplicate Transposed" -msgstr "نسخ محمّل" +msgstr "نقل مكرر" #: editor/animation_track_editor.cpp msgid "Delete Selection" @@ -622,7 +625,7 @@ msgstr "إختار العقدة التي سوف يتم تحريكها:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "إستعمل منحنيات بيزية" +msgstr "إستعمل منحنيات بيزر" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -795,7 +798,7 @@ msgid "" "Target method not found. Specify a valid method or attach a script to the " "target node." msgstr "" -"لم يتم العثور على الدالة المستهدفة. حدّد دالة سليمة أو أرفق كود للعقدة " +"لم يتم العثور على الدالة المستهدفة. حدّد دالة سليمة أو أرفق نص برمجي للعقدة " "المستهدفة." #: editor/connections_dialog.cpp @@ -921,7 +924,7 @@ msgstr "تعديل الإتصال:" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "هل أنت(ي) متأكد(ة) أنك تود إزالة كل الإتصالات من الإشارة \"%s\"؟" +msgstr "هل أنت متأكد أنك تود إزالة كل الإتصالات من الإشارة \"%s\"؟" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -929,7 +932,7 @@ msgstr "الإشارات" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" -msgstr "هل أنت(ي) متأكد(ة) أنك تود إزالة كل الإتصالات من هذه الإشارة؟" +msgstr "هل أنت متأكد أنك تود إزالة كل الإتصالات من هذه الإشارة؟" #: editor/connections_dialog.cpp msgid "Disconnect All" @@ -990,7 +993,7 @@ msgstr "البحث عن بديل لـ:" #: editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "تابعة لـ:" +msgstr "تبعيات لـ:" #: editor/dependency_editor.cpp msgid "" @@ -1095,7 +1098,7 @@ msgstr "اخطاء في التحميل!" #: editor/dependency_editor.cpp msgid "Permanently delete %d item(s)? (No undo!)" -msgstr "إمسح نهائيا %d عنصر(عناصر)؟ (بلا رجعة!)" +msgstr "هل تريد حذف %d عنصر (عناصر) نهائيًا؟ (لا تراجع!)" #: editor/dependency_editor.cpp msgid "Show Dependencies" @@ -1131,11 +1134,11 @@ msgstr "تغيير قيمة في القاموس" #: editor/editor_about.cpp msgid "Thanks from the Godot community!" -msgstr "شكراً من مجتمع Godot!" +msgstr "شكراً من مجتمع غودوت!" #: editor/editor_about.cpp msgid "Godot Engine contributors" -msgstr "المسهامين في محرك Godot" +msgstr "المسهامين في محرك غودوت" #: editor/editor_about.cpp msgid "Project Founders" @@ -1166,6 +1169,16 @@ msgid "Gold Sponsors" msgstr "الرعاة الذهبيين" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "المانحين الفضيين" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "المانحين البرنزيين" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "الرعاة الصغار" @@ -1200,9 +1213,9 @@ msgid "" "is an exhaustive list of all such third-party components with their " "respective copyright statements and license terms." msgstr "" -"محرك \"Godot\" يعتمد على عدد من المكتبات و المكونات البرمجية لملاك اخرين و " -"لكنها مجانية و مفتوحة المصدر، و كلها متفقة مع شروط الاستخدام لرخصة \"MIT\". " -"في ما يلي قائمة تحوي جميع هذه المكونات اضافة الى حقوق النشر و شروط الاستخدام " +"محرك غودوت يعتمد على عدد من المكتبات و المكونات البرمجية لملاك اخرين و لكنها " +"مجانية و مفتوحة المصدر، و كلها متفقة مع شروط الاستخدام لرخصة \"MIT\". في ما " +"يلي قائمة تحوي جميع هذه المكونات اضافة الى حقوق النشر و شروط الاستخدام " "الخاصة بها." #: editor/editor_about.cpp @@ -1223,7 +1236,7 @@ msgstr "حدث خطأ عندفتح ملف الحزمة بسبب أن الملف #: editor/editor_asset_installer.cpp msgid "%s (Already Exists)" -msgstr "%s (موجود أصلاً!)" +msgstr "%s (موجود بالفعل!)" #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" @@ -1268,39 +1281,39 @@ msgstr "أضف تأثير" #: editor/editor_audio_buses.cpp msgid "Rename Audio Bus" -msgstr "إعادة تسمية بيوس الصوت" +msgstr "إعادة تسمية مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Change Audio Bus Volume" -msgstr "تغيير حجم صوت البيوس" +msgstr "تغيير حجم صوت مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Solo" -msgstr "تبديل بيوس الصوت إلي فردي" +msgstr "تبديل مسار الصوت إلي فردي" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Mute" -msgstr "تبديل بيوس الصوت إلي صامت" +msgstr "تبديل مسار الصوت إلي صامت" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Bypass Effects" -msgstr "تبديل بيوس الصوت إلي موثرات التبديل" +msgstr "تبديل مسار الصوت إلي موثرات التبديل" #: editor/editor_audio_buses.cpp msgid "Select Audio Bus Send" -msgstr "حدد بيوس الصوت للإرسال" +msgstr "حدد مسار الصوت للإرسال" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus Effect" -msgstr "أضف موثرات إلي بيوس الصوت" +msgstr "أضف موثرات إلي مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Move Bus Effect" -msgstr "حرك مؤثر البيوس" +msgstr "حرك ثأثير مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Delete Bus Effect" -msgstr "مسح تأثير البيوس" +msgstr "مسح تأثير مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Drag & drop to rearrange." @@ -1320,7 +1333,7 @@ msgstr "تخطي" #: editor/editor_audio_buses.cpp msgid "Bus options" -msgstr "إعدادات البيوس" +msgstr "إعدادات مسار الصوت" #: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp @@ -1341,31 +1354,31 @@ msgstr "الصوت" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus" -msgstr "أضف بيوس الصوت" +msgstr "أضف مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Master bus can't be deleted!" -msgstr "البيوس الأساسي لا يمكن مسحة!" +msgstr "مسار الصوت الأساسي لا يمكن مسحة!" #: editor/editor_audio_buses.cpp msgid "Delete Audio Bus" -msgstr "إمسح بيوس الصوت" +msgstr "إمسح مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Duplicate Audio Bus" -msgstr "تكرير بيوس الصوت" +msgstr "تكرار مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Reset Bus Volume" -msgstr "إرجاع صوت البيس" +msgstr "إرجاع صوت المسار" #: editor/editor_audio_buses.cpp msgid "Move Audio Bus" -msgstr "تحريك بيوس الصوت" +msgstr "تحريك مسار الصوت" #: editor/editor_audio_buses.cpp msgid "Save Audio Bus Layout As..." -msgstr "إحفظ نسق بيوس الصوت كـ..." +msgstr "حفظ تخطيط مسار الصوت كـ…" #: editor/editor_audio_buses.cpp msgid "Location for New Layout..." @@ -1373,7 +1386,7 @@ msgstr "المكان للنسق الجديد..." #: editor/editor_audio_buses.cpp msgid "Open Audio Bus Layout" -msgstr "إفتح نسق بيوس الصوت" +msgstr "إفتح نسق مسار الصوت" #: editor/editor_audio_buses.cpp msgid "There is no '%s' file." @@ -1385,15 +1398,15 @@ msgstr "المخطط" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." -msgstr "ملف خطأ، ليس ملف نسق بيوس الصوت." +msgstr "ملف خطأ، ليس ملف نسق مسار الصوت." #: editor/editor_audio_buses.cpp msgid "Error saving file: %s" -msgstr "خطأ !خطأ في تسجيل الملف: s%" +msgstr "خطأ في تحميل الملف: s%" #: editor/editor_audio_buses.cpp msgid "Add Bus" -msgstr "أضف بيوس" +msgstr "أضف مسار" #: editor/editor_audio_buses.cpp msgid "Add a new Audio Bus to this layout." @@ -1407,7 +1420,7 @@ msgstr "تحميل" #: editor/editor_audio_buses.cpp msgid "Load an existing Bus Layout." -msgstr "تحميل نسق بيوس موجود مسبقاً." +msgstr "تحميل نسق مسار موجود مسبقاً." #: editor/editor_audio_buses.cpp msgid "Save As" @@ -1415,7 +1428,7 @@ msgstr "حفظ بأسم" #: editor/editor_audio_buses.cpp msgid "Save this Bus Layout to a file." -msgstr "إحفظ نسق البيوس هذا إلي ملف." +msgstr "إحفظ نسق هذا مسار إلي ملف." #: editor/editor_audio_buses.cpp editor/import_dock.cpp msgid "Load Default" @@ -1423,11 +1436,11 @@ msgstr "تحميل الإفتراضي" #: editor/editor_audio_buses.cpp msgid "Load the default Bus Layout." -msgstr "تحميل نسق البيوس الإفتراضي." +msgstr "تحميل نسق المسار الإفتراضي." #: editor/editor_audio_buses.cpp msgid "Create a new Bus Layout." -msgstr "أنشئ نسق بيوس جديد." +msgstr "أنشئ نسق مسار جديد." #: editor/editor_autoload_settings.cpp msgid "Invalid name." @@ -1475,7 +1488,7 @@ msgstr "ازالة التحميل التلقائي" #: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp msgid "Enable" -msgstr "تمكين" +msgstr "تفعيل" #: editor/editor_autoload_settings.cpp msgid "Rearrange Autoloads" @@ -1483,7 +1496,7 @@ msgstr "اعادة ترتيب التحميلات التلقائية" #: editor/editor_autoload_settings.cpp msgid "Can't add autoload:" -msgstr "لا يمكن اضافة التحميل التلقائي" +msgstr "لا يمكن إضافة التحميل التلقائي:" #: editor/editor_autoload_settings.cpp msgid "Add AutoLoad" @@ -1678,7 +1691,7 @@ msgstr "(المُحرر مُعطّل)" #: editor/editor_feature_profile.cpp msgid "Class Options:" -msgstr "إعدادات الصف Class:" +msgstr "إعدادات الصف (Class):" #: editor/editor_feature_profile.cpp msgid "Enable Contextual Editor" @@ -1747,7 +1760,7 @@ msgstr "إعدادات الصف Class" #: editor/editor_feature_profile.cpp msgid "New profile name:" -msgstr "اسم مَلف profile جديد:" +msgstr "اسم مَلف (profile) جديد:" #: editor/editor_feature_profile.cpp msgid "Erase Profile" @@ -1977,11 +1990,11 @@ msgstr "الافتراضي:" #: editor/editor_help.cpp msgid "Methods" -msgstr "قائمة الطرق" +msgstr "الطُرق" #: editor/editor_help.cpp msgid "Theme Properties" -msgstr "خصائص الثمة" +msgstr "خصائص الثِمة" #: editor/editor_help.cpp msgid "Enumerations" @@ -2009,7 +2022,7 @@ msgstr "" #: editor/editor_help.cpp msgid "Method Descriptions" -msgstr "أوصاف الدوال Method" +msgstr "أوصاف الدوال" #: editor/editor_help.cpp msgid "" @@ -2086,7 +2099,7 @@ msgstr "خاصية" #: editor/editor_help_search.cpp msgid "Theme Property" -msgstr "خاصية الموضوع Theme" +msgstr "خاصية الموضوع (Theme)" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -2231,7 +2244,7 @@ msgstr "حفظ المشهد" #: editor/editor_node.cpp msgid "Analyzing" -msgstr "يحلل" +msgstr "جاري التحليل" #: editor/editor_node.cpp msgid "Creating Thumbnail" @@ -2239,7 +2252,7 @@ msgstr "ينشئ الصورة المصغرة" #: editor/editor_node.cpp msgid "This operation can't be done without a tree root." -msgstr "هذه العملية لا يمكنها الإكتمال من غير جذر شجرة ." +msgstr "هذه العملية لا يمكنها الإكتمال من غير شجرة رئيسة." #: editor/editor_node.cpp msgid "" @@ -2385,7 +2398,7 @@ msgstr "يتطلب حفظ المشهد توافر عُقدة رئيسة." #: editor/editor_node.cpp msgid "Save Scene As..." -msgstr "حفظ المشهد كـ..." +msgstr "حفظ المشهد كـ…" #: editor/editor_node.cpp msgid "No" @@ -2496,31 +2509,33 @@ msgstr "غير قادر علي تفعيل إضافة البرنامج المُس #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" -"غير قادر علي إيجاد منطقة الكود من أجل إضافة البرنامج في: 'res://addons/%s'." +"غير قادر علي إيجاد منطقة النص البرمجي من أجل إضافة البرنامج في: 'res://" +"addons/%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." -msgstr "غير قادر علي تحميل كود الإضافة من المسار: '%s'." +msgstr "غير قادر علي تحميل النص البرمجي للإضافة من المسار: '%s'." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"غير قادر علي تحميل كود الإضافة من المسار: '%s' يبدو أن الكود يوجد فيه " -"أخطاء , الرجاء مراجعة الكود." +"غير قادر علي تحميل النص البرمجي الإضافب من المسار: '%s' يبدو أن شِفرة " +"البرمجية يوجد بها أخطاء , الرجاء مراجعة الشِفرة البرمجية." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." msgstr "" -"غير قادر علي تحميل كود الإضافة من المسار: '%s' النوع الأساسي ليس إضافة " -"المُعدل." +"غير قادر علي تحميل النص البرمجي الإضافي من المسار: '%s' النوع الأساسي ليس " +"إضافة المُعدل." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" -"غير قادر علي تحميل كود الإضافة من المسار: '%s' الكود ليس في وضع الأداة." +"غير قادر علي تحميل النص البرمجي الإضافي من المسار: '%s' النص البرمجي ليس في " +"وضع الأداة." #: editor/editor_node.cpp msgid "" @@ -2705,7 +2720,7 @@ msgstr "تحويل الي..." #: editor/editor_node.cpp msgid "MeshLibrary..." -msgstr "مكتبة الميش..." +msgstr "مكتبة المجسم..." #: editor/editor_node.cpp msgid "TileSet..." @@ -2736,7 +2751,7 @@ msgstr "إعدادات المشروع..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" -msgstr "التحكم في الإصدار" +msgstr "التحكم بالإصدار" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" @@ -2760,7 +2775,7 @@ msgstr "فتح مجلد بيانات المشروع" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" -msgstr "ادوات" +msgstr "أدوات" #: editor/editor_node.cpp msgid "Orphan Resource Explorer..." @@ -2768,7 +2783,7 @@ msgstr "متصفح الموارد أورفان..." #: editor/editor_node.cpp msgid "Quit to Project List" -msgstr "غادر إلى قائمه المشاريع" +msgstr "العودة إلى قائمة المشاريع" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp @@ -2800,11 +2815,11 @@ msgid "" "On Android, deploy will use the USB cable for faster performance. This " "option speeds up testing for games with a large footprint." msgstr "" -"حينما يتم تفعيل هذا الإعداد، التصدير او النشر سوف ينتج ملف تشغيل بالحد " -"الأدني.\n" +"حينما يتم تفعيل هذا الإعداد، التصدير أو النشر سوف ينتج ملف تشغيل بالحد " +"الأدنى (مبسط).\n" "نظام الملفات سوف يتم توفيره بواسطة المُعدل من خلال الشبكة.\n" -"علي الأندرويد، النشر سوف يستخدم وصلة اليو اس بي من أجل أداء أسرع. هذا " -"الأعداد يسرع الإختبار للإلعاب مع الملفات الكثيرة." +"على الأندرويد، النشر سوف يستخدم وصلة اليو إس بي من أجل أداء أسرع. هذا " +"الإعداد يسرّع إختبار الألعاب ذو الحجم الكبير." #: editor/editor_node.cpp msgid "Visible Collision Shapes" @@ -2815,8 +2830,8 @@ msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." msgstr "" -"أشكال الإصطدام و وعقد الراي كاست (من أجل 2D و 3D) سوف تكون ظاهرة في اللعبة " -"العاملة إذا كان هذا الإعداد مُفعل." +"أشكال الإصطدام و عُقد الراي كاست (من أجل 2D و 3D) سوف تكون ظاهرة في اللعبة " +"العاملة إذا كان هذا الإعداد مُفعّل." #: editor/editor_node.cpp msgid "Visible Navigation" @@ -2826,7 +2841,8 @@ msgstr "الإنتقال المرئي" msgid "" "Navigation meshes and polygons will be visible on the running game if this " "option is turned on." -msgstr "ميشات التنقل والبوليجين سوف يكونون ظاهرين حينما يتم تفعيل هذا الإعداد." +msgstr "" +"مجسمات التنقل والأشكال المضلعة سوف تكون ظاهرة حينما يتم تفعيل هذا الإعداد." #: editor/editor_node.cpp msgid "Sync Scene Changes" @@ -2855,22 +2871,22 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" -"حينما يكون هذا الإعداد مُفعل، أي كود يتم حفظه سيتم إعادة تشغيلة في اللعبة " -"العاملة.\n" -"حينما يتم إستخدامة عن بعد علي جهاز، سيكون هذا أكثر فعالية مع نظام شبكات " +"حينما يكون هذا الإعداد مُفعل، أي نص برمجي يتم حفظه سيتم إعادة تحميله في " +"اللعبة العاملة.\n" +"حينما يتم إستخدامه عن بُعد على جهاز، سيكون هذا أكثر فعالية مع نظام شبكات " "الملفات." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" -msgstr "المُعدل" +msgstr "المحرّر" #: editor/editor_node.cpp msgid "Editor Settings..." -msgstr "إعدادات المحرّر" +msgstr "إعدادات المحرّر…" #: editor/editor_node.cpp msgid "Editor Layout" -msgstr "نسق المُعدل" +msgstr "تنسيق المحرّر" #: editor/editor_node.cpp msgid "Take Screenshot" @@ -2878,11 +2894,11 @@ msgstr "أخذ صورة للشاشة" #: editor/editor_node.cpp msgid "Screenshots are stored in the Editor Data/Settings Folder." -msgstr "لقطات الشاشة تكون محفوظة في مجلّد البيانات/الإعدادت داخل المحرّر" +msgstr "لقطات الشاشة تكون محفوظة في مجلّد بيانات/إعدادات المحرّر." #: editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "إلغاء/تفعيل وضع الشاشة الكاملة" +msgstr "تفعيل/إلغاء وضع الشاشة الكاملة" #: editor/editor_node.cpp msgid "Toggle System Console" @@ -2890,11 +2906,11 @@ msgstr "إظهار/إخفاء وحدة التحكم بالنظام" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" -msgstr "فتح مجلّد البيانات/الإعدادت المحرّر" +msgstr "فتح مجلّد بيانات/إعدادات المحرّر" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "افتح ملف بيانات المحرر" +msgstr "فتح مجلّد بيانات المحرّر" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" @@ -2902,7 +2918,7 @@ msgstr "فتح مجلّد إعدادات المحرّر" #: editor/editor_node.cpp msgid "Manage Editor Features..." -msgstr "إدارة ميّزات المحرّر" +msgstr "إدارة ميّزات المحرّر…" #: editor/editor_node.cpp msgid "Manage Export Templates..." @@ -2932,7 +2948,7 @@ msgstr "الأسئلة و الأجوبة" #: editor/editor_node.cpp msgid "Report a Bug" -msgstr "إرسال تقرير عن bug أو خلل في شيء ما" +msgstr "إرسال تقرير عن خلل برمجي" #: editor/editor_node.cpp msgid "Send Docs Feedback" @@ -2944,7 +2960,7 @@ msgstr "المجتمع" #: editor/editor_node.cpp msgid "About" -msgstr "عن" +msgstr "عن هذا التطبيق" #: editor/editor_node.cpp msgid "Play the project." @@ -2956,11 +2972,11 @@ msgstr "تشغيل" #: editor/editor_node.cpp msgid "Pause the scene execution for debugging." -msgstr "إيقاف جلسة المشهد من أجل تنقيح الكبوات البرمجية debugging." +msgstr "إيقاف المشهد الحالي من أجل المعالجة البرمجية." #: editor/editor_node.cpp msgid "Pause Scene" -msgstr "إيقاف مؤقت للمشهد" +msgstr "إيقاف مؤقّت للمشهد" #: editor/editor_node.cpp msgid "Stop the scene." @@ -2968,7 +2984,7 @@ msgstr "إيقاف المشهد." #: editor/editor_node.cpp msgid "Play the edited scene." -msgstr "تشغيل المشهد المُعدل." +msgstr "تشغيل المشهد المُعدّل." #: editor/editor_node.cpp msgid "Play Scene" @@ -2993,7 +3009,7 @@ msgstr "حفظ و إعادة تشغيل" #: editor/editor_node.cpp msgid "Spins when the editor window redraws." -msgstr "يدور حينما يتم إعادة رسم نافذة المحرّر" +msgstr "قم بالتدوير أثناء إعادة رسم نافذة المحرّر." #: editor/editor_node.cpp msgid "Update Continuously" @@ -3013,7 +3029,7 @@ msgstr "نظام الملفات" #: editor/editor_node.cpp msgid "Inspector" -msgstr "مُراقب" +msgstr "المُراقب" #: editor/editor_node.cpp msgid "Expand Bottom Panel" @@ -3098,27 +3114,27 @@ msgstr "حدد" #: editor/editor_node.cpp msgid "Open 2D Editor" -msgstr "فتح المُعدل 2D" +msgstr "فتح المُحرر 2D" #: editor/editor_node.cpp msgid "Open 3D Editor" -msgstr "فتح المُعدل 3D" +msgstr "فتح المُحرر 3D" #: editor/editor_node.cpp msgid "Open Script Editor" -msgstr "فتح مُعدل الكود" +msgstr "فتح محرر النص البرمجي" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Open Asset Library" -msgstr "فتح مكتبة الأصول" +msgstr "فتح مكتبة المُلحقات" #: editor/editor_node.cpp msgid "Open the next Editor" -msgstr "فتح في المُعدل التالي" +msgstr "فتح في المُحرر التالي" #: editor/editor_node.cpp msgid "Open the previous Editor" -msgstr "إفتح المُعدل السابق" +msgstr "إفتح المُحرر السابق" #: editor/editor_node.h msgid "Warning!" @@ -3235,7 +3251,7 @@ msgstr "إلحاق..." #: editor/editor_properties.cpp msgid "Invalid RID" -msgstr "إسم RID غير صالح." +msgstr "RID غير صالح" #: editor/editor_properties.cpp msgid "" @@ -3583,7 +3599,7 @@ msgstr "حدد ملف القالب" #: editor/export_template_manager.cpp msgid "Godot Export Templates" -msgstr "إدارة قوالب التصدير Godot" +msgstr "إدارة قوالب التصدير لغودوت" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3707,11 +3723,11 @@ msgstr "مشهد جديد..." #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." -msgstr "فتح السكريبت..." +msgstr "فتح النص البرمجي..." #: editor/filesystem_dock.cpp msgid "New Resource..." -msgstr "مورد جديد..." +msgstr "مصدر جديد..." #: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_editor_debugger.cpp @@ -3732,7 +3748,7 @@ msgstr "إعادة التسمية" #: editor/filesystem_dock.cpp msgid "Previous Folder/File" -msgstr "المجلد/الملف السابق" +msgstr "المجلد/الملف السابق" #: editor/filesystem_dock.cpp msgid "Next Folder/File" @@ -3792,7 +3808,7 @@ msgstr "مجلد:" #: editor/find_in_files.cpp msgid "Filters:" -msgstr "فلتر:" +msgstr "تنقيات:" #: editor/find_in_files.cpp msgid "" @@ -3821,7 +3837,7 @@ msgstr "إيجاد: " #: editor/find_in_files.cpp msgid "Replace: " -msgstr "إستبدال:" +msgstr "إستبدال: " #: editor/find_in_files.cpp msgid "Replace all (no undo)" @@ -3894,7 +3910,7 @@ msgstr "إستيراد كمشهد واحد" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Animations" -msgstr "إستيراد مع إنميشن منفصلة" +msgstr "إستيراد مع رسوم متحركة منفصلة" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" @@ -3910,15 +3926,15 @@ msgstr "إستيراد مع عناصر+موارد منفصلة" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Animations" -msgstr "إستيراد مع عناصر + إنميشن منفصلة" +msgstr "إستيراد مع عناصر + رسوم متحركة منفصلة" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials+Animations" -msgstr "إستيراد مع مصادر+ إنميشن منفصلة" +msgstr "إستيراد مع مصادر+ رسوم متحركة منفصلة" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials+Animations" -msgstr "إستيراد مع عناصر + مصادر + إنميشين منفصلين" +msgstr "إستيراد مع عناصر + مصادر + رسوم متحركة منفصلين" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" @@ -3943,23 +3959,23 @@ msgstr "انشاء خارطة الضوء" #: editor/import/resource_importer_scene.cpp msgid "Generating for Mesh: " -msgstr "انشاء من اجل الميش: " +msgstr "انشاء من اجل المجسم: " #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." -msgstr "تشغيل الكود المُخصص..." +msgstr "تشغيل النص البرمجي المُخصص..." #: editor/import/resource_importer_scene.cpp msgid "Couldn't load post-import script:" -msgstr "لا يمكن تحميل الكود المستورد أو المطبوع:" +msgstr "لا يمكن تحميل النص البرمجي المستورد أو المطبوع:" #: editor/import/resource_importer_scene.cpp msgid "Invalid/broken script for post-import (check console):" -msgstr "كود مستورد-ملصق متضرر/خاطئ (تحقق من وحدة التحكم):" +msgstr "النص البرمجي مستورد-ملصق متضرر/خاطئ (تحقق من وحدة التحكم):" #: editor/import/resource_importer_scene.cpp msgid "Error running post-import script:" -msgstr "خطأ في تشغيل الكود الملصق- المستورد:" +msgstr "خطأ في تشغيل النص البرمجي الملصق- المستورد:" #: editor/import/resource_importer_scene.cpp msgid "Did you return a Node-derived object in the `post_import()` method?" @@ -3979,15 +3995,15 @@ msgstr "حدد كإفتراضي من أجل '%s'" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "إخلاء الإفتراضي لـ '%s'" +msgstr "إخلاء الإفتراضي ل '%s'" #: editor/import_dock.cpp msgid "Import As:" -msgstr "إستيراد كـ:" +msgstr "إستيراد ك:" #: editor/import_dock.cpp msgid "Preset" -msgstr "إعداد مُسبق..." +msgstr "إعداد مُسبق" #: editor/import_dock.cpp msgid "Reimport" @@ -4428,38 +4444,38 @@ msgstr "إلغاء/تفعيل التشغيل التلقائي" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "إسم الحركة الجديد:" +msgstr "إسم رسم المتحرك جديد:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "حركة جديدة" +msgstr "رسم متحرك جديدة" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "تغيير إسم الحركة:" +msgstr "تغيير إسم الرسم المتحرك:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" -msgstr "مسح الحركة؟" +msgstr "مسح الرسم المتحرك؟" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Remove Animation" -msgstr "مسح الحركة" +msgstr "مسح الرسم المتحرك" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Invalid animation name!" -msgstr "خطأ: إسم الرسوم المتحركة خاطئ!" +msgstr "إسم الرسم المتحرك خاطئ!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation name already exists!" -msgstr "اسم الحركة موجود بالفعل!" +msgstr "إسم الرسم المتحرك موجود بالفعل!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Rename Animation" -msgstr "إعادة تسمية الحركة" +msgstr "إعادة تسمية الرسم المتحرك" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" @@ -4471,23 +4487,23 @@ msgstr "تغيير وقت الدمج" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Load Animation" -msgstr "تحميل حركة" +msgstr "تحميل الرسم المتحرك" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" -msgstr "تكرير الحركة" +msgstr "تكرار الرسم المتحرك" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation to copy!" -msgstr "لا حركة رسومية لنسخها!" +msgstr "لا رسم متحرك لنسخها!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation resource on clipboard!" -msgstr "لا يوجد مورد لرسومية متحركة في الحافظة clipboard!" +msgstr "لا يوجد مورد لرسم متحرك في الحافظة clipboard!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" -msgstr "الحركة الرسومية المُلصقة" +msgstr "تم لصق الرسوم المتحركة" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Paste Animation" @@ -4499,39 +4515,39 @@ msgstr "لا رسومات متحركة لتحريرها!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" -msgstr "تشغيل الحركة المختارة بشكل عكسي من الموقع الحالي. (زر A)" +msgstr "تشغيل الرسم المتحرك المختار بشكل عكسي من الموقع الحالي. (زر A)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from end. (Shift+A)" -msgstr "تشيل الحركة المختارة بشكل عكسي من النهاية. (Shift+ش)" +msgstr "تشغيل الرسم المتحرك المختار بشكل عكسي من النهاية. (Shift+A)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Stop animation playback. (S)" -msgstr "إيقاف تشغيل الحركة. (س)" +msgstr "إيقاف تشغيل الرسم المتحرك. (S)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from start. (Shift+D)" -msgstr "تشغيل الحركة المحددة من البداية. (Shift+ي)" +msgstr "تشغيل الرسم المتحرك المحدد من البداية. (Shift+D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from current pos. (D)" -msgstr "تشغيل الحركة المختارة من الموقع الحالي. (زر D)" +msgstr "تشغيل الرسم المتحرك المختار من الموقع الحالي. (D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation position (in seconds)." -msgstr "موقع الحركة (بالثواني)." +msgstr "موقع الرسم المتحرك (بالثواني)." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Scale animation playback globally for the node." -msgstr "تكبير تشغيل الحركة عالمياً من العقدة." +msgstr "تكبير تشغيل الرسم المتحرك عالمياً من العقدة." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" -msgstr "أدوات الحركة" +msgstr "أدوات الرسم المتحرك" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation" -msgstr "صورة متحركة" +msgstr "الرسم المتحرك" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." @@ -4603,11 +4619,11 @@ msgstr "تثبيت مُشغّل الرسوميات المتحركة" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Create New Animation" -msgstr "إنشاء حركة جديدة" +msgstr "إنشاء رسوم متحركة جديدة" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" -msgstr "إسم الحركة:" +msgstr "إسم الرسم المتحرك:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp @@ -4857,7 +4873,7 @@ msgstr "عقدة التنقل" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Import Animations..." -msgstr "إستيراد الحركة..." +msgstr "إستيراد الرسوم المتحركة..." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Edit Node Filters" @@ -4921,7 +4937,7 @@ msgstr "فشل الطلب ، انتهت المهلة" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Timeout." -msgstr "إنتهى الوقت" +msgstr "انتهت المهلة." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." @@ -4961,7 +4977,7 @@ msgstr "خطأ في إنشاء الطلب" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Idle" -msgstr "عاطل" +msgstr "الخمول (idle)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install..." @@ -5619,9 +5635,8 @@ msgid "Divide grid step by 2" msgstr "قسم خطوة الشبكة بـ 2" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Pan View" -msgstr "أظهر" +msgstr "إظهار شامل" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" @@ -5963,9 +5978,8 @@ msgstr "" "هذا هو الخيار الأسرع (لكنه الأقل دقة) للكشف عن وقوع التصادم." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "إنشاء متصادم محدب قريب" +msgstr "إنشاء أشقاء تصادم محدب متعددة" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" @@ -6020,11 +6034,12 @@ msgid "Remove item %d?" msgstr "مسح العنصر %d؟" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "" "Update from existing scene?:\n" "%s" -msgstr "تحديث من المشهد" +msgstr "" +"التحديث من المشهد المتواجد؟:\n" +"%s" #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Mesh Library" @@ -6146,12 +6161,10 @@ msgstr "إنشاء مُضلع التنقل" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Convert to CPUParticles" -msgstr "تحويل إلي %s" +msgstr "تحويل إلى %s" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" msgstr "توليد Rect الرؤية" @@ -6173,23 +6186,20 @@ msgid "The geometry's faces don't contain any area." msgstr "الوجوه الهندسية لا تتضمن أي منطقة." #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "The geometry doesn't contain any faces." -msgstr "العقدة لا تحتوي على هندسة (الوجوه)." +msgstr "الهندسة لا تحتوي على وجوه." #: editor/plugins/particles_editor_plugin.cpp msgid "\"%s\" doesn't inherit from Spatial." msgstr "\"%s\" لا يرث الفراغي Spatial." #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "\"%s\" doesn't contain geometry." -msgstr "العقدة لا تحتوي على هندسة." +msgstr "\"%s\" لا تحتوي على هندسة." #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "\"%s\" doesn't contain face geometry." -msgstr "العقدة لا تحتوي على هندسة." +msgstr "\"%s\" لا تحتوي على هندسة وجه." #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emitter" @@ -6249,9 +6259,8 @@ msgid "Add Point to Curve" msgstr "أضف نقطة للمنحنى" #: editor/plugins/path_2d_editor_plugin.cpp -#, fuzzy msgid "Split Curve" -msgstr "تحرير منحنى العقدة" +msgstr "تقسيم المنحنى" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" @@ -6882,49 +6891,42 @@ msgid "Debugger" msgstr "مُنقح الأخطاء" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" -msgstr "إبحث في المساعدة" +msgstr "نتائج البحث" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Clear Recent Scripts" -msgstr "إخلاء المشاهد الحالية" +msgstr "إخلاء النصوص البرمجية الحديثة" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Connections to method:" -msgstr "صلها بالعقدة:" +msgstr "الاتصالات لدالة:" #: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Source" -msgstr "مورد" +msgstr "مصدر" #: editor/plugins/script_text_editor.cpp msgid "Target" msgstr "الهدف" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "" "Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." -msgstr "قطع إتصال'%s' من '%s'" +msgstr "" +"الدالة المتصلة '%s' للاشارة '%s' مفقودة من العقدة '%s' إلى العقدة '%s'." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "[Ignore]" msgstr "(تجاهل)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Line" -msgstr "الخط:" +msgstr "خط" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "مسح المهمة" +msgstr "انتقل الى الوظيفة البرمجية" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -6974,9 +6976,8 @@ msgid "Bookmarks" msgstr "المحفوظات" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Breakpoints" -msgstr "مسح النقاط" +msgstr "نقاط التكسّر" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp @@ -7025,66 +7026,56 @@ msgid "Complete Symbol" msgstr "رمز التمام" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Evaluate Selection" -msgstr "تكبير المحدد" +msgstr "تقييم الاختيار" #: editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" msgstr "تشذيب الفراغات البيضاء الزائدة" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" -msgstr "تحويل إلي %s" +msgstr "تحويل المسافة البادئة إلى مسافات" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" -msgstr "تحويل إلي %s" +msgstr "تحويل المسافة البادئة إلى تبويبات" #: editor/plugins/script_text_editor.cpp msgid "Auto Indent" msgstr "مسافة بادئة تلقائية" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." -msgstr "فلتر الملفات..." +msgstr "جِد في الملفات..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" msgstr "مساعدة سياقية" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Toggle Bookmark" -msgstr "إلغاء/تفعيل وضع النظرة الحرة" +msgstr "تبديل العلامة المرجعية" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Bookmark" -msgstr "إذهب إلي الخطوة التالية" +msgstr "الانتقال إلى العلامة المرجعية التالية" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Bookmark" -msgstr "إذهب إلي الخطوة السابقة" +msgstr "الانتقال إلى العلامة المرجعية السابقة" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Remove All Bookmarks" -msgstr "مسح الكل" +msgstr "إزالة جميع الإشارات المرجعية" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." -msgstr "مسح المهمة" +msgstr "الذهاب إلى وظيفة برمجية..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." -msgstr "إذهب إلي الخط" +msgstr "الذهاب إلى خط..." #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -7096,14 +7087,12 @@ msgid "Remove All Breakpoints" msgstr "إزالة جميع نقاط التكسّر" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" -msgstr "إذهب إلي الخطوة التالية" +msgstr "الذهاب إلى نقطة التكسّر التالية" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "إذهب إلي الخطوة السابقة" +msgstr "الذهاب إلى نقطة التكسّر السابقة" #: editor/plugins/shader_editor_plugin.cpp msgid "" @@ -7122,9 +7111,8 @@ msgid "This skeleton has no bones, create some children Bone2D nodes." msgstr "لا يملك هذا الهكيل أيّة عظام، أنشئ بعض عُقد العظام ثنائية البُعد كأبناء." #: editor/plugins/skeleton_2d_editor_plugin.cpp -#, fuzzy msgid "Create Rest Pose from Bones" -msgstr "أنشئ نقاط إنبعاث من الشبكة" +msgstr "إنشاء وضعية الراحة من العظام" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Set Rest Pose to Bones" @@ -7143,23 +7131,20 @@ msgid "Set Bones to Rest Pose" msgstr "تحديد العظام لتكون في وضعية الراحة" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Create physical bones" -msgstr "أنشئ ميش التنقل" +msgstr "إنشاء عظام مادية" #: editor/plugins/skeleton_editor_plugin.cpp msgid "Skeleton" msgstr "الهيكل" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Create physical skeleton" -msgstr "إنشاء حل C#" +msgstr "إنشاء هيكل عظمي مادي" #: editor/plugins/skeleton_ik_editor_plugin.cpp -#, fuzzy msgid "Play IK" -msgstr "تشغيل" +msgstr "تشغيل IK" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" @@ -7350,14 +7335,12 @@ msgid "Audio Listener" msgstr "المستمع الصوتي" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Enable Doppler" -msgstr "تغيير خط الحركة" +msgstr "تفعيل دوبلر" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Cinematic Preview" -msgstr "يُنشئ مستعرضات الميش" +msgstr "معاينة سينمائية" #: editor/plugins/spatial_editor_plugin.cpp msgid "Not available when using the GLES2 renderer." @@ -7419,6 +7402,12 @@ msgid "" "Closed eye: Gizmo is hidden.\n" "Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")." msgstr "" +"انقر للتبديل بين حالات الرؤية.\n" +"\n" +"العين المفتوحة: الأداة مرئية.\n" +"العين المغلقة: الأداة مخفية.\n" +"العين نصف مفتوحة: الأداة مرئية أيضا من خلال الأسطح المعتمة (\"الأشعة السينية" +"\")." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Nodes To Floor" @@ -7496,9 +7485,8 @@ msgid "Transform" msgstr "التحوّل" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Snap Object to Floor" -msgstr "الكبس إلي الشبكة" +msgstr "محاذاة الشيء إلى الأرض" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -7542,9 +7530,8 @@ msgstr "إظهار الشبكة" #: editor/plugins/spatial_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Settings..." -msgstr "جاري الإعداد..." +msgstr "اعدادات..." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" @@ -7575,7 +7562,6 @@ msgid "View Z-Near:" msgstr "إظهار Z-Near:" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Z-Far:" msgstr "إظهار Z-Far:" @@ -7612,48 +7598,40 @@ msgid "Nameless gizmo" msgstr "أداة (gizmo) غير مسماة" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "إنشاء شبكة الخطوط العريضة" +msgstr "إنشاء Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Mesh2D Preview" -msgstr "يُنشئ مستعرضات الميش" +msgstr "معاينة Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "إنشاء بولي" +msgstr "إنشاء مُضلع ثنائي الأبعاد" #: editor/plugins/sprite_editor_plugin.cpp msgid "Polygon2D Preview" msgstr "مُعاينة المُضلع ثنائي الأبعاد" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "إنشاء مُضلع التنقل" +msgstr "إنشاء مُضلع تصادم ثنائي الأبعاد" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "CollisionPolygon2D Preview" -msgstr "إنشاء مُضلع التنقل" +msgstr "معاينة مُضلع التصادم ثنائي الأبعاد" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "أنشئ شكل مُطبق" +msgstr "إنشاء LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "LightOccluder2D Preview" -msgstr "أنشئ شكل مُطبق" +msgstr "معاينة LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Sprite is empty!" -msgstr "الميش فارغ!" +msgstr "الرسومية فارغة!" #: editor/plugins/sprite_editor_plugin.cpp msgid "Can't convert a sprite using animation frames to mesh." @@ -7666,36 +7644,32 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "هندسياً غير صالح، لا يمكن استبداله بسطح (mesh)." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to Mesh2D" -msgstr "تحويل إلي %s" +msgstr "تحويل إلى Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." msgstr "هندسياصً غير صالح، لا يمكن إنشاء مُضلّع." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to Polygon2D" -msgstr "تحويل إلي %s" +msgstr "تحويل إلى مُضلع ثنائي الأبعاد" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create collision polygon." msgstr "هندسياً غير صالح، لا يمكن إنشاء مُضلع تصادم." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D Sibling" -msgstr "إنشاء مُضلع التنقل" +msgstr "إنشاء شقيق لمُضلع التصادم ثنائي الأبعاد" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create light occluder." msgstr "هندسياً غير صالح، لا يمكن إنشاء حِظار (occluder) الضوء." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D Sibling" -msgstr "أنشئ شكل مُطبق" +msgstr "أنشاء ضوء محجوب ثنائي الأبعاد" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite" @@ -7714,9 +7688,8 @@ msgid "Grow (Pixels): " msgstr "التكبير (Pixels): " #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Update Preview" -msgstr "إستعراض" +msgstr "تحديث المُعاينة" #: editor/plugins/sprite_editor_plugin.cpp msgid "Settings:" @@ -7787,9 +7760,8 @@ msgid "Animation Frames:" msgstr "إطارات الرسومات المتحركة:" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Add a Texture from File" -msgstr "التقط من البيكسل" +msgstr "إضافة ملمس من الملف" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frames from a Sprite Sheet" @@ -7812,9 +7784,8 @@ msgid "Move (After)" msgstr "تحريك (للتالي)" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Select Frames" -msgstr "تحديد الوضع" +msgstr "تحديد الإطارات" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Horizontal:" @@ -7926,23 +7897,20 @@ msgid "Create From Current Editor Theme" msgstr "إنشاء مستمد من موضوع Theme المحرر الحالي" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Toggle Button" -msgstr "إلغاء/تفعيل التشغيل التلقائي" +msgstr "زر التبديل" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Disabled Button" -msgstr "معطّل" +msgstr "زر معطّل" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "عنصر" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Disabled Item" -msgstr "معطّل" +msgstr "عنصر معطّل" #: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" @@ -7962,21 +7930,19 @@ msgstr "عنصر مُفعل اختياري" #: editor/plugins/theme_editor_plugin.cpp msgid "Named Sep." -msgstr "الفاصل المُسمّى" +msgstr "الفاصل المُسمّى." #: editor/plugins/theme_editor_plugin.cpp msgid "Submenu" msgstr "القائمة الفرعية" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Subitem 1" -msgstr "عنصر" +msgstr "العنصر الفرعي 1" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Subitem 2" -msgstr "عنصر" +msgstr "العنصر الفرعي 2" #: editor/plugins/theme_editor_plugin.cpp msgid "Has" @@ -7987,9 +7953,8 @@ msgid "Many" msgstr "العديد" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Disabled LineEdit" -msgstr "معطّل" +msgstr "تعديل الخط معطّل" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -8004,18 +7969,16 @@ msgid "Tab 3" msgstr "علامة التبويب 3" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Editable Item" -msgstr "عنصر انتقاء" +msgstr "عنصر قابل للتعديل" #: editor/plugins/theme_editor_plugin.cpp msgid "Subtree" msgstr "الشجرة الفرعية" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Has,Many,Options" -msgstr "بكثير، خيارات عديدة،!" +msgstr "يمتلك، خيارات، عديدة" #: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" @@ -8039,24 +8002,21 @@ msgid "Color" msgstr "اللون" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme File" -msgstr "إفتح ملف" +msgstr "ملف الثيم" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Erase Selection" msgstr "إزالة عملية الاختيار" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Fix Invalid Tiles" -msgstr "اسم غير صالح." +msgstr "أصلح البلاطة غير الصالحة" #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "نصف المُحدد" +msgstr "قص المُحدد" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -8079,9 +8039,8 @@ msgid "Erase TileMap" msgstr "مسح خريطة البلاط TileMap" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Find Tile" -msgstr "جد" +msgstr "جد البلاطة" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Transpose" @@ -8092,14 +8051,12 @@ msgid "Disable Autotile" msgstr "تعطيل البلاط التلقائي Autotile" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Enable Priority" -msgstr "تعديل المصافي" +msgstr "تمكين الأولوية" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Filter tiles" -msgstr "فلتر الملفات..." +msgstr "تنقية البلاطات" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Give a TileSet resource to this TileMap to use its tiles." @@ -8123,14 +8080,12 @@ msgid "Pick Tile" msgstr "اختيار البلاط" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate Left" -msgstr "وضع التدوير" +msgstr "تدوير لليسار" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate Right" -msgstr "وضع التدوير" +msgstr "تدوير لليمين" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip Horizontally" @@ -8141,18 +8096,16 @@ msgid "Flip Vertically" msgstr "القلب عموديًا" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear Transform" -msgstr "تحويل تغيير التحريك" +msgstr "محو التَحَوّل" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Add Texture(s) to TileSet." msgstr "إضافة نقش(نقوش) إلى مُحدد البلاط TileSet." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Remove selected Texture from TileSet." -msgstr "مسح المدخلة الحالية" +msgstr "مسح النقش المُختار من رزمة البلاطات." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -8167,9 +8120,8 @@ msgid "New Single Tile" msgstr "بلاطة مُفردة جديدة" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "New Autotile" -msgstr "إظهار الملفات" +msgstr "بلاط-تلقائي جديد" #: editor/plugins/tile_set_editor_plugin.cpp msgid "New Atlas" @@ -8184,9 +8136,8 @@ msgid "Select the next shape, subtile, or Tile." msgstr "اختر الشكل أو البلاط الفرعي أو البلاط التالي." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "التبويب السابق" +msgstr "الإحداثيات السابقة" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." @@ -8206,23 +8157,23 @@ msgstr "الإطباق Occlusion" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Navigation" -msgstr "التصفح" +msgstr "التنقل" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Bitmask" -msgstr "قناع البِت Bitmask" +msgstr "قناع البِت" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Priority" -msgstr "التفاضل Priority" +msgstr "الأولية" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Z Index" -msgstr "تراتبية المحور Z" +msgstr "ترتيبية المحور Z" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Region Mode" -msgstr "وضع الأقليم Region" +msgstr "وضع الأقليم" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Collision Mode" @@ -8230,19 +8181,19 @@ msgstr "وضع التصادم" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Occlusion Mode" -msgstr "وضع الإطباق Occlusion" +msgstr "وضع الإطباق" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Navigation Mode" -msgstr "وضع التصفح" +msgstr "وضع التنقل" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Bitmask Mode" -msgstr "وضع Bitmask" +msgstr "وضع قناع-البِت" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Priority Mode" -msgstr "وضع التفاضل Priority" +msgstr "وضع الأولية" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Icon Mode" @@ -8250,26 +8201,23 @@ msgstr "وضع الأيقونة" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Z Index Mode" -msgstr "وضع Z Index" +msgstr "وضع ترتيبية المحور Z" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." -msgstr "نسخ bitmask." +msgstr "نسخ قناع-البِت." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Paste bitmask." -msgstr "لصق الحركة" +msgstr "لصق قناع-البِت" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Erase bitmask." -msgstr "زر الفأرة الأيمن: مسح النقطة." +msgstr "مسح قناع-البِت." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Create a new rectangle." -msgstr "إنشاء %s جديد" +msgstr "إنشاء مستطيل جديد." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create a new polygon." @@ -8544,9 +8492,8 @@ msgid "Add a commit message" msgstr "إضافة رسالة إجراء" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Changes" -msgstr "مزامنة تغييرات الكود" +msgstr "اقتراف التعديلا" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp @@ -8555,7 +8502,7 @@ msgstr "الحالة" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" -msgstr "إظهار آخر تعديلات الملف قبل قبولهم في آخر نسخة." +msgstr "إظهار آخر تعديلات الملف قبل قبولهم في آخر نسخة" #: editor/plugins/version_control_editor_plugin.cpp msgid "No file diff is active" @@ -8904,11 +8851,11 @@ msgstr "ثابت جذر-العدد2 (1.414214)، أي قيمة جذر العدد #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the absolute value of the parameter." -msgstr "يحسب القيمة المطلقة لقيمة المَعلم." +msgstr "يُرجع القيمة المطلقة لقيمة المَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the arc-cosine of the parameter." -msgstr "يُرجع قيمة جيب التمام \"arc-cosine\" للمَعلم." +msgstr "يُرجع قيمة جيب التمام للمَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the inverse hyperbolic cosine of the parameter." @@ -8924,11 +8871,11 @@ msgstr "يُرجع قيمة جيب القطع الزائد العكسي للمَ #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the arc-tangent of the parameter." -msgstr "يُرجع قيمة ظل الزاوية العكسية \"arc-tangent\" للمَعلم." +msgstr "يُرجع قيمة ظل الزاوية العكسية للمَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the arc-tangent of the parameters." -msgstr "يُرجع قيمة ظل الزاوية العكسي \"arc-tangent\" للمعالم." +msgstr "يُرجع قيمة ظل الزاوية العكسي للمَعالم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the inverse hyperbolic tangent of the parameter." @@ -8958,11 +8905,11 @@ msgstr "يحوّل قيمة (كمية) من الراديان إلى الدرجا #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Base-e Exponential." -msgstr "الدالة Base-e." +msgstr "الدالة الأسية Base-e." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Base-2 Exponential." -msgstr "الدالة Base-2." +msgstr "الدالة الأسية Base-2." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest integer less than or equal to the parameter." @@ -9011,7 +8958,7 @@ msgstr "يُرجع قيمة المَعلم الأول مرفوعاً إلى قو #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts a quantity in degrees to radians." -msgstr "يحول الكمية المقاسة بالدرجات إلى الراديان." +msgstr "يحول الكمية المقاسة بالدرجات إلى الراديان (الدائري)." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 / scalar" @@ -9035,11 +8982,11 @@ msgstr "يستخرج إشارة المَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the sine of the parameter." -msgstr "يُرجع جيب sine المَعلم parameter." +msgstr "يُرجع جيب المَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the hyperbolic sine of the parameter." -msgstr "يُرجع قيمة الجيب العكس hyperbolic sine للمَعلم." +msgstr "يُرجع قيمة الجيب العكس للمَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the square root of the parameter." @@ -9072,15 +9019,15 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the tangent of the parameter." -msgstr "يُرجع قيمة ظل الزاوية tangent للمَعلم." +msgstr "يُرجع قيمة ظل الزاوية للمَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the hyperbolic tangent of the parameter." -msgstr "يُرجع قيمة ظل الزاوية العكسي hyperbolic tangent للمَعلم." +msgstr "يُرجع قيمة ظل الزاوية العكسي للمَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the truncated value of the parameter." -msgstr "يجد قيمة الاقتطاع truncated للمَعلم." +msgstr "يجد قيمة الاقتطاع للمَعلم." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Adds scalar to scalar." @@ -9119,7 +9066,6 @@ msgid "Perform the texture lookup." msgstr "إجراء البحث عن النقش." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Cubic texture uniform lookup." msgstr "البحث عن النقش المكعبي الموحد." @@ -9208,7 +9154,7 @@ msgstr "فكّ تركيب المُتجه إلى ثلاث كميات قياسية #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the cross product of two vectors." -msgstr "حساب المنتوج الوسيط للمُتجهين." +msgstr "حساب حاصل الضرب الاتجاهي لمتجهين." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the distance between two points." @@ -9331,7 +9277,7 @@ msgstr "جداء (مضاعفة) مُتجه بمُتجه." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the remainder of the two vectors." -msgstr "يُرجع باقي كل من المُتجهين (الشعاعين)." +msgstr "يُرجع باقي قسمة كل من المُتجهين (الشعاعين)." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Subtracts vector from vector." @@ -9342,9 +9288,8 @@ msgid "Vector constant." msgstr "ثابت المُتجه." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vector uniform." -msgstr "التعين للإنتظام." +msgstr "مُتجهات موحدة." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -10004,7 +9949,7 @@ msgid "" "Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" msgstr "" -"اسم فعالية غير صحيح. لا يمكن أن يكون فارغاً أو يتضمن '/'، ':'، '='، '\\' أو " +"اسم فعالية غير صحيح. لا يمكن أن يكون فارغاً أو يتضمن '/'، ':'، '='، '\\' أو " "'\"'" #: editor/project_settings_editor.cpp @@ -10164,9 +10109,8 @@ msgid "Settings saved OK." msgstr "تيسّر حفظ الإعدادات." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "حرك النقطة داخل المنحنى" +msgstr "حدث إجراء إدخال الذي تم نقله" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10361,9 +10305,8 @@ msgid "Select Method" msgstr "إختر طريقة" #: editor/rename_dialog.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Batch Rename" -msgstr "إعادة التسمية" +msgstr "إعادة تسمية الدفعة" #: editor/rename_dialog.cpp msgid "Prefix" @@ -10386,9 +10329,8 @@ msgid "Substitute" msgstr "استبدال" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node name" -msgstr "إسم العقدة:" +msgstr "إسم العقدة" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" @@ -10427,9 +10369,8 @@ msgid "Initial value for the counter" msgstr "القيمة المبدئية للعداد" #: editor/rename_dialog.cpp -#, fuzzy msgid "Step" -msgstr "خطوة (ثانية):" +msgstr "الخطوة" #: editor/rename_dialog.cpp msgid "Amount by which counter is incremented for each node" @@ -10476,9 +10417,8 @@ msgid "To Uppercase" msgstr "لأحرف كبيرة Uppercase" #: editor/rename_dialog.cpp -#, fuzzy msgid "Reset" -msgstr "إرجاع التكبير" +msgstr "إعادة تعيين" #: editor/rename_dialog.cpp msgid "Regular Expression Error" @@ -10551,9 +10491,8 @@ msgid "Instance Child Scene" msgstr "نمذجة المشهد الابن" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Detach Script" -msgstr "إلحاق نص برمجي" +msgstr "فصل النص البرمجي" #: editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." @@ -10586,19 +10525,16 @@ msgid "Instantiated scenes can't become root" msgstr "لا يمكن أن تصبح المشاهد المنمذجة مشاهد رئيسة (جذر)" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make node as Root" -msgstr "حفظ المشهد" +msgstr "جعل العقدة المشهد الرئيس" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "حذف العُقدة \"%s\" مع جميع أبنائها؟" +msgstr "حذف العُقدة %d مع جميع أبنائها؟" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "إنشاء عقدة" +msgstr "حذف العُقد %d؟" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10609,9 +10545,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "حذف العُقدة \"%s\" مع جميع أبنائها؟" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "إنشاء عقدة" +msgstr "حذف العقدة \"%s\"؟" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10667,9 +10602,8 @@ msgid "User Interface" msgstr "واجهة المستخدم" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Other Node" -msgstr "إنشاء عقدة" +msgstr "عقدة أخرى" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -10722,9 +10656,8 @@ msgid "Load As Placeholder" msgstr "تحميله كعنصر نائب" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open Documentation" -msgstr "فُتح مؤخراً" +msgstr "فتح الوثائق" #: editor/scene_tree_dock.cpp msgid "" @@ -10732,29 +10665,28 @@ msgid "" "This is probably because this editor was built with all language modules " "disabled." msgstr "" +"لا يمكن إرفاق نص برمجي: لا توجد لغات مسجلة.\n" +"ربما يكون هذا بسبب أن المحرر تم إنشاؤه مع تعطيل جميع وحدات اللغة." #: editor/scene_tree_dock.cpp msgid "Add Child Node" msgstr "إضافة عُقدة ابن" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Expand/Collapse All" -msgstr "طوي الكل" +msgstr "توسيع / طي الكل" #: editor/scene_tree_dock.cpp msgid "Change Type" msgstr "تغيير النوع" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Reparent to New Node" -msgstr "إنشاء %s جديد" +msgstr "تعين لعقدة جديدة" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make Scene Root" -msgstr "حفظ المشهد" +msgstr "جعل المشهد الرئيس" #: editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -10773,9 +10705,8 @@ msgid "Delete (No Confirm)" msgstr "حذف (دون تأكيد)" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Add/Create a New Node." -msgstr "إنشاء %s جديد" +msgstr "إضافة/إنشاء عقدة جديدة." #: editor/scene_tree_dock.cpp msgid "" @@ -10786,14 +10717,12 @@ msgstr "" "موروث." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Attach a new or existing script to the selected node." msgstr "إلحاق نص برمجي موجود أو جديد للعُقدة المختارة." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Detach the script from the selected node." -msgstr "مسح النص البرمجي للعُقدة المختارة." +msgstr "فصل النص البرمجي من العُقدة المختارة." #: editor/scene_tree_dock.cpp msgid "Remote" @@ -10808,24 +10737,20 @@ msgid "Clear Inheritance? (No Undo!)" msgstr "مسح الموروث؟ (لا تراجع!)" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Toggle Visible" -msgstr "أظهر الملفات المخفية" +msgstr "تشغيل/إطفاء الوضوحية" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Unlock Node" -msgstr "عقدة اللقطة الواحدة" +msgstr "إلغاء تأمين العقدة" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Button Group" -msgstr "إضافة إلي مجموعة" +msgstr "مجموعة الأزرار" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "(Connecting From)" -msgstr "خطأ في الإتصال" +msgstr "(الإتصال من)" #: editor/scene_tree_editor.cpp msgid "Node configuration warning:" @@ -10920,23 +10845,20 @@ msgid "Path is not local." msgstr "المسار ليس محلياً." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid base path." msgstr "مسار غير صالح." #: editor/script_create_dialog.cpp -#, fuzzy msgid "A directory with the same name exists." -msgstr "ملف أو مجلد مع هذا الأسم موجود بالفعل." +msgstr "يوجد ملف/مجلد بنفس الاسم." #: editor/script_create_dialog.cpp msgid "File does not exist." msgstr "الملف غير موجود." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid extension." -msgstr "يجب أن يستخدم صيغة صحيحة." +msgstr "صيغة غير صالحة." #: editor/script_create_dialog.cpp msgid "Wrong extension chosen." @@ -10987,33 +10909,28 @@ msgid "Invalid inherited parent name or path." msgstr "إن اسم أو مسار الأب (الأصل parent) الموروث غير صالح." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "شجرة الحركة صحيحة." +msgstr "مسار/اسم البرنامج النصي صالح." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." -msgstr "المسموح: a-z، A-Z ، 0-9 ، _ و ." +msgstr "المسموح: a-z، A-Z ، 0-9 ، _ و ." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Built-in script (into scene file)." -msgstr "عمليات مع ملفات المشهد." +msgstr "نص برمجي مدموج (داخل ملف المشهد)." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Will create a new script file." -msgstr "إنشاء ملف كود جديد" +msgstr "سيتم إنشاء ملف برمجي جديد." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Will load an existing script file." -msgstr "تحميل نسق بيوس موجود مسبقاً." +msgstr "سيتم تحميل ملف برمجي موجود مسبقاً." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script file already exists." -msgstr "التحميل التلقائي '%s' موجود اصلا!" +msgstr "الملف البرمجي موجود بالفعل." #: editor/script_create_dialog.cpp msgid "" @@ -11024,19 +10941,16 @@ msgstr "" "تعديلها باستخدام مُحرر خارجي." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Class Name:" -msgstr "إسم صنف" +msgstr "اسم الفئة:" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Template:" -msgstr "مسح القالب" +msgstr "القالب:" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Built-in Script:" -msgstr "فتح الكود" +msgstr "ملف النص المُدمج:" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -11051,39 +10965,32 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Warning:" -msgstr "تحذيرات" +msgstr "تحذير:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Error:" -msgstr "خطأ!" +msgstr "خطأ:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error" -msgstr "خطأ في نسخ" +msgstr "خطأ في C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Error:" -msgstr "خطأ في نسخ" +msgstr "خطأ C++ :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source" -msgstr "مورد" +msgstr "مصدر C++" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Source:" -msgstr "مورد" +msgstr "مصدر:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "C++ Source:" -msgstr "مورد" +msgstr "مصدر C++:" #: editor/script_editor_debugger.cpp msgid "Stack Trace" @@ -11094,9 +11001,8 @@ msgid "Errors" msgstr "أخطاء" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Child process connected." -msgstr "غير متصل" +msgstr "العملية التابعة متصلة." #: editor/script_editor_debugger.cpp msgid "Copy Error" @@ -11104,12 +11010,11 @@ msgstr "خطأ في نسخ" #: editor/script_editor_debugger.cpp msgid "Video RAM" -msgstr "ذاكرة الفيديو Video RAM" +msgstr "الذاكرة العشوائية للفيديو" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Skip Breakpoints" -msgstr "مسح النقاط" +msgstr "تخطي نقاط التكسّر" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -11156,9 +11061,8 @@ msgid "Total:" msgstr "المجموع الكلي:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Export list to a CSV file" -msgstr "تصدير الملف" +msgstr "تصدير القائمة إلى ملف CSV" #: editor/script_editor_debugger.cpp msgid "Resource Path" @@ -11201,18 +11105,16 @@ msgid "Export measures as CSV" msgstr "تصدير القياسات ك CSV" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Erase Shortcut" -msgstr "تخفيف للخارج" +msgstr "حذف الاختصار" #: editor/settings_config_dialog.cpp msgid "Restore Shortcut" msgstr "إعادة تعيين الاختصارات" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Change Shortcut" -msgstr "تغيير المرتكزات" +msgstr "تغيير الاختصارات" #: editor/settings_config_dialog.cpp msgid "Editor Settings" @@ -11284,19 +11186,16 @@ msgid "Change Ray Shape Length" msgstr "تعديل طول الشكل الشعاعي" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Radius" -msgstr "تغيير وقت الدمج" +msgstr "تغيير نصف قطر الاسطوانة" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Height" -msgstr "تغيير وقت الدمج" +msgstr "تغيير ارتفاع الاسطوانة" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Torus Inner Radius" -msgstr "تغيير المرتكزات و الهوامش" +msgstr "تغيير نصف قطر الدائرة الداخلي" #: modules/csg/csg_gizmos.cpp msgid "Change Torus Outer Radius" @@ -11340,12 +11239,11 @@ msgstr "مكتبة GDNativeLibrary" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Enabled GDNative Singleton" -msgstr "تمكين نمط البرمجة Singleton لِ GDNative" +msgstr "تمكين نمط البرمجة Singleton لـ GDNative" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Disabled GDNative Singleton" -msgstr "تعطيل دوار التحديث" +msgstr "تعطيل نمط البرمجة Singleton لـ GDNative" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" @@ -11360,17 +11258,16 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -#, fuzzy msgid "Step argument is zero!" -msgstr "الخطوة (المتغيرة المدخلة/argument) تساوي صفر !" +msgstr "معامل الخطوة تساوي صفر!" #: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" -msgstr "ليس كود مع نموذج" +msgstr "ليس نص برمجي مع نموذج" #: modules/gdscript/gdscript_functions.cpp msgid "Not based on a script" -msgstr "لا تستند الى شفرة مصدرية" +msgstr "لا تستند الى نص برمجي" #: modules/gdscript/gdscript_functions.cpp msgid "Not based on a resource file" @@ -11378,42 +11275,35 @@ msgstr "لا تستند على ملف مورد" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (missing @path)" -msgstr "" -"instance dictionary format نموذج الشكل القاموسي غير صالح - المسار مفقود" +msgstr "نموذج الشكل القاموسي غير صالح (@المسار مفقود)" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" -msgstr "" -"instance dictionary format نموذج الشكل القاموسي غير صالح - لا يمكن تحميل " -"السكريبت من المسار" +msgstr "نموذج الشكل القاموسي غير صالح (لا يمكن تحميل النص البرمجي من @المسار)" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" -msgstr "" -"instance dictionary format نموذج الشكل القاموسي غير صالح - السكريبت في " -"المسار غير صالح" +msgstr "نموذج الشكل القاموسي غير صالح ( النص البرمجي غير صالح في @المسار)" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary (invalid subclasses)" -msgstr "مجسّد القاموس غير صالح (أصناف فرعية غير صالحة)" +msgstr "نموذج القاموس غير صالح (أصناف فرعية غير صالحة)" #: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." -msgstr "لا يمكن للكائن Object أن يمنح طولاً." +msgstr "لا يمكن للكائن أن يمنح طولاً." #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Next Plane" msgstr "التبويب التالي" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Previous Plane" msgstr "التبويب السابق" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Plane:" -msgstr "المستوى:" +msgstr "التبويت:" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Next Floor" @@ -11432,14 +11322,12 @@ msgid "GridMap Delete Selection" msgstr "خريطة الشبكة GridMap لحذف المُختار" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "GridMap Fill Selection" -msgstr "كُل المُحدد" +msgstr "تحديد الملئ خريطة-الشبكة" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "GridMap Paste Selection" -msgstr "كُل المُحدد" +msgstr "تحديد اللصق خريطة-الشبكة" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -11506,9 +11394,8 @@ msgid "Cursor Clear Rotation" msgstr "مسح تدوير المؤشر" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Paste Selects" -msgstr "كُل المُحدد" +msgstr "تحديد اللصق" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" @@ -11527,9 +11414,8 @@ msgid "Pick Distance:" msgstr "اختر المسافة:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "وضع المُصفي:" +msgstr "تنقية المجسمات" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." @@ -11636,7 +11522,7 @@ msgstr "عثر على تسلسل بت ولكن ليس العقدة في المك #: modules/visual_script/visual_script.cpp msgid "Stack overflow with stack depth: " -msgstr "" +msgstr "حدوث تجاوز للتكدس ( Stack overflow) مع عمق التكدس: " #: modules/visual_script/visual_script_editor.cpp msgid "Change Signal Arguments" @@ -11659,42 +11545,36 @@ msgid "Set Variable Type" msgstr "تحيد نوع المتغير" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Input Port" -msgstr "أضف مدخله" +msgstr "أضف منفذ أدخال" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Output Port" -msgstr "أضف مدخله" +msgstr "أضف منفذ إخراج" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Override an existing built-in function." -msgstr "إسم غير صالح، يجب أن لا يتصادم مع الأسماء المبنية تلقائياً الموجودة." +msgstr "تجاوز لدالة مُدمجة موجودة مسبقًا." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new function." -msgstr "إنشاء %s جديد" +msgstr "إنشاء دالة جديدة." #: modules/visual_script/visual_script_editor.cpp msgid "Variables:" msgstr "المتغيرات:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new variable." -msgstr "إنشاء %s جديد" +msgstr "إنشاء متغير جديد." #: modules/visual_script/visual_script_editor.cpp msgid "Signals:" msgstr "الإشارات:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new signal." -msgstr "أنشئ شكل جديد من لا شئ." +msgstr "إنشاء إشارة جديدة." #: modules/visual_script/visual_script_editor.cpp msgid "Name is not a valid identifier:" @@ -11721,9 +11601,8 @@ msgid "Add Function" msgstr "إضافة وظيفة برمجية" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Delete input port" -msgstr "مسح النقطة" +msgstr "مسح منفذ إدخال" #: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" @@ -11734,14 +11613,12 @@ msgid "Add Signal" msgstr "إضافة إشارة" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Input Port" -msgstr "مسح النقطة" +msgstr "حذف منفذ إدخال" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Output Port" -msgstr "مسح النقطة" +msgstr "حذف منفذ إخراج" #: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" @@ -11825,19 +11702,16 @@ msgid "Connect Nodes" msgstr "وصل العُقد" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Disconnect Nodes" -msgstr "غير متصل" +msgstr "عُقد غير متصلة" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Connect Node Data" -msgstr "صلها بالعقدة:" +msgstr "ربط بيانات العقدة" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Connect Node Sequence" -msgstr "صلها بالعقدة:" +msgstr "ربط تسلسل العقدة" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" @@ -11848,9 +11722,8 @@ msgid "Change Input Value" msgstr "تعديل قيمة الإدخال" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Resize Comment" -msgstr "تعديل العنصر القماشي" +msgstr "تغيير حجم التعليق" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." @@ -11882,9 +11755,8 @@ msgid "Try to only have one sequence input in selection." msgstr "حاول أن يكون لديك تسلسل إدخال واحد من المُختار." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create Function" -msgstr "عمل اشتراك" +msgstr "إنشاء دالة" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" @@ -11907,33 +11779,28 @@ msgid "Editing Signal:" msgstr "تحرير الإشارة:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Tool:" -msgstr "أنشئ عظام" +msgstr "عمل أداة:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" msgstr "الأعضاء:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Base Type:" -msgstr "غير نوع %s" +msgstr "تغيير اساس النوع:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Nodes..." -msgstr "إضافة %s..." +msgstr "إضافة عُقد..." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Function..." -msgstr "مسح المهمة" +msgstr "إضافة دالة…" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "function_name" -msgstr "الإعدادات:" +msgstr "أسم_الدالة" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11956,19 +11823,16 @@ msgid "Cut Nodes" msgstr "قص العُقد" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Function" -msgstr "مسح المهمة" +msgstr "عمل دالة" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Refresh Graph" -msgstr "تحديث" +msgstr "تحديث الرسم البياني" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Member" -msgstr "الأعضاء" +msgstr "تعديل العضو" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -12016,7 +11880,7 @@ msgstr "لم يتم إيجاد (مُحدد المُتغير) VariableSet في ا #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." -msgstr "العقدة المخصصة لا تحتوي طريقة ()step_ ، لا يمكن معالجة المخطوط." +msgstr "العقدة المخصصة لا تحتوي طريقة ()step_ ، لا يمكن معالجة الشكل البياني." #: modules/visual_script/visual_script_nodes.cpp msgid "" @@ -12027,9 +11891,8 @@ msgstr "" "(خطأ)." #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Search VisualScript" -msgstr "إخلاء الكود" +msgstr "بحث VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" @@ -12084,11 +11947,8 @@ msgstr "" "الموضوعة سلفاً." #: platform/android/export/export.cpp -#, fuzzy msgid "Release keystore incorrectly configured in the export preset." -msgstr "" -"مُنقح أخطاء مفتاح المتجر keystore غير مُهيئ في إعدادت المُحرر أو في الإعدادات " -"الموضوعة سلفاً." +msgstr "تحرر مخزن المفاتيح غير مُهيئ بشكل صحيح في إعدادت المسبقة للتصدير." #: platform/android/export/export.cpp msgid "Custom build requires a valid Android SDK path in Editor Settings." @@ -12120,26 +11980,34 @@ msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" msgstr "" +"وحدة \"GodotPaymentV3\" المضمنة في إعدادات المشروع \"android / modules\" غير " +"صالحة (تم تغييره في Godot 3.2.2).\n" #: platform/android/export/export.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" +msgstr "يجب تفعيل \"Use Custom Build\" لإستخدام الإضافات." #: platform/android/export/export.cpp msgid "" "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR" "\"." msgstr "" +"\"Degrees Of Freedom\" تكون صالحة فقط عندما يكون وضع الـ \"Xr Mode\"هو " +"\"Oculus Mobile VR\"." #: platform/android/export/export.cpp msgid "" "\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." msgstr "" +"\"Hand Tracking\" تكون صالحة فقط عندما يكون وضع الـ \"Xr Mode\"هو \"Oculus " +"Mobile VR\"." #: platform/android/export/export.cpp msgid "" "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." msgstr "" +"\"Focus Awareness\" تكون صالحة فقط عندما يكون وضع الـ \"Xr Mode\"هو \"Oculus " +"Mobile VR\"." #: platform/android/export/export.cpp msgid "" @@ -12288,13 +12156,12 @@ msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "أبعاد شاشة البداية غير صالحة (ينبغي أن تكون 620×300)." #: scene/2d/animated_sprite.cpp -#, fuzzy msgid "" "A SpriteFrames resource must be created or set in the \"Frames\" property in " "order for AnimatedSprite to display frames." msgstr "" -"ليتم إظهار الأطر (اللقطات) في الAnimatedSprite (النقوش المتحركة), يجب تكوين " -"مصدر لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها." +"ليتم إظهار الإطارات في الAnimatedSprite (النقوش المتحركة), يجب تكوين مصدر " +"لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها." #: scene/2d/canvas_modulate.cpp msgid "" @@ -12330,7 +12197,9 @@ msgstr "" #: scene/2d/collision_polygon_2d.cpp msgid "An empty CollisionPolygon2D has no effect on collision." -msgstr "مُضلع تصادم ثنائي الأبعاد فارغ ليس له أي تأثير على التصادم." +msgstr "" +"مُضلع تصادم ثنائي الأبعاد (CollisionPolygon2D) الفارغ ليس له أي تأثير على " +"التصادم." #: scene/2d/collision_shape_2d.cpp msgid "" @@ -12338,32 +12207,37 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" -"يعمل مُضلع التصادم ثنائي الأبعاد CollisionPolygon2D فقط كشكل تصادمي لكل العُقد " -"المشتقة من الكائن التصادمي ثنائي الأبعاد CollisionObject2D. من فضلك استخدمه " -"فقط لكل أبناء الحيز ثنائي الأبعاد Area2D، الجسم السكوني ثنائي الأبعاد " -"StaticBody2D و الجسم الجامد ثنائي الأبعاد RigidBody2D، والجسم المتحرك ثنائي " -"الأبعاد KinematicBody2D إلخ.. لكي تمنح كل منهم شكلاً." +"يعمل جسم-تصادم-ثنائي-البُعد (CollisionPolygon2D) فقط كشكل تصادمي لكل العُقد " +"المشتقة من الكائن التصادمي ثنائي الأبعاد (CollisionObject2D). من فضلك " +"استخدمه فقط لكل أبناء الحيز-ثنائي-البُعد (Area2D)، الجسم-الثابت-ثنائي-البُعد " +"(StaticBody2D) و الجسم-الصلب-ثنائي-البُعد (RigidBody2D)، والجسم-المتحرك-ثنائي-" +"البُعد (KinematicBody2D) إلخ.. لكي تمنح كل منهم شكلاً." #: scene/2d/collision_shape_2d.cpp msgid "" "A shape must be provided for CollisionShape2D to function. Please create a " "shape resource for it!" msgstr "" -"يجب تزويد ال CollisionShape2D بإحدى الأشكال (من نوع Shape2D) لتعمل بالشكل " -"المطلوب. الرجاء تكوين و ضبط الشكل لها اولا!" +"يجب تزويد جسم-تصادم-ثنائي-البُعد (CollisionShape2D) بإحدى الأشكال (من نوع " +"Shape2D) لتعمل بالشكل المطلوب. الرجاء تكوين و ضبط الشكل لها اولا!" #: scene/2d/collision_shape_2d.cpp msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"الأشكال المستندة إلى المضلع (Polygon-based shapes) لا تعني انك قادر على " +"استخدامها او تعديلها بشكل مباشر من خلال عقدة جسم-تصادم-ثنائي-البُعد " +"(CollisionShape2D). الرجاء استخدام عقدة مضلع-تصادم-ثنائي-البُعد " +"(CollisionPolygon2D) بدلاً من ذلك." #: scene/2d/cpu_particles_2d.cpp msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" -"تتطلب الرسوم المتحركة CPUParticles2D استخدام CanvasItemMaterial مع تمكين " +"تتطلب الرسوم المتحركة للجسيمات-وحدة-المعالجة-المركزية-ثنائية-الأبعاد " +"(CPUParticles2D) استخدام لوحة-مادة-العنصر (CanvasItemMaterial) مع تفعيل" "\"الرسوم المتحركة للجزيئات\"." #: scene/2d/light_2d.cpp @@ -12376,27 +12250,34 @@ msgstr "يجب توريد نقش بهيئة الضوء لخاصية \"النقش msgid "" "An occluder polygon must be set (or drawn) for this occluder to take effect." msgstr "" +"المُضلع المُغلق(occluder polygon) يجب تعينه (او رسمه) ليأخذ هذا الغَلق تأثيره." #: scene/2d/light_occluder_2d.cpp msgid "The occluder polygon for this occluder is empty. Please draw a polygon." -msgstr "" +msgstr "المُضلع المُغلق لهذا الغَلق فارغ. الرجاء رسم مُضلع." #: scene/2d/navigation_polygon.cpp msgid "" "A NavigationPolygon resource must be set or created for this node to work. " "Please set a property or draw a polygon." msgstr "" +"يجب تعيين مصدر مُضلع-التنقل (NavigationPolygon) أو إنشاؤه حتى تعمل هذه " +"العقدة. يُرجى تعيين خاصية أو رسم مضلع." #: scene/2d/navigation_polygon.cpp msgid "" "NavigationPolygonInstance must be a child or grandchild to a Navigation2D " "node. It only provides navigation data." msgstr "" +"يجب أن يكون نموذج-المضلع-المتنقل (NavigationPolygonInstance) تابعًا أو حفيدًا " +"لعقدة التنقل-ثنائي-الأبعاد (Navigation2D). انه فقط يوفر بيانات التنقل." #: scene/2d/parallax_layer.cpp msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +"تعمل عقدة طبقة-المنظهر (ParallaxLayer) فقط عند تعيينها كعقدة تابعة لعقدة " +"خلفية-المنظر ParallaxBackground." #: scene/2d/particles_2d.cpp msgid "" @@ -12404,22 +12285,31 @@ msgid "" "Use the CPUParticles2D node instead. You can use the \"Convert to " "CPUParticles\" option for this purpose." msgstr "" +"لا يدعم برنامج تشغيل الفيديو GLES2 الجسيمات القائمة على وحدة معالجة الرسومات " +"(GPU-based particles).\n" +"استخدم عقدة جسيمات-وحدة-المعالجة-المركزية-ثنائية-البُعد (CPUParticles2D) بدلاً " +"من ذلك. يمكنك استخدام خيار \"التحويل إلى CPUParticles\" لهذا الغرض." #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " "imprinted." msgstr "" +"لا يوجد مادة (material) لمعالجة الجسيمات ، لذلك لا يتم طبع او عمل أي سلوك." #: scene/2d/particles_2d.cpp msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"تتطلب الرسوم المتحركة للجسيمات-ثنائية-البُعد (Particles2D) استخدام لوحة-مادة-" +"العنصر (CanvasItemMaterial) مع تمكين \"الرسوم المتحركة للجسيمات\"." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "" +"لا يعمل اتباع-المسار-ثنائي-البُعد (PathFollow2D) إلا عند جعل عقدة مسار-ثنائي-" +"البُعد (Path2D) تابعًا له." #: scene/2d/physics_body_2d.cpp msgid "" @@ -12427,10 +12317,14 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" +"تغييرات الحجم للجسم-صلب-ثنائي-البُعد (RigidBody2D) (في أوضاع الشخصيات أو " +"الأوضاع الصلبة) سيتم تجاوزها بواسطة محرك الفيزياء عند التشغيل.\n" +"قم بتغيير الحجم في أشكال تصادم التابعين له بدلاً من ذلك." #: scene/2d/remote_transform_2d.cpp msgid "Path property must point to a valid Node2D node to work." msgstr "" +"يجب أن تشير خاصية المسار إلى عُقدة-ثنائية-البُعد (Node2D) صالحة لكي تعمل." #: scene/2d/skeleton_2d.cpp msgid "This Bone2D chain should end at a Skeleton2D node." @@ -12441,11 +12335,15 @@ msgstr "" #: scene/2d/skeleton_2d.cpp msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." msgstr "" +"يعمل عظم-ثنائي-البُعد (Bone2D) فقط مع هيكلية-ثنائية-البُعد (Skeleton2D) أو " +"Bone2D آخر كعقدة رئيسية." #: scene/2d/skeleton_2d.cpp msgid "" "This bone lacks a proper REST pose. Go to the Skeleton2D node and set one." msgstr "" +"هذا العظم يفتقر إلى وضع الراحة المناسب. انتقل إلى عقدة هيكلية ثنائية " +"البُعد(Skeleton2D) وقم بتعيين واحدة." #: scene/2d/tile_map.cpp msgid "" @@ -12453,40 +12351,56 @@ msgid "" "to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, " "KinematicBody2D, etc. to give them a shape." msgstr "" +"يحتاج خريطة-البلاط (TileMap) مع تفعيل خاصية إستخدام الأصل (Use Parent) إلى " +"ان يكون تابعًا لكائن-تصادمي-ثنائي-البُعد (CollisionObject2D) لإعطاء الأشكال. " +"يرجى استخدامه كتابع لحيز-ثنائي-البُعد(ِArea2D)، جسم-ثابت-ثنائي-البُعد " +"(StaticBody2D)، جسم-صلب-ثنائي-البُعد (RigidBody2D)، أو جسم-متحرك-ثنائي-البُعد " +"(KinematicBody2D)، وما إلى ذلك لمنحهم شكلاً." #: scene/2d/visibility_notifier_2d.cpp msgid "" "VisibilityEnabler2D works best when used with the edited scene root directly " "as parent." msgstr "" +"يعمل مُمَكِن-الرؤية-ثنائي-البُعد (VisibilityEnabler2D) بشكل أفضل عند استخدامه مع " +"المشهد الرئيس الذي تم تحريره مباشرةً باعتباره الأصل." #: scene/3d/arvr_nodes.cpp msgid "ARVRCamera must have an ARVROrigin node as its parent." -msgstr "" +msgstr "يجب أن تحتوي ARVRCamera على عقدة ARVROrigin كأصل لها." #: scene/3d/arvr_nodes.cpp msgid "ARVRController must have an ARVROrigin node as its parent." -msgstr "" +msgstr "يجب أن تحتوي ARVRController على عقدة ARVROrigin كأصل لها." #: scene/3d/arvr_nodes.cpp msgid "" "The controller ID must not be 0 or this controller won't be bound to an " "actual controller." msgstr "" +"يجب ألا يكون معرف وحدة التحكم تساوي 0 أو لن تكون وحدة التحكم هذه مقيدة بوحدة " +"تحكم فعلية." #: scene/3d/arvr_nodes.cpp msgid "ARVRAnchor must have an ARVROrigin node as its parent." -msgstr "" +msgstr "يجب أن يحتوي ARVRController على عقدة ARVROrigin كأصل له." #: scene/3d/arvr_nodes.cpp msgid "" "The anchor ID must not be 0 or this anchor won't be bound to an actual " "anchor." msgstr "" +"يجب ألا يكون معرف الإرتكاز (The anchor) يساوي 0 أو لن يكون هذا الإرتكاز مقيد " +"بإرتكاز فِعلي." #: scene/3d/arvr_nodes.cpp msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" +"يحتاج خريطة-البلاط (TileMap) مع تفعيل خاصية إستخدام الأصل (Use Parent) إلى " +"ان يكون تابعًا لكائن-تصادمي-ثنائي-البُعد (CollisionObject2D) لإعطاء الأشكال. " +"يرجى استخدامه كتابع لحيز-ثنائي-البُعد(ِArea2D)، جسم-ثابت-ثنائي-البُعد " +"(StaticBody2D)، جسم-صلب-ثنائي-البُعد (RigidBody2D)، أو جسم-متحرك-ثنائي-البُعد " +"(KinematicBody2D)، وما إلى ذلك لمنحهم شكلاً." #: scene/3d/baked_lightmap.cpp msgid "%d%%" @@ -12498,19 +12412,19 @@ msgstr "(الوقت المتبقي: %d:%02d ثانية)" #: scene/3d/baked_lightmap.cpp msgid "Plotting Meshes: " -msgstr "" +msgstr "تخطيط المجسمات: " #: scene/3d/baked_lightmap.cpp msgid "Plotting Lights:" -msgstr "" +msgstr "تخطيط الإضاءات:" #: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp msgid "Finishing Plot" -msgstr "" +msgstr "الانتهاء من التخطيط" #: scene/3d/baked_lightmap.cpp msgid "Lighting Meshes: " -msgstr "" +msgstr "إضاءة المجسمات: " #: scene/3d/collision_object.cpp msgid "" @@ -12518,6 +12432,8 @@ msgid "" "Consider adding a CollisionShape or CollisionPolygon as a child to define " "its shape." msgstr "" +"هذه العقدة ليس لها شكل، لذلك لا يمكن أن تصطدم أو تتفاعل مع الكائنات الأخرى.\n" +"ضع في الإعتبار إضافة شكل تصادم أو مضلع تصادم كتابع لتعريف شكله." #: scene/3d/collision_polygon.cpp msgid "" @@ -12525,6 +12441,10 @@ msgid "" "CollisionObject derived node. Please only use it as a child of Area, " "StaticBody, RigidBody, KinematicBody, etc. to give them a shape." msgstr "" +"يعمل مضلع التصادم (CollisionPolygon) فقط على توفير شكل تصادم لعقدة كائن " +"التصادم (CollisionObject) المشتقة. يُرجى استخدامه فقط كتابع لحيز (Area)، جسم " +"ثابت (StaticBody)، جسم صلب (StaticBody)، أو جسم حركي (KinematicBody)، وما " +"إلى ذلك لمنحهم شكلاً." #: scene/3d/collision_polygon.cpp msgid "An empty CollisionPolygon has no effect on collision." @@ -12536,46 +12456,58 @@ msgid "" "derived node. Please only use it as a child of Area, StaticBody, RigidBody, " "KinematicBody, etc. to give them a shape." msgstr "" +"يعمل شكل التصادم (CollisionPolygon) فقط على توفير شكل تصادم لعقدة كائن " +"التصادم (CollisionObject) المشتقة. يُرجى استخدامه فقط كتابع لحيز (Area)، جسم " +"ثابت (StaticBody)، جسم صلب (StaticBody)، أو جسم حركي (KinematicBody)، وما " +"إلى ذلك لمنحهم شكلاً." #: scene/3d/collision_shape.cpp -#, fuzzy msgid "" "A shape must be provided for CollisionShape to function. Please create a " "shape resource for it." msgstr "" -"يجب تزويد ال CollisionShape2D بإحدى الأشكال (من نوع Shape2D) لتعمل بالشكل " -"المطلوب. الرجاء تكوين و ضبط الشكل لها اولا!" +"يجب توفير شكل لـ CollisionShape2D بإحدى الأشكال (من نوع Shape2D) لتعمل " +"بالشكل المطلوب. الرجاء تكوين و ضبط الشكل لها." #: scene/3d/collision_shape.cpp msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." msgstr "" +"لا تعمل أشكال التبويت (Plane shapes) بشكل جيد وسيتم إزالتها في الإصدارات " +"المستقبلية. من فضلك لا تستخدمها." #: scene/3d/collision_shape.cpp msgid "" "ConcavePolygonShape doesn't support RigidBody in another mode than static." msgstr "" +"الشكل المضلع المُقعر (ConcavePolygonShape) لا يدعم الجسم الصلب (RigidBody) في " +"أي وضع غير الوضع الثابت." #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." -msgstr "" +msgstr "لا شيء مرئي لأنه لم يتم تعيين أي مجسم." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial whose " "Billboard Mode is set to \"Particle Billboard\"." msgstr "" +"تتطلب الرسوم المتحركة لجسيمات وحدة المعالجة المركزية( CPUParticles) استخدام " +"مادة مكانية (SpatialMaterial) التي تم ضبط وضع اللوحة (Billboard Mode) الخاص " +"بها على \"لوحة الجسيمات\"." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" -msgstr "" +msgstr "تخطيط المجسمات" #: scene/3d/gi_probe.cpp msgid "" "GIProbes are not supported by the GLES2 video driver.\n" "Use a BakedLightmap instead." msgstr "" +"GIProbes لا يدعم برنامج تشغيل الفيديو GLES2.\n" +"استخدم BakedLightmap بدلاً من ذلك." #: scene/3d/light.cpp msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." @@ -12584,12 +12516,15 @@ msgstr "بقعة الضوء بزاوية أكبر من 90 درجة لا يمكن #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" +"يجب تعيين مصدر مجسم-التنقل (NavigationMesh) أو إنشاؤه حتى تعمل هذه العقدة." #: scene/3d/navigation_mesh.cpp msgid "" "NavigationMeshInstance must be a child or grandchild to a Navigation node. " "It only provides navigation data." msgstr "" +"يجب أن يكون نموذج-مجسم-التنقل (NavigationMeshInstance) تابعًا أو حفيدًا لعقدة " +"التنقل (Navigation node). انه يوفر فقط بيانات التنقل." #: scene/3d/particles.cpp msgid "" @@ -12597,17 +12532,23 @@ msgid "" "Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" "\" option for this purpose." msgstr "" +"الجسيمات القائمة على وحدة معالجة الرسومات (GPU-based particles) لا تدعم " +"برنامج تشغيل الفيديو GLES2 .\n" +"استخدم عقدة CPUParticles بدلاً من ذلك. يمكنك استخدام خيار \"التحويل إلى " +"CPUParticles\" لهذا الغرض." #: scene/3d/particles.cpp msgid "" "Nothing is visible because meshes have not been assigned to draw passes." -msgstr "" +msgstr "لا يوجد شيء مرئي لأن المجسمات لم يتم تعيين لها رسم التمريرات." #: scene/3d/particles.cpp msgid "" "Particles animation requires the usage of a SpatialMaterial whose Billboard " "Mode is set to \"Particle Billboard\"." msgstr "" +"تتطلب الرسوم المتحركة للجسيمات استخدام مادة مكانية (SpatialMaterial) التي تم " +"ضبط وضع اللوحة (Billboard Mode) الخاص بها على \"لوحة الجسيمات\"." #: scene/3d/path.cpp msgid "PathFollow only works when set as a child of a Path node." @@ -12618,6 +12559,8 @@ msgid "" "PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its " "parent Path's Curve resource." msgstr "" +"يتطلب ROTATION_ORIENTED الخاص بأتباع-المسار (PathFollow) تمكين \"Up Vector\" " +"في مصدر منحنى مسار الأصل (Parent Path's)." #: scene/3d/physics_body.cpp msgid "" @@ -12625,16 +12568,21 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" +"تغير حجم الجسم الصلب (RigidBody) (في الشخصية أو الأوضاع الصلبة) سيتم تجاوزها " +"بواسطة محرك الفيزياء عند التشغيل.\n" +"قم بتغيير الحجم في أشكال تصادم الأتباع (Children) بدلاً من ذلك." #: scene/3d/remote_transform.cpp msgid "" "The \"Remote Path\" property must point to a valid Spatial or Spatial-" "derived node to work." msgstr "" +"يجب أن تشير خاصية \"المسار البعيد\" إلى عقدة مكانية أو مشتقة مكانية صالحة " +"لكي تعمل." #: scene/3d/soft_body.cpp msgid "This body will be ignored until you set a mesh." -msgstr "سيتم تجاهل هذا الجسم حتى تضع تحدد سطحاً mesh." +msgstr "سيتم تجاهل هذا الجسم حتى تضع تحدد له مجسمًا." #: scene/3d/soft_body.cpp msgid "" @@ -12642,42 +12590,52 @@ msgid "" "running.\n" "Change the size in children collision shapes instead." msgstr "" +"تغير حجم الجسم الناعم (SoftBody) سيتم تجاوزها بواسطة محرك الفيزياء عند " +"التشغيل.\n" +"قم بتغيير الحجم في أشكال تصادم الأتباع (Children) بدلاً من ذلك." #: scene/3d/sprite_3d.cpp -#, fuzzy msgid "" "A SpriteFrames resource must be created or set in the \"Frames\" property in " "order for AnimatedSprite3D to display frames." msgstr "" -"ليتم إظهار الأطر (اللقطات) في الAnimatedSprite (النقوش المتحركة), يجب تكوين " -"مصدر لها من نوع SpriteFrames و ضبط خاصية الFrames (الأطر) بها." +"يجب إنشاء مصدر إطارات الرسم (SpriteFrames) أو تعيينه في خاصية \"الإطارات\" " +"حتى يتمكن الرسوم المتحركة للرسم ثلاثي الُعد (AnimatedSprite3D) من عرض " +"الإطارات." #: scene/3d/vehicle_body.cpp msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." msgstr "" +"تعمل عجلة المركبة (VehicleWheel) على توفير نظام عجلات لجسم " +"المركبة(VehicleBody). يرجى استخدامه كتابع لجسم المركبة." #: scene/3d/world_environment.cpp msgid "" "WorldEnvironment requires its \"Environment\" property to contain an " "Environment to have a visible effect." msgstr "" +"تتطلب بيئة-العالم (WorldEnvironment) خاصية\"البيئة\" الخاصة بها لاحتواء بيئة " +"ليكون لها تأثير مرئي." #: scene/3d/world_environment.cpp msgid "" "Only one WorldEnvironment is allowed per scene (or set of instanced scenes)." -msgstr "" +msgstr "يُسمح فقط ببيئة عالمية واحدة لكل مشهد (أو مجموعة من المشاهد المتوافقة)." #: scene/3d/world_environment.cpp msgid "" "This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set " "this environment's Background Mode to Canvas (for 2D scenes)." msgstr "" +"يتم تجاهل هذه البيئة العالمية. إما أن تضيف كاميرا (للمشاهد ثلاثية البُعد) أو " +"اضبط وضع الخلفية لهذه البيئة على لوحة (Canvas) (للمشاهد ثنائية البُعد)." #: scene/animation/animation_blend_tree.cpp msgid "On BlendTree node '%s', animation not found: '%s'" msgstr "" +"في عقدة خليط-الشجرة (BlendTree) '%s'، لم يتم العثور على الرسوم المتحركة:'%s '" #: scene/animation/animation_blend_tree.cpp msgid "Animation not found: '%s'" @@ -12754,12 +12712,18 @@ msgid "" "children placement behavior.\n" "If you don't intend to add a script, use a plain Control node instead." msgstr "" +"لا تخدم الحاوية في حد ذاتها أي غرض ما لم يقم النص البرمجي بتكوين سلوك وضع " +"الأتباع الخاص به .\n" +"إذا كنت لا تنوي إضافة نص برمجي ، فاستخدم عقدة تحكم عادية بدلاً من ذلك." #: scene/gui/control.cpp msgid "" "The Hint Tooltip won't be displayed as the control's Mouse Filter is set to " "\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"." msgstr "" +"لن يتم عرض أداة التلميح أثناء تعيين عامل تصفية الفأره الخاص بعنصر التحكم, تم " +"وضعه على \"تجاهل\". لحل هذه المشكلة ، اضبط تصفية الفأره على \"إيقاف\" أو " +"\"تمرير\"." #: scene/gui/dialogs.cpp msgid "Alert!" @@ -12775,10 +12739,13 @@ msgid "" "functions. Making them visible for editing is fine, but they will hide upon " "running." msgstr "" +"ستختفي النوافذ المنبثقة افتراضيًا ما لم تقم باستدعاء popup() أو أي من وظائف " +"popup(). من الجيد جعلها مرئية للتحرير ، لكنها ستختفي عند التشغيل." #: scene/gui/range.cpp msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." msgstr "" +"إذا تم تفعيل الـ\"Exp Edit\" يجب على ان يكون \"Min Value\" اعلى من صفر." #: scene/gui/scroll_container.cpp msgid "" @@ -12786,6 +12753,9 @@ msgid "" "Use a container as child (VBox, HBox, etc.), or a Control and set the custom " "minimum size manually." msgstr "" +"تم تصميم ScrollContainer للعمل مع عنصر تحكم تابع واحد.\n" +"استخدم حاوية كتابع (VBox ، HBox ، إلخ) ، أو عنصر تحكم واضبط الحد الأدنى " +"المخصص للحجم يدويًا." #: scene/gui/tree.cpp msgid "(Other)" @@ -12796,6 +12766,8 @@ msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "" +"تعذر تحميل البيئة الافتراضية كما هو محدد في إعدادات المشروع (التقديم -> " +"البيئة -> البيئة الافتراضية)." #: scene/main/viewport.cpp msgid "" @@ -12804,6 +12776,9 @@ msgid "" "obtain a size. Otherwise, make it a RenderTarget and assign its internal " "texture to some node for display." msgstr "" +"لم يتم تعيين منفذ العرض هذا كهدف عرض. إذا كنت تنوي عرض محتوياته مباشرة على " +"الشاشة ، اجعله تابعًا لعنصر تحكم حتى يتمكن من الحصول على الحجم. خلاف ذلك ، " +"اجعلها RenderTarget وقم بتعيين نسيجها الداخلي لبعض العقد لعرضها." #: scene/main/viewport.cpp msgid "Viewport size must be greater than 0 to render anything." diff --git a/editor/translations/bg.po b/editor/translations/bg.po index b0378d612c..6582fc6fec 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -1118,6 +1118,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 5fdcfb385b..e92b95ae74 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -1215,6 +1215,16 @@ msgid "Gold Sponsors" msgstr "গোল্ড স্পনসর" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "সিলভার ডোনার" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "ব্রোঞ্জ ডোনার" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "মিনি স্পনসর" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 359aea8184..5f1f1c4cc5 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -1148,6 +1148,16 @@ msgid "Gold Sponsors" msgstr "Patrocinadors Gold" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Donants Silver" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Donants Bronze" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Patrocinadors" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index e629fbc2ff..3a77f37c2a 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -20,11 +20,12 @@ # Filip Vincůrek <vincurek.f@gmail.com>, 2020. # Ondrej Pavelka <ondrej.pavelka@outlook.com>, 2020. # Zbyněk <zbynek.fiala@gmail.com>, 2020. +# Daniel Kříž <Daniel.kriz@protonmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-28 09:51+0000\n" +"PO-Revision-Date: 2020-08-16 03:50+0000\n" "Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" @@ -1153,6 +1154,16 @@ msgid "Gold Sponsors" msgstr "Zlatí sponzoři" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Stříbrní dárci" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronzoví dárci" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Malí sponzoři" @@ -1621,7 +1632,7 @@ msgstr "Editor skriptů" #: editor/editor_feature_profile.cpp msgid "Asset Library" -msgstr "Otevřít knihovnu assetů" +msgstr "Knihovna zdrojů (AssetLib)" #: editor/editor_feature_profile.cpp msgid "Scene Tree Editing" @@ -8184,9 +8195,8 @@ msgid "Occlusion" msgstr "Editovat polygon" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Navigation" -msgstr "Vytvořit Navigation Mesh" +msgstr "Navigace" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -8965,7 +8975,7 @@ msgstr "Vrátí hyperbolický kosinus parametru." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts a quantity in radians to degrees." -msgstr "Konvertuje množství v radiánech na stupně." +msgstr "Konvertuje hodnotu v radiánech na stupně." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Base-e Exponential." @@ -9022,7 +9032,7 @@ msgstr "Vrátí hodnotu prvního parametru umocněného druhým." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts a quantity in degrees to radians." -msgstr "Konvertuje množství ve stupních na radiány." +msgstr "Konvertuje hodnotu ve stupních na radiány." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 / scalar" @@ -9521,7 +9531,7 @@ msgstr "Soubour balíčk" #: editor/project_export.cpp msgid "Features" -msgstr "Funkce" +msgstr "Vlastnosti" #: editor/project_export.cpp msgid "Custom (comma-separated):" @@ -10387,7 +10397,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Padding" -msgstr "" +msgstr "Odsazení" #: editor/rename_dialog.cpp msgid "" @@ -10475,7 +10485,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." -msgstr "" +msgstr "Chybí rodič pro instancování scény." #: editor/scene_tree_dock.cpp msgid "Error loading scene from %s" @@ -10489,7 +10499,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Instance Scene(s)" -msgstr "" +msgstr "Scéna/Scény instance" #: editor/scene_tree_dock.cpp #, fuzzy @@ -10501,9 +10511,8 @@ msgid "Instance Child Scene" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Detach Script" -msgstr "Připojit skript" +msgstr "Odpojit skript" #: editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." @@ -10534,9 +10543,8 @@ msgid "Instantiated scenes can't become root" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make node as Root" -msgstr "Dává smysl!" +msgstr "Nastavit uzel jako zdrojový" #: editor/scene_tree_dock.cpp #, fuzzy @@ -10693,9 +10701,8 @@ msgid "Reparent to New Node" msgstr "Přidat/Vytvořit nový uzel" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make Scene Root" -msgstr "Dává smysl!" +msgstr "Nastav scénu jako zdrojovou" #: editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -10795,6 +10802,8 @@ msgid "" "Node is locked.\n" "Click to unlock it." msgstr "" +"Uzel je zamčený.\n" +"Klikněte pro odemčení." #: editor/scene_tree_editor.cpp msgid "" @@ -11219,16 +11228,15 @@ msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Select dependencies of the library for this entry" -msgstr "" +msgstr "Vyberte závislosti knihovny pro tento vstup" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Remove current entry" -msgstr "Odstranit signál" +msgstr "Odstranit aktuální vstup" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Double click to create a new entry" -msgstr "" +msgstr "Stiskněte dvakrát pro vytvoření nového vstupu" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Platform:" @@ -12647,16 +12655,15 @@ msgstr "HSV" #: scene/gui/color_picker.cpp msgid "Raw" -msgstr "" +msgstr "Raw" #: scene/gui/color_picker.cpp msgid "Switch between hexadecimal and code values." -msgstr "" +msgstr "Přepni mezi hexadecimálními a kódovými hodnotami." #: scene/gui/color_picker.cpp -#, fuzzy msgid "Add current color as a preset." -msgstr "Přidat aktuální barvu jako předvolbu" +msgstr "Přidat aktuální barvu jako předvolbu." #: scene/gui/container.cpp msgid "" @@ -12730,11 +12737,11 @@ msgstr "" #: scene/main/viewport.cpp msgid "Viewport size must be greater than 0 to render anything." msgstr "" +"Velikost pohledu musí být větší než 0, aby bylo možné cokoliv renderovat." #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid source for preview." -msgstr "Neplatný zdroj pro shader." +msgstr "Neplatný zdroj pro náhled." #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." @@ -12747,15 +12754,15 @@ msgstr "Neplatný zdroj pro shader." #: servers/visual/shader_language.cpp msgid "Assignment to function." -msgstr "" +msgstr "Přiřazeno funkci." #: servers/visual/shader_language.cpp msgid "Assignment to uniform." -msgstr "" +msgstr "Přiřazeno uniformu." #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." -msgstr "" +msgstr "Odlišnosti mohou být přiřazeny pouze ve vertex funkci." #: servers/visual/shader_language.cpp msgid "Constants cannot be modified." diff --git a/editor/translations/da.po b/editor/translations/da.po index da54615917..d472b338d8 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -1189,6 +1189,16 @@ msgid "Gold Sponsors" msgstr "Guld Sponsorer" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Sølv Donorer" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronze Donorer" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsorer" diff --git a/editor/translations/de.po b/editor/translations/de.po index 4b8252173e..9b89e7e1d6 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -54,12 +54,16 @@ # Jacqueline Ulken <Jacqueline.Ulken@protonmail.com>, 2020. # Günther Bohn <ciscouser@gmx.de>, 2020. # Tom Wor <mail@tomwor.com>, 2020. +# Bjarne Hiller <bjarne.hiller@gmail.com>, 2020. +# Dirk Federmann <weblategodot@dirkfedermann.de>, 2020. +# Helmut Hirtes <helmut.h@gmx.de>, 2020. +# Michal695 <michalek.jedrzejak@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-28 09:51+0000\n" -"Last-Translator: Tom Wor <mail@tomwor.com>\n" +"PO-Revision-Date: 2020-08-28 13:09+0000\n" +"Last-Translator: Michal695 <michalek.jedrzejak@gmail.com>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -67,7 +71,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -76,13 +80,13 @@ msgstr "Ungültiger Argument-Typ in convert(), TYPE_*-Konstanten benötigt." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "Zeichenkette der Länge 1 erwartet (exakt ein Symbol)." +msgstr "Zeichenkette der Länge 1 erwartet (exakt ein Zeichen)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "Nicht genügend Bytes zum Dekodieren oder ungültiges Format." +msgstr "Nicht genügend Bytes zur Dekodierung oder ungültiges Format." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" @@ -1193,6 +1197,16 @@ msgid "Gold Sponsors" msgstr "Gold-Sponsoren" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Silber-Unterstützer" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronze-Unterstützer" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini-Sponsoren" @@ -1659,11 +1673,11 @@ msgstr "3D-Editor" #: editor/editor_feature_profile.cpp msgid "Script Editor" -msgstr "Skripteditor" +msgstr "Skript Editor" #: editor/editor_feature_profile.cpp msgid "Asset Library" -msgstr "Nutzerinhaltesammlung" +msgstr "Bestandsbibliothek" #: editor/editor_feature_profile.cpp msgid "Scene Tree Editing" @@ -3010,7 +3024,7 @@ msgstr "Projekt abspielen." #: editor/editor_node.cpp msgid "Play" -msgstr "Starten" +msgstr "Abspielen" #: editor/editor_node.cpp msgid "Pause the scene execution for debugging." @@ -3030,7 +3044,7 @@ msgstr "Spiele die bearbeitete Szene." #: editor/editor_node.cpp msgid "Play Scene" -msgstr "Szene starten" +msgstr "Szene abspielen" #: editor/editor_node.cpp msgid "Play custom scene" @@ -3038,7 +3052,7 @@ msgstr "Spiele angepasste Szene" #: editor/editor_node.cpp msgid "Play Custom Scene" -msgstr "Spiele angepasste Szene" +msgstr "Angepasste Szene abspielen" #: editor/editor_node.cpp msgid "Changing the video driver requires restarting the editor." @@ -3255,7 +3269,7 @@ msgstr "Gesamt" #: editor/editor_profiler.cpp msgid "Self" -msgstr "Eigenanteil" +msgstr "Selbst" #: editor/editor_profiler.cpp msgid "Frame #:" @@ -5694,7 +5708,7 @@ msgstr "Pose kopieren" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Pose" -msgstr "Pose zurücksetzen" +msgstr "Pose/Stellung löschen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" @@ -6832,7 +6846,7 @@ msgstr "Schiebe hoch" #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Move Down" -msgstr "Schiebe herunter" +msgstr "Schiebe runter" #: editor/plugins/script_editor_plugin.cpp msgid "Next script" @@ -6877,7 +6891,7 @@ msgstr "Vorwärts im Verlauf" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Theme" -msgstr "Theme" +msgstr "Designvorlagen (Thema)" #: editor/plugins/script_editor_plugin.cpp msgid "Import Theme..." @@ -7109,7 +7123,7 @@ msgstr "Symbol vervollständigen" #: editor/plugins/script_text_editor.cpp msgid "Evaluate Selection" -msgstr "Auswahl auswerten" +msgstr "Springe zum vorigen Haltepunkt" #: editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" @@ -9397,9 +9411,9 @@ msgid "" "Returns falloff based on the dot product of surface normal and view " "direction of camera (pass associated inputs to it)." msgstr "" -"Gibt den Fresnelabfall abgeleitet aus dem Skalarprodukt aus " -"Oberflächennormalenvektor und Kamerablickrichtung zurück (zugeordnete " -"Eingänge müssen übergeben werden)." +"Gibt den Abfall basierend auf dem Punktprodukt der Oberflächennormalen und " +"der Blickrichtung der Kamera zurück (übergeben Sie die zugehörigen Eingaben " +"an diese)." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9610,7 +9624,7 @@ msgstr "Pack-Datei" #: editor/project_export.cpp msgid "Features" -msgstr "Funktionen" +msgstr "Eigenschaften" #: editor/project_export.cpp msgid "Custom (comma-separated):" @@ -10322,7 +10336,7 @@ msgstr "Umleitungen nach Lokalisierung:" #: editor/project_settings_editor.cpp msgid "Locale" -msgstr "Lokalisierung" +msgstr "Gebietsschema" #: editor/project_settings_editor.cpp msgid "Locales Filter" @@ -10637,9 +10651,8 @@ msgid "Make node as Root" msgstr "Node zur Szenenwurzel machen" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Node „%s“ und Unterobjekte löschen?" +msgstr "%d Nodes und ihre Unterobjekte löschen?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -10756,7 +10769,7 @@ msgstr "Unter-Ressourcen" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" -msgstr "Leere Vererbung" +msgstr "Löse Vererbung" #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -10845,7 +10858,7 @@ msgstr "Lokal" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance? (No Undo!)" -msgstr "Vererbung wirklich leeren? (Lässt sich nicht rückgängig machen!)" +msgstr "Vererbung wirklich lösen? (Lässt sich nicht rückgängig machen!)" #: editor/scene_tree_editor.cpp msgid "Toggle Visible" @@ -11926,7 +11939,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" -msgstr "Ausgewähltes löschen" +msgstr "Auswahl löschen" #: modules/visual_script/visual_script_editor.cpp msgid "Find Node Type" @@ -11942,7 +11955,7 @@ msgstr "Nodes trennen" #: modules/visual_script/visual_script_editor.cpp msgid "Make Function" -msgstr "Funktion bauen" +msgstr "Funktion erstellen" #: modules/visual_script/visual_script_editor.cpp msgid "Refresh Graph" @@ -12346,6 +12359,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Polygon basierte Formen sollten nicht direkt in CollisionShape2D-Nodes " +"genutzt oder bearbeitet werden. Zu diesem Zweck sollte das CollsionPolygon2D-" +"Node verwendet werden." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 87dca17afd..93e62289e0 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -1101,6 +1101,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index dff4eaafb0..c0c08edc2f 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-11 01:21+0000\n" -"Last-Translator: KostasMSC <kargyris@athtech.gr>\n" +"PO-Revision-Date: 2020-08-11 14:04+0000\n" +"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" "Language: el\n" @@ -503,8 +503,8 @@ msgstr "" "εισαγωγής της σκηνής και θέστε\n" "το «Animation > Storage» σε «Files», ενεργοποιήστε το «Animation > Keep " "Custom Tracks», και κάντε επαν-εισαγωγή.\n" -"Εναλλακτικά, χρησιμοποιήστε μία διαμόρφωση εισαγωγής που εισάγει κινήσεις " -"σε ξεχωριστά αρχεία." +"Εναλλακτικά, χρησιμοποιήστε μία διαμόρφωση εισαγωγής που εισάγει κινήσεις σε " +"ξεχωριστά αρχεία." #: editor/animation_track_editor.cpp msgid "Warning: Editing imported animation" @@ -1147,6 +1147,16 @@ msgid "Gold Sponsors" msgstr "Χρυσοί Χορυγοί" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Αργυροί Δωρητές" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Χάλκινοι Δωρητές" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Μικροί Χορηγοί" @@ -1597,7 +1607,7 @@ msgstr "Δεν βρέθηκε προσαρμοσμένο πακέτο αποσφ #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp msgid "Custom release template not found." -msgstr "Δεν βρέθηκε προσαρμοσμένο πακέτο παραγωγής." +msgstr "Δεν βρέθηκε προσαρμοσμένο πακέτο διανομής." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" @@ -2456,13 +2466,13 @@ msgstr "Αποθήκευση & Έξοδος" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" -msgstr "Αποθήκευση αλλαγών στις ακόλουθες σκηνές σκηνές πριν την έξοδο;" +msgstr "Αποθήκευση αλλαγών στις ακόλουθες σκηνές πριν την έξοδο;" #: editor/editor_node.cpp msgid "Save changes the following scene(s) before opening Project Manager?" msgstr "" -"Αποθήκευση αλλαγών στις ακόλουθες σκηνές σκηνές πριν το άνοιγμα του " -"διαχειριστή έργων;" +"Αποθήκευση αλλαγών στις ακόλουθες σκηνές πριν το άνοιγμα του Διαχειριστή " +"Έργων;" #: editor/editor_node.cpp msgid "" @@ -3128,7 +3138,7 @@ msgstr "Άνοιγμα βιβλιοθήκης" #: editor/editor_node.cpp msgid "Open the next Editor" -msgstr "Άνοιγμα του επόμενου επεξεργαστή" +msgstr "Άνοιγμα του επόμενου Επεξεργαστή" #: editor/editor_node.cpp msgid "Open the previous Editor" @@ -3478,7 +3488,7 @@ msgid "" "for official releases." msgstr "" "Δεν βρέθηκαν συνδέσμοι λήψης για την τρέχουσα έκδοση. Η απευθείας λήψη είναι " -"διαθέσιμη μόνο για τις επίσημες εκδόσεις." +"διαθέσιμη μόνο για τις επίσημες διανομές." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3987,6 +3997,7 @@ msgstr "Σφάλμα κατά την εκτέλεση της δέσμης ενε #: editor/import/resource_importer_scene.cpp msgid "Did you return a Node-derived object in the `post_import()` method?" msgstr "" +"Μήπως επιστρέψατε ένα αντικείμενο τύπου κόμβου στην μέθοδο `post_import()`;" #: editor/import/resource_importer_scene.cpp msgid "Saving..." @@ -6213,7 +6224,7 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" -msgstr "Χρόνος παραγωγής (sec):" +msgstr "Χρόνος Παραγωγής (sec):" #: editor/plugins/particles_editor_plugin.cpp msgid "The geometry's faces don't contain any area." @@ -6856,7 +6867,7 @@ msgstr "Κλείσιμο όλων" #: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" -msgstr "Κλείσιμο τεκμηρίωσης" +msgstr "Κλείσιμο Τεκμηρίωσης" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" @@ -6957,9 +6968,8 @@ msgstr "" "κόμβο «%s»." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "[Ignore]" -msgstr "(Παράβλεψη)" +msgstr "[Παράβλεψη]" #: editor/plugins/script_text_editor.cpp msgid "Line" @@ -7449,6 +7459,11 @@ msgid "" "Closed eye: Gizmo is hidden.\n" "Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")." msgstr "" +"Πατήστε για εναλλαγή λειτουργίας ορατότητας.\n" +"\n" +"Ανοιχτό μάτι: Ορατό μαραφέτι.\n" +"Κλειστό μάτι: Κρυμμένο μαραφέτι.\n" +"Ημι-ανοιχτό μάτι: Μαραφέτι ορατό και μέσα από στερεές επιφάνειες (\"x-ray\")." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Nodes To Floor" @@ -8361,7 +8376,9 @@ msgstr "" msgid "" "Select sub-tile to change its priority.\n" "Click on another Tile to edit it." -msgstr "Επιλέξτε υποπλακίδιο για να αλλάξετε την προτεραιότητα του." +msgstr "" +"Επιλέξτε υποπλακίδιο για να αλλάξετε την προτεραιότητα του.\n" +"Πατήστε σε άλλο Πλακίδιο για να το επεξεργαστείτε." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -9069,7 +9086,7 @@ msgstr "Επιστρέφει την υπερβολική εφαπτομένη τ #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the truncated value of the parameter." -msgstr "Βρίσκει την περικομμένη τιμή της παραμέτρου." +msgstr "Βρίσκει την περικομμένη τιμή της παραμέτρου." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Adds scalar to scalar." @@ -9468,7 +9485,7 @@ msgstr "" #: editor/project_export.cpp msgid "Release" -msgstr "Κυκλοφορία" +msgstr "Διανομή" #: editor/project_export.cpp msgid "Exporting All" @@ -9971,6 +9988,10 @@ msgid "" "To filter projects by name and full path, the query must contain at least " "one `/` character." msgstr "" +"Το κουτί αναζήτησης φιλτράρει έργα βάσει ονόματος και τελικού μέρους της " +"διαδρομής τους.\n" +"Για φιλτράρισμα βάσει ονόματος και πλήρης διαδρομής, το ερώτημα πρέπει να " +"περιέχει τουλάχιστον έναν χαρακτήρα `/`." #: editor/project_settings_editor.cpp msgid "Key " @@ -10142,7 +10163,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Add Input Action" -msgstr "Προσθήκη συμβάντος ενέργειας εισόδου" +msgstr "Προσθήκη Ενέργειας Εισόδου" #: editor/project_settings_editor.cpp msgid "Error saving settings." @@ -10537,9 +10558,8 @@ msgid "Instance Child Scene" msgstr "Αρχικοποίηση σκηνής ως παιδί" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Detach Script" -msgstr "Σύνδεση Δέσμης Ενεργειών" +msgstr "Αποσύνδεση Δέσμης Ενεργειών" #: editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." @@ -10577,9 +10597,8 @@ msgid "Make node as Root" msgstr "Κάνε κόμβο ρίζα" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Διαγραφή κόμβου \"%s\" και των παιδιών του;" +msgstr "Διαγραφή %d κόμβων και τυχών παιδιών τους;" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -10720,6 +10739,9 @@ msgid "" "This is probably because this editor was built with all language modules " "disabled." msgstr "" +"Αδυναμία σύνδεσης δέσμης ενεργειών: Καμία γλώσσα στο μητρώο.\n" +"Αυτό μπορεί να προκληθεί αν ο επεξεργαστής χτιστεί χωρίς καμία λειτουργική " +"μονάδα γλώσσας." #: editor/scene_tree_dock.cpp msgid "Add Child Node" @@ -10770,14 +10792,12 @@ msgstr "" "υπάρχει πηγαίος κόμβος." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Attach a new or existing script to the selected node." -msgstr "Σύνδεση νέας ή υπαρκτής δέσμης ενεργειών για τον επιλεγμένο κόμβο." +msgstr "Σύνδεση νέας ή υπαρκτής δέσμης ενεργειών στον επιλεγμένο κόμβο." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Detach the script from the selected node." -msgstr "Εκκαθάριση δέσμης ενεργειών για τον επιλεγμένο κόμβο." +msgstr "Αποσύνδεση της δέσμης ενεργειών από τον επιλεγμένο κόμβο." #: editor/scene_tree_dock.cpp msgid "Remote" @@ -11118,9 +11138,8 @@ msgid "Total:" msgstr "Συνολικά:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Export list to a CSV file" -msgstr "Εξαγωγή Προφίλ" +msgstr "Εξαγωγή λίστας σε αρχείο CSV" #: editor/script_editor_debugger.cpp msgid "Resource Path" @@ -12016,11 +12035,9 @@ msgstr "" "διαμόρφωση." #: platform/android/export/export.cpp -#, fuzzy msgid "Release keystore incorrectly configured in the export preset." msgstr "" -"Το «debug keystore» δεν έχει καθοριστεί στις Ρυθμίσεις Επεξεργαστή ή την " -"διαμόρφωση." +"Εσφαλμένη ρύθμιση αποθετηρίου κλειδιών διανομής στην διαμόρφωση εξαγωγής." #: platform/android/export/export.cpp msgid "Custom build requires a valid Android SDK path in Editor Settings." @@ -12055,26 +12072,35 @@ msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" msgstr "" +"Εσφαλμένη λειτουργική μονάδα «GodotPaymentV3» στην ρύθμιση εργου «Android/" +"Modules» (άλλαξε στην Godot 3.2.2).\n" #: platform/android/export/export.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." msgstr "" +"Η επιλογή «Use Custom Build» πρέπει να ενεργοποιηθεί για χρήση προσθέτων." #: platform/android/export/export.cpp msgid "" "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR" "\"." msgstr "" +"Το «Degrees Of Freedom» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus " +"Mobile VR»." #: platform/android/export/export.cpp msgid "" "\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." msgstr "" +"Το «Hand Tracking» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus Mobile " +"VR»." #: platform/android/export/export.cpp msgid "" "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." msgstr "" +"Το «Focus Awareness» είναι έγκυρο μόνο όταν το «Xr Mode» είναι «Oculus " +"Mobile VR»." #: platform/android/export/export.cpp msgid "" @@ -12291,6 +12317,8 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Τα σχήματα βασισμένα σε πολύγωνα δεν σχεδιάστικαν ώστε να είναι επεξεργάσιμα " +"από τον κόμβο CollisionShape2D. Χρησιμοποιήστε τον κόμβο CollisionPolygon2D." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index e740ea7d7a..3b58b56f85 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -1140,6 +1140,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/es.po b/editor/translations/es.po index e32797440e..a685eeb7ff 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -18,7 +18,7 @@ # Jose Maria Martinez <josemar1992@hotmail.com>, 2018. # Juan Quiroga <juanquiroga9@gmail.com>, 2017. # Kiji Pixel <raccoon.fella@gmail.com>, 2017. -# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019. +# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019, 2020. # Lonsfor <lotharw@protonmail.com>, 2017-2018. # Mario Nachbaur <manachbaur@gmail.com>, 2018. # Oscar Carballal <oscar.carballal@protonmail.com>, 2017-2018. @@ -54,8 +54,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-28 09:51+0000\n" -"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" +"PO-Revision-Date: 2020-07-31 03:47+0000\n" +"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -1193,6 +1193,16 @@ msgid "Gold Sponsors" msgstr "Patrocinadores Oro" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Donantes Plata" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Donantes Bronce" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Patrocinadores" @@ -1764,7 +1774,7 @@ msgstr "Nuevo" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "Importar" +msgstr "Importación" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" @@ -10627,9 +10637,8 @@ msgid "Make node as Root" msgstr "Convertir nodo como Raíz" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "¿Eliminar el nodo \"%s\" y sus hijos?" +msgstr "¿Eliminar %d nodos y sus hijos?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12352,6 +12361,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Las formas basadas en polígonos no están pensadas para ser usadas ni " +"editadas directamente a través del nodo CollisionShape2D. Por favor, usa el " +"nodo CollisionPolygon2D en su lugar." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 92e6e7d511..f80c3ba2c0 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-06-25 08:40+0000\n" +"PO-Revision-Date: 2020-07-31 03:47+0000\n" "Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" @@ -1154,6 +1154,16 @@ msgid "Gold Sponsors" msgstr "Sponsor Oro" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Donantes Plata" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Donantes Bronce" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsors" @@ -10578,9 +10588,8 @@ msgid "Make node as Root" msgstr "Convertir nodo en Raíz" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "¿Eliminar el nodo \"%s\" y sus hijos?" +msgstr "¿Eliminar %d nodos y sus hijos?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -10588,7 +10597,7 @@ msgstr "¿Eliminar %d nodos?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" -msgstr "¿Eliminar el nodo raiz \"%s\"?" +msgstr "¿Eliminar el nodo raíz \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" @@ -12298,6 +12307,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Las formas basadas en polígonos no están pensadas para ser usadas ni " +"editadas directamente a través del nodo CollisionShape2D. Por favor, usá el " +"nodo CollisionPolygon2D en su lugar." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/et.po b/editor/translations/et.po index ae27129ab6..b2b51b8676 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2020-07-26 15:42+0000\n" +"PO-Revision-Date: 2020-09-01 10:38+0000\n" "Last-Translator: StReef <streef.gtx@gmail.com>\n" "Language-Team: Estonian <https://hosted.weblate.org/projects/godot-engine/" "godot/et/>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -638,9 +638,8 @@ msgid "Copy" msgstr "Kopeeri" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select All/None" -msgstr "Tühista Valik" +msgstr "Vali kõik/mitte ükski" #: editor/animation_track_editor_plugins.cpp msgid "Add Audio Track Clip" @@ -800,7 +799,7 @@ msgstr "" #: editor/connections_dialog.cpp msgid "Advanced" -msgstr "" +msgstr "Täpsem" #: editor/connections_dialog.cpp msgid "Deferred" @@ -913,23 +912,23 @@ msgstr "" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp msgid "Favorites:" -msgstr "" +msgstr "Lemmikud:" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp msgid "Recent:" -msgstr "" +msgstr "Hiljutised:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" -msgstr "" +msgstr "Otsi:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Matches:" -msgstr "" +msgstr "Vasted:" #: editor/create_dialog.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp @@ -937,7 +936,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" -msgstr "" +msgstr "Kirjeldus:" #: editor/dependency_editor.cpp msgid "Search Replacement For:" @@ -1060,7 +1059,7 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp #: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" -msgstr "" +msgstr "Kustuta" #: editor/dependency_editor.cpp msgid "Owns" @@ -1080,7 +1079,7 @@ msgstr "" #: editor/editor_about.cpp msgid "Thanks from the Godot community!" -msgstr "Tänu Godot kogukonnale!" +msgstr "Suur tänu Godot kogukonnalt!" #: editor/editor_about.cpp msgid "Godot Engine contributors" @@ -1115,6 +1114,16 @@ msgid "Gold Sponsors" msgstr "Kuldsponsorid" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Hõbennetajad" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Pronksannetajad" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Väikesponsorid" @@ -1149,14 +1158,18 @@ msgid "" "is an exhaustive list of all such third-party components with their " "respective copyright statements and license terms." msgstr "" +"Godot mängumootor tugineb mitmetele kolmandate osapoolte tasuta ja avatud " +"lähtekoodiga teekidele, mis kõik on kooskõlas MIT-litsentsi tingimustega. " +"Järgnev on kõigi selliste kolmandate osapoolte komponentide täielik loetelu " +"koos vastavate autoriõiguste avalduste ja litsentsitingimustega." #: editor/editor_about.cpp msgid "All Components" -msgstr "" +msgstr "Kõik komponendid" #: editor/editor_about.cpp msgid "Components" -msgstr "" +msgstr "Komponendid" #: editor/editor_about.cpp msgid "Licenses" @@ -1205,7 +1218,7 @@ msgstr "" #: editor/editor_audio_buses.cpp msgid "Speakers" -msgstr "" +msgstr "Heliväljundi" #: editor/editor_audio_buses.cpp msgid "Add Effect" @@ -1270,7 +1283,7 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Duplicate" -msgstr "" +msgstr "Duplikeeri" #: editor/editor_audio_buses.cpp msgid "Reset Volume" @@ -1356,7 +1369,7 @@ msgstr "Lae olemasolev siini paigutus." #: editor/editor_audio_buses.cpp msgid "Save As" -msgstr "Salvesta kui…" +msgstr "Salvesta kui" #: editor/editor_audio_buses.cpp msgid "Save this Bus Layout to a file." @@ -1510,7 +1523,6 @@ msgid "Choose" msgstr "Vali" #: editor/editor_export.cpp -#, fuzzy msgid "Storing File:" msgstr "Salvestan faili:" @@ -1823,14 +1835,12 @@ msgid "Move Favorite Down" msgstr "Liiguta lemmikud alla" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to previous folder." -msgstr "Mine Eelmisele Sammule" +msgstr "Mine eelmisesse kausta." #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to next folder." -msgstr "Mine Järgmisele Sammule" +msgstr "Mine järmisesse kausta." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Go to parent folder." @@ -1887,7 +1897,6 @@ msgstr "" "katkestati" #: editor/editor_file_system.cpp -#, fuzzy msgid "(Re)Importing Assets" msgstr "(Taas)impordin varasid" @@ -1906,7 +1915,7 @@ msgstr "Pärib:" #: editor/editor_help.cpp msgid "Inherited by:" -msgstr "Päritud %s poolt" +msgstr "Päritud %s poolt:" #: editor/editor_help.cpp msgid "Description" @@ -2078,9 +2087,8 @@ msgstr "Lõpeta" #: editor/editor_network_profiler.cpp editor/editor_profiler.cpp #: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp -#, fuzzy msgid "Start" -msgstr "Start/Käivita" +msgstr "Käivita" #: editor/editor_network_profiler.cpp msgid "%s/s" @@ -2293,15 +2301,15 @@ msgstr "" #: editor/editor_node.cpp msgid "Quick Open..." -msgstr "" +msgstr "Ava kiiresti..." #: editor/editor_node.cpp msgid "Quick Open Scene..." -msgstr "" +msgstr "Ava kiiresti stseen..." #: editor/editor_node.cpp msgid "Quick Open Script..." -msgstr "" +msgstr "Ava kiiresti skript..." #: editor/editor_node.cpp msgid "Save & Close" @@ -2364,9 +2372,8 @@ msgid "Can't reload a scene that was never saved." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Reload Saved Scene" -msgstr "Stseeni salvestamine" +msgstr "Taaslae salvestatud stseen" #: editor/editor_node.cpp msgid "" @@ -2430,22 +2437,28 @@ msgstr "" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." -msgstr "" +msgstr "Lisa-skripti ei olnud võimalik laadida teelt: '%s'." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" +"Lisa-skripti ei olnud võimalik laadida teelt: '%s'. Tundub, et koodis on " +"viga, palun kontrolli süntaksi." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." msgstr "" +"Lisa-skripti ei olnud võimalik laadida teelt: '%s'. Baastüüp ei ole " +"EditorPlugin." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" +"Lisa-skripti ei olnud võimalik laadida teelt: '%s'. Skript ei ole tööriista " +"režiimis." #: editor/editor_node.cpp msgid "" @@ -2571,9 +2584,8 @@ msgid "Go to previously opened scene." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Copy Text" -msgstr "Kopeeri" +msgstr "Kopeeri tekst" #: editor/editor_node.cpp msgid "Next tab" @@ -2617,7 +2629,7 @@ msgstr "Salvesta kõik stseenid" #: editor/editor_node.cpp msgid "Convert To..." -msgstr "" +msgstr "Teisenda..." #: editor/editor_node.cpp msgid "MeshLibrary..." @@ -2835,7 +2847,7 @@ msgstr "Teavita veast" #: editor/editor_node.cpp msgid "Send Docs Feedback" -msgstr "Saada dokumentatsioonide tagasisede" +msgstr "Saada dokumentatsioonide tagasiside" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -2979,7 +2991,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Load Errors" -msgstr "" +msgstr "Laadimisvead" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" @@ -3035,36 +3047,36 @@ msgstr "" #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" -msgstr "" +msgstr "Paigaldatud pistikprogrammid:" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp msgid "Update" -msgstr "" +msgstr "Uuenda" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Version:" -msgstr "" +msgstr "Versioon:" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp msgid "Author:" -msgstr "" +msgstr "Autor:" #: editor/editor_plugin_settings.cpp msgid "Status:" -msgstr "" +msgstr "Olek:" #: editor/editor_plugin_settings.cpp msgid "Edit:" -msgstr "" +msgstr "Muuda:" #: editor/editor_profiler.cpp msgid "Measure:" -msgstr "" +msgstr "Mõõda:" #: editor/editor_profiler.cpp msgid "Frame Time (sec)" -msgstr "" +msgstr "Kaadri aeg (sek)" #: editor/editor_profiler.cpp msgid "Average Time (sec)" @@ -3072,7 +3084,7 @@ msgstr "" #: editor/editor_profiler.cpp msgid "Frame %" -msgstr "" +msgstr "Kaadri %" #: editor/editor_profiler.cpp msgid "Physics Frame %" @@ -3088,15 +3100,15 @@ msgstr "" #: editor/editor_profiler.cpp msgid "Frame #:" -msgstr "" +msgstr "Kaader nr:" #: editor/editor_profiler.cpp msgid "Time" -msgstr "" +msgstr "Aeg" #: editor/editor_profiler.cpp msgid "Calls" -msgstr "" +msgstr "Kutsungid" #: editor/editor_properties.cpp msgid "Edit Text:" @@ -3148,15 +3160,15 @@ msgstr "" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" -msgstr "" +msgstr "Vali vaateaken" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" -msgstr "" +msgstr "Uus skript" #: editor/editor_properties.cpp editor/scene_tree_dock.cpp msgid "Extend Script" -msgstr "" +msgstr "Laienda skripti" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" @@ -3207,7 +3219,7 @@ msgstr "" #: editor/editor_properties_array_dict.cpp msgid "New Value:" -msgstr "" +msgstr "Uus väärtus:" #: editor/editor_properties_array_dict.cpp msgid "Add Key/Value Pair" @@ -3436,7 +3448,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Current Version:" -msgstr "" +msgstr "Praegune versioon:" #: editor/export_template_manager.cpp msgid "Installed Versions:" @@ -3548,7 +3560,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Add to Favorites" -msgstr "" +msgstr "Lisa lemmikutesse" #: editor/filesystem_dock.cpp msgid "Remove from Favorites" @@ -3556,45 +3568,45 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." -msgstr "" +msgstr "Redigeeri sõltuvusi..." #: editor/filesystem_dock.cpp msgid "View Owners..." -msgstr "" +msgstr "Kuva omanikud..." #: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Rename..." -msgstr "" +msgstr "Muuda nime..." #: editor/filesystem_dock.cpp msgid "Duplicate..." -msgstr "" +msgstr "Duplikeeri..." #: editor/filesystem_dock.cpp msgid "Move To..." -msgstr "" +msgstr "Teisalda..." #: editor/filesystem_dock.cpp msgid "New Scene..." -msgstr "" +msgstr "Uus stseen..." #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." -msgstr "" +msgstr "Uus skript..." #: editor/filesystem_dock.cpp msgid "New Resource..." -msgstr "" +msgstr "Uus ressurss..." #: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_editor_debugger.cpp msgid "Expand All" -msgstr "" +msgstr "Laienda kõik" #: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_editor_debugger.cpp msgid "Collapse All" -msgstr "" +msgstr "Ahenda kõik" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3605,11 +3617,11 @@ msgstr "Nimeta ümber" #: editor/filesystem_dock.cpp msgid "Previous Folder/File" -msgstr "" +msgstr "Eelmine kaust/fail" #: editor/filesystem_dock.cpp msgid "Next Folder/File" -msgstr "" +msgstr "Järgmine kaust/fail" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3617,7 +3629,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Toggle Split Mode" -msgstr "" +msgstr "Lülita jagamisrežiim sisse/välja" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3642,13 +3654,12 @@ msgid "Overwrite" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Create Scene" -msgstr "Loo" +msgstr "Loo stseen" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" -msgstr "" +msgstr "Loo skript" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" @@ -3963,7 +3974,7 @@ msgstr "" #: editor/plugin_config_dialog.cpp msgid "Edit a Plugin" -msgstr "" +msgstr "Pistikprogrammi muutmine" #: editor/plugin_config_dialog.cpp msgid "Create a Plugin" @@ -3971,7 +3982,7 @@ msgstr "" #: editor/plugin_config_dialog.cpp msgid "Plugin Name:" -msgstr "" +msgstr "Pistikprogrammi nimi:" #: editor/plugin_config_dialog.cpp msgid "Subfolder:" @@ -3979,11 +3990,11 @@ msgstr "" #: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" -msgstr "" +msgstr "Keel:" #: editor/plugin_config_dialog.cpp msgid "Script Name:" -msgstr "" +msgstr "Skripti nimi:" #: editor/plugin_config_dialog.cpp msgid "Activate now?" @@ -4223,7 +4234,7 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" -msgstr "" +msgstr "Kustuta sõlm(ed)" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Toggle Filter On/Off" @@ -4249,19 +4260,16 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Anim Clips" -msgstr "Animatsiooni Klipid:" +msgstr "Animatsiooniklipid" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Audio Clips" -msgstr "Heliklipid:" +msgstr "Heliklipid" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Functions" -msgstr "Funktsioonid:" +msgstr "Funktsioonid" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp @@ -4391,7 +4399,7 @@ msgstr "Animatsiooni tööriistad" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation" -msgstr "" +msgstr "Animatsioon" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." @@ -4455,7 +4463,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Include Gizmos (3D)" -msgstr "" +msgstr "Kaasa vidinad (3D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pin AnimationPlayer" @@ -4727,7 +4735,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "View Files" -msgstr "" +msgstr "Kuva failid" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." @@ -4774,9 +4782,8 @@ msgid "Request failed, timeout" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Timeout." -msgstr "Aeg:" +msgstr "Aeg maha." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." @@ -4888,7 +4895,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Plugins..." -msgstr "" +msgstr "Pistikprogrammid..." #: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" @@ -4947,7 +4954,7 @@ msgstr "" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp msgid "Preview" -msgstr "" +msgstr "Eelvaade" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" @@ -4990,9 +4997,8 @@ msgid "Create Vertical Guide" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Remove Vertical Guide" -msgstr "Eemalda kehtetud võtmed" +msgstr "Eemalda vertikaalne juht" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Horizontal Guide" @@ -5003,9 +5009,8 @@ msgid "Create Horizontal Guide" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Remove Horizontal Guide" -msgstr "Eemalda kehtetud võtmed" +msgstr "Eemalda horisontaalne juht" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Horizontal and Vertical Guides" @@ -5364,7 +5369,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "" +msgstr "Kuva" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Always Show Grid" @@ -5388,7 +5393,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Viewport" -msgstr "" +msgstr "Kuva vaateaken" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" @@ -6407,7 +6412,7 @@ msgstr "" #: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Type:" -msgstr "" +msgstr "Tüüp:" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp @@ -6545,21 +6550,21 @@ msgstr "" #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Move Up" -msgstr "" +msgstr "Liiguta üles" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Move Down" -msgstr "" +msgstr "Liiguta allapoole" #: editor/plugins/script_editor_plugin.cpp msgid "Next script" -msgstr "" +msgstr "Järgmine skript" #: editor/plugins/script_editor_plugin.cpp msgid "Previous script" -msgstr "" +msgstr "Eelmine skript" #: editor/plugins/script_editor_plugin.cpp msgid "File" @@ -6632,12 +6637,12 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Break" -msgstr "" +msgstr "Paus" #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp #: editor/script_editor_debugger.cpp msgid "Continue" -msgstr "" +msgstr "Jätka" #: editor/plugins/script_editor_plugin.cpp msgid "Keep Debugger Open" @@ -6822,9 +6827,8 @@ msgid "Complete Symbol" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Evaluate Selection" -msgstr "Kustuta Valim" +msgstr "Hinda valikut" #: editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" @@ -7111,7 +7115,7 @@ msgstr "Kuva keskkond" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Gizmos" -msgstr "" +msgstr "Kuva vidinad" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Information" @@ -7278,44 +7282,44 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "1 Viewport" -msgstr "" +msgstr "1 vaateaken" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports" -msgstr "" +msgstr "2 vaateakent" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports (Alt)" -msgstr "" +msgstr "2 vaateakent (alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports" -msgstr "" +msgstr "3 vaateakent" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports (Alt)" -msgstr "" +msgstr "3 vaateakent (alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "4 Viewports" -msgstr "" +msgstr "4 vaateakent" #: editor/plugins/spatial_editor_plugin.cpp msgid "Gizmos" -msgstr "" +msgstr "Vidinad" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Origin" -msgstr "" +msgstr "Kuva lähtekoht" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Grid" -msgstr "" +msgstr "Kuva ruudustik" #: editor/plugins/spatial_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Settings..." -msgstr "" +msgstr "Sätted..." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" @@ -7335,7 +7339,7 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" -msgstr "" +msgstr "Vaateakna sätted" #: editor/plugins/spatial_editor_plugin.cpp msgid "Perspective FOV (deg.):" @@ -7491,7 +7495,7 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Unable to load images" -msgstr "" +msgstr "Pilte ei saa laadida" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "ERROR: Couldn't load frame resource!" @@ -7764,7 +7768,7 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" -msgstr "" +msgstr "Andmetüüp:" #: editor/plugins/theme_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp @@ -7892,7 +7896,7 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from Scene" -msgstr "" +msgstr "Liida stseenist" #: editor/plugins/tile_set_editor_plugin.cpp msgid "New Single Tile" @@ -8235,9 +8239,8 @@ msgid "Renamed" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Deleted" -msgstr "Kustuta Võti (Võtmed)" +msgstr "Kustutatud" #: editor/plugins/version_control_editor_plugin.cpp msgid "Typechange" @@ -8264,7 +8267,7 @@ msgstr "" #: editor/plugins/version_control_editor_plugin.cpp #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Status" -msgstr "" +msgstr "Olek" #: editor/plugins/version_control_editor_plugin.cpp msgid "View file diffs before committing them to the latest version" @@ -9136,7 +9139,7 @@ msgstr "" #: editor/project_export.cpp editor/project_settings_editor.cpp msgid "Add..." -msgstr "" +msgstr "Lisa..." #: editor/project_export.cpp msgid "" @@ -9210,7 +9213,7 @@ msgstr "" #: editor/project_export.cpp msgid "Script" -msgstr "" +msgstr "Skript" #: editor/project_export.cpp msgid "Script Export Mode:" @@ -9824,15 +9827,15 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Localization" -msgstr "" +msgstr "Tõlked" #: editor/project_settings_editor.cpp msgid "Translations" -msgstr "" +msgstr "Tõlked" #: editor/project_settings_editor.cpp msgid "Translations:" -msgstr "" +msgstr "Tõlked:" #: editor/project_settings_editor.cpp msgid "Remaps" @@ -9876,7 +9879,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Plugins" -msgstr "" +msgstr "Pistikprogrammid" #: editor/property_editor.cpp msgid "Preset..." @@ -9952,7 +9955,7 @@ msgstr "" #: editor/rename_dialog.cpp msgid "Advanced Options" -msgstr "" +msgstr "Täpsemad sätted" #: editor/rename_dialog.cpp msgid "Substitute" @@ -10155,12 +10158,11 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Kustuta Võti (Võtmed)" +msgstr "Kustuta %d sõlmed ja iga alamsõlm?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Kustuta Võti (Võtmed)" +msgstr "Kustuta %d sõlmed?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10171,9 +10173,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Kustuta Võti (Võtmed)" +msgstr "Kustuta sõlm \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10237,7 +10238,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Attach Script" -msgstr "" +msgstr "Manusta skript" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -10263,7 +10264,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Sub-Resources" -msgstr "" +msgstr "Alamressursid" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" @@ -10279,7 +10280,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Open Documentation" -msgstr "" +msgstr "Ava dokumentatsioon" #: editor/scene_tree_dock.cpp msgid "" @@ -10294,11 +10295,11 @@ msgstr "Lisa alamsõlm" #: editor/scene_tree_dock.cpp msgid "Expand/Collapse All" -msgstr "" +msgstr "Laienda/ahenda kõik" #: editor/scene_tree_dock.cpp msgid "Change Type" -msgstr "" +msgstr "Muuda tüüpi" #: editor/scene_tree_dock.cpp msgid "Reparent to New Node" @@ -10306,7 +10307,7 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" -msgstr "" +msgstr "Tee stseeni juurikaks" #: editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -10314,11 +10315,11 @@ msgstr "" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Save Branch as Scene" -msgstr "" +msgstr "Salvesta filiaal stseenina" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" -msgstr "" +msgstr "Kopeeri sõlme tee" #: editor/scene_tree_dock.cpp msgid "Delete (No Confirm)" @@ -10496,7 +10497,7 @@ msgstr "" #: editor/script_create_dialog.cpp msgid "Open Script" -msgstr "" +msgstr "Ava skript" #: editor/script_create_dialog.cpp msgid "File exists, it will be reused." @@ -10573,9 +10574,8 @@ msgid "Warning:" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Error:" -msgstr "Peegel" +msgstr "Viga:" #: editor/script_editor_debugger.cpp msgid "C++ Error" @@ -10603,7 +10603,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Errors" -msgstr "" +msgstr "Vead" #: editor/script_editor_debugger.cpp msgid "Child process connected." @@ -10611,11 +10611,11 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Copy Error" -msgstr "" +msgstr "Kopeeri viga" #: editor/script_editor_debugger.cpp msgid "Video RAM" -msgstr "" +msgstr "Videomälu" #: editor/script_editor_debugger.cpp msgid "Skip Breakpoints" @@ -10631,7 +10631,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Stack Frames" -msgstr "" +msgstr "Virnakaadrid" #: editor/script_editor_debugger.cpp msgid "Profiler" @@ -10643,15 +10643,15 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Monitor" -msgstr "" +msgstr "Jälgija" #: editor/script_editor_debugger.cpp msgid "Value" -msgstr "" +msgstr "Väärtus" #: editor/script_editor_debugger.cpp msgid "Monitors" -msgstr "" +msgstr "Jälgijad" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -10659,7 +10659,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "List of Video Memory Usage by Resource:" -msgstr "" +msgstr "Videomälu kasutamise loetelu ressursside kaupa:" #: editor/script_editor_debugger.cpp msgid "Total:" @@ -10671,7 +10671,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Resource Path" -msgstr "" +msgstr "Ressursi tee" #: editor/script_editor_debugger.cpp msgid "Type" @@ -10679,15 +10679,15 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Format" -msgstr "" +msgstr "Formaat" #: editor/script_editor_debugger.cpp msgid "Usage" -msgstr "" +msgstr "Kasutus" #: editor/script_editor_debugger.cpp msgid "Misc" -msgstr "" +msgstr "Muud" #: editor/script_editor_debugger.cpp msgid "Clicked Control:" @@ -10706,8 +10706,9 @@ msgid "Set From Tree" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy msgid "Export measures as CSV" -msgstr "" +msgstr "Ekspordi mõõtmed/meetmed CSV-vormingus" #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" @@ -10851,11 +10852,11 @@ msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" -msgstr "" +msgstr "Teek" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Libraries: " -msgstr "" +msgstr "Teegid: " #: modules/gdnative/register_types.cpp msgid "GDNative" @@ -10998,9 +10999,8 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Paste Selects" -msgstr "Kustuta Valitud Võti (Võtmed)" +msgstr "Kleebi valikud" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" @@ -11347,9 +11347,8 @@ msgid "Try to only have one sequence input in selection." msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create Function" -msgstr "Loo" +msgstr "Loo funktsioon" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" @@ -11388,14 +11387,12 @@ msgid "Add Nodes..." msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Function..." -msgstr "Funktsioonid:" +msgstr "Lisa funktsioon..." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "function_name" -msgstr "Funktsioonid:" +msgstr "funktsiooni_nimi" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -11418,9 +11415,8 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Function" -msgstr "Funktsioonid:" +msgstr "Loo funktsioon" #: modules/visual_script/visual_script_editor.cpp msgid "Refresh Graph" diff --git a/editor/translations/eu.po b/editor/translations/eu.po index 906a258f32..f2f5f51348 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -1111,6 +1111,16 @@ msgid "Gold Sponsors" msgstr "Urrezko babesleak" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Zilarrezko emaileak" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Brontzezko emaileak" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini babesleak" diff --git a/editor/translations/extract.py b/editor/translations/extract.py index 749bad5fff..02ed65131f 100755 --- a/editor/translations/extract.py +++ b/editor/translations/extract.py @@ -33,6 +33,7 @@ matches.sort() unique_str = [] unique_loc = {} +ctx_group = {} # Store msgctx, msg, and locations. main_po = """ # LANGUAGE translation of the Godot Engine editor. # Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. @@ -52,6 +53,34 @@ msgstr "" """ +def _write_message(msgctx, msg, msg_plural, location): + global main_po + main_po += "\n#: " + location + "\n" + if msgctx != "": + main_po += 'msgctxt "' + msgctx + '"\n' + main_po += 'msgid "' + msg + '"\n' + if msg_plural != "": + main_po += 'msgid_plural "' + msg_plural + '"\n' + main_po += 'msgstr[0] ""\n' + main_po += 'msgstr[1] ""\n' + else: + main_po += 'msgstr ""\n' + + +def _add_additional_location(msgctx, msg, location): + global main_po + # Add additional location to previous occurrence + msg_pos = -1 + if msgctx != "": + msg_pos = main_po.find('\nmsgctxt "' + msgctx + '"\nmsgid "' + msg + '"') + else: + msg_pos = main_po.find('\nmsgid "' + msg + '"') + + if msg_pos == -1: + print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.") + main_po = main_po[:msg_pos] + " " + location + main_po[msg_pos:] + + def process_file(f, fname): global main_po, unique_str, unique_loc @@ -60,10 +89,11 @@ def process_file(f, fname): lc = 1 while l: - patterns = ['RTR("', 'TTR("', 'TTRC("'] + patterns = ['RTR("', 'TTR("', 'TTRC("', 'TTRN("', 'RTRN("'] idx = 0 pos = 0 while pos >= 0: + # Loop until a pattern is found. If not, next line. pos = l.find(patterns[idx], pos) if pos == -1: if idx < len(patterns) - 1: @@ -72,29 +102,64 @@ def process_file(f, fname): continue pos += len(patterns[idx]) + # Read msg until " msg = "" while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"): msg += l[pos] pos += 1 + # Read plural. + msg_plural = "" + if patterns[idx] in ['TTRN("', 'RTRN("']: + pos = l.find('"', pos + 1) + pos += 1 + while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"): + msg_plural += l[pos] + pos += 1 + + # Read context. + msgctx = "" + pos += 1 + read_ctx = False + while pos < len(l): + if l[pos] == ")": + break + elif l[pos] == '"': + read_ctx = True + break + pos += 1 + + pos += 1 + if read_ctx: + while pos < len(l) and (l[pos] != '"' or l[pos - 1] == "\\"): + msgctx += l[pos] + pos += 1 + + # File location. location = os.path.relpath(fname).replace("\\", "/") if line_nb: location += ":" + str(lc) - if not msg in unique_str: - main_po += "\n#: " + location + "\n" - main_po += 'msgid "' + msg + '"\n' - main_po += 'msgstr ""\n' - unique_str.append(msg) - unique_loc[msg] = [location] - elif not location in unique_loc[msg]: - # Add additional location to previous occurrence too - msg_pos = main_po.find('\nmsgid "' + msg + '"') - if msg_pos == -1: - print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.") - main_po = main_po[:msg_pos] + " " + location + main_po[msg_pos:] - unique_loc[msg].append(location) - + if msgctx != "": + # If it's a new context or a new message within an existing context, then write new msgid. + # Else add location to existing msgid. + if not msgctx in ctx_group: + _write_message(msgctx, msg, msg_plural, location) + ctx_group[msgctx] = {msg: [location]} + elif not msg in ctx_group[msgctx]: + _write_message(msgctx, msg, msg_plural, location) + ctx_group[msgctx][msg] = [location] + elif not location in ctx_group[msgctx][msg]: + _add_additional_location(msgctx, msg, location) + ctx_group[msgctx][msg].append(location) + else: + if not msg in unique_str: + _write_message(msgctx, msg, msg_plural, location) + unique_str.append(msg) + unique_loc[msg] = [location] + elif not location in unique_loc[msg]: + _add_additional_location(msgctx, msg, location) + unique_loc[msg].append(location) l = f.readline() lc += 1 @@ -102,7 +167,7 @@ def process_file(f, fname): print("Updating the editor.pot template...") for fname in matches: - with open(fname, "r") as f: + with open(fname, "r", encoding="utf8") as f: process_file(f, fname) with open("editor.pot", "w") as f: diff --git a/editor/translations/fa.po b/editor/translations/fa.po index dc7ae9ec69..0b87c12532 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -1141,6 +1141,16 @@ msgid "Gold Sponsors" msgstr "حامیان طلایی (درجه ۲)" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "اهداکنندگان نقرهای" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "اهداکنندگان برنزی" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "اسپانسرهای کوچک" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 67deaf06b3..62c2e7a951 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-06-26 06:11+0000\n" +"PO-Revision-Date: 2020-08-05 16:58+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -1138,6 +1138,16 @@ msgid "Gold Sponsors" msgstr "Kultasponsorit" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Hopealahjoittajat" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Pronssilahjoittajat" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Minisponsorit" @@ -1710,7 +1720,7 @@ msgstr "Uusi" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "Tuo" +msgstr "Tuonti" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" @@ -8147,7 +8157,7 @@ msgstr "Peitto" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Navigation" -msgstr "Siirtyminen" +msgstr "Navigointi" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Bitmask" @@ -10525,9 +10535,8 @@ msgid "Make node as Root" msgstr "Tee solmusta juurisolmu" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Poista solmu \"%s\" ja sen alisolmut?" +msgstr "Poista %d solmua ja kaikki alisolmut?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12228,6 +12237,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Polygonipohjaisia muotoja ei ole tarkoitus käyttää tai muokata suoraan " +"CollisionShape2D solmun kautta. Ole hyvä ja käytä sen sijaan " +"CollisionPolygon2D solmua." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 490d9d92ec..faf4436839 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -5,11 +5,12 @@ # Marco Santos <enum.scima@gmail.com>, 2019. # Amado Wilkins <epicalert68@gmail.com>, 2019. # Bakainkorp <Ryan.Bautista86@myhunter.cuny.edu>, 2019. +# Jethro Parker <lionbearjet@hotmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2019-12-21 08:37+0000\n" -"Last-Translator: Bakainkorp <Ryan.Bautista86@myhunter.cuny.edu>\n" +"PO-Revision-Date: 2020-08-14 03:56+0000\n" +"Last-Translator: Jethro Parker <lionbearjet@hotmail.com>\n" "Language-Team: Filipino <https://hosted.weblate.org/projects/godot-engine/" "godot/fil/>\n" "Language: fil\n" @@ -17,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " "|| n % 10 == 6 || n % 10 == 9);\n" -"X-Generator: Weblate 3.10\n" +"X-Generator: Weblate 4.2-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -28,7 +29,7 @@ msgstr "" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Nanghihingi ng string na may habang 1 (character)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -185,12 +186,12 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Change Animation Length" -msgstr "" +msgstr "Ibahin ang haba ng Animation" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "Ibahin ang ulit ng Animation" #: editor/animation_track_editor.cpp msgid "Property Track" @@ -218,44 +219,44 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Animation length (frames)" -msgstr "" +msgstr "Haba ng animation (frames)" #: editor/animation_track_editor.cpp msgid "Animation length (seconds)" -msgstr "" +msgstr "Haba ng animation (segundo)" #: editor/animation_track_editor.cpp msgid "Add Track" -msgstr "" +msgstr "Magdagdag ng Track" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "" +msgstr "Pagulit ng Animation" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "" +msgstr "Functions:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "" +msgstr "Mga clip ng tunog:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "Mga clip ng Anim:" #: editor/animation_track_editor.cpp msgid "Change Track Path" -msgstr "" +msgstr "Ibahin ang landas ng Track" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." -msgstr "" +msgstr "Ilipat sa on/off ang track na ito." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "" +msgstr "Baguhin ang Mode (Kung paano na-set ang property)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" @@ -1114,6 +1115,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" @@ -1893,7 +1902,7 @@ msgstr "" #: editor/editor_help.cpp msgid "Description" -msgstr "" +msgstr "Paglalarawan" #: editor/editor_help.cpp msgid "Online Tutorials" @@ -2816,11 +2825,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" -msgstr "" +msgstr "Komunidad" #: editor/editor_node.cpp msgid "About" -msgstr "" +msgstr "Tungkol" #: editor/editor_node.cpp msgid "Play the project." diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 95e9d7a55c..8c1d67af83 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -79,8 +79,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-26 15:41+0000\n" -"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n" +"PO-Revision-Date: 2020-08-01 11:14+0000\n" +"Last-Translator: Pierre Caye <pierrecaye@laposte.net>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -1217,6 +1217,16 @@ msgid "Gold Sponsors" msgstr "Sponsors Or" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Donateurs Argent" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Donateurs Bronze" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsors" @@ -1787,7 +1797,7 @@ msgstr "Nouveau" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "Importer" +msgstr "Importation" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index a496566c2e..da64cfe007 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -1107,6 +1107,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/he.po b/editor/translations/he.po index c3789f9804..48bb2ad5c0 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -14,12 +14,14 @@ # test test <ugbdvwpeikvyzwaadt@awdrt.org>, 2020. # Anonymous <noreply@weblate.org>, 2020. # Daniel Kariv <danielkariv98@gmail.com>, 2020. +# Ziv D <wizdavid@gmail.com>, 2020. +# yariv benj <yariv4400@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-05-07 21:28+0000\n" -"Last-Translator: Anonymous <noreply@weblate.org>\n" +"PO-Revision-Date: 2020-09-04 06:51+0000\n" +"Last-Translator: Ziv D <wizdavid@gmail.com>\n" "Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/" "godot/he/>\n" "Language: he\n" @@ -28,16 +30,16 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "משתנה סוג לא חוקי לפונקציית convert(), יש להשתמש בקבועי TYPE_*." +msgstr "סוג משתנה לא חוקי לפונקציית convert(), יש להשתמש בקבועי TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "צפויה מחרוזת באורך 1 (תו)." +msgstr "היתה צפויה מחרוזת באורך 1 (תו)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -51,7 +53,7 @@ msgstr "קלט שגוי %I (לא הועבר) בתוך הביטוי" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "לא ניתן להשתמש ב־self כיוון שהמופע הוא אפס (null - לא הועבר)" +msgstr "'self' לא ניתן לשימוש כי המופע הינו 'null' ( לא הועבר)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -63,7 +65,7 @@ msgstr "שם מאפיין האינדקס מסוג %s עבור בסיס %s שגו #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "שם אינדקס לא תקין '%s' לסוג בסיס '%s'" +msgstr "שם אינדקס לא תקין '%s' לסוג בסיס %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" @@ -75,7 +77,7 @@ msgstr "בקריאה ל־‚%s’:" #: core/ustring.cpp msgid "B" -msgstr "ב׳" +msgstr "B" #: core/ustring.cpp msgid "KiB" @@ -123,15 +125,15 @@ msgstr "ערך:" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" -msgstr "הכנס מפתח כאן" +msgstr "הכנס כאן מפתח" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" -msgstr "לשכפל את הקבצים הנבחרים" +msgstr "שכפול מפתח(ות) שנבחרו" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" -msgstr "למחוק את הקבצים הנבחרים" +msgstr "מחיקת מפתח(ות) שנבחרו" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" @@ -258,7 +260,7 @@ msgstr "החלפת נתיב רצועה" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." -msgstr "הפעל/כבה רצועה" +msgstr "הפעל/כבה רצועה." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" @@ -266,7 +268,7 @@ msgstr "עדכן מצב (איך המאפיין הזה נקבע)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" -msgstr "מצב אינתרפולציה" +msgstr "מצב אינטרפולציה" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" @@ -335,14 +337,12 @@ msgid "Delete Key(s)" msgstr "מחיקת מפתח(ות)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" msgstr "שינוי מצב עדכון הנפשה" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Interpolation Mode" -msgstr "החלפת ערך מילון" +msgstr "שינוי מצב אינטרפולציה בהנפשה" #: editor/animation_track_editor.cpp msgid "Change Animation Loop Mode" @@ -373,7 +373,6 @@ msgid "Create" msgstr "יצירה" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Insert" msgstr "הוסף הנפשה" @@ -400,9 +399,8 @@ msgid "Change Animation Step" msgstr "ניקוי ההנפשה" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rearrange Tracks" -msgstr "סידור רצועות" +msgstr "סדר רצועות מחדש" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." @@ -478,9 +476,8 @@ msgid "Anim Move Keys" msgstr "" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Clipboard is empty" -msgstr "לוח גזירי המשאבים ריק!" +msgstr "לוח העתקה ריק" #: editor/animation_track_editor.cpp #, fuzzy @@ -541,7 +538,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "FPS" -msgstr "" +msgstr "FPS" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -554,9 +551,8 @@ msgid "Edit" msgstr "עריכה" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation properties." -msgstr "שקופיות ההנפשה" +msgstr "מאפייני ההנפשה." #: editor/animation_track_editor.cpp #, fuzzy @@ -666,7 +662,7 @@ msgstr "הגדרת מעברונים אל:" #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" -msgstr "העתקה" +msgstr "העתק" #: editor/animation_track_editor.cpp #, fuzzy @@ -704,7 +700,7 @@ msgstr "מעבר לשורה" #: editor/code_editor.cpp msgid "Line Number:" -msgstr "מספר השורה:" +msgstr "שורה מספר:" #: editor/code_editor.cpp msgid "%d replaced." @@ -712,12 +708,11 @@ msgstr "%d הוחלף." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." -msgstr "d% התאמות." +msgstr "%d התאמה." #: editor/code_editor.cpp editor/editor_help.cpp -#, fuzzy msgid "%d matches." -msgstr "אין תוצאות" +msgstr "%d התאמות." #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Match Case" @@ -729,7 +724,7 @@ msgstr "מילים שלמות" #: editor/code_editor.cpp editor/rename_dialog.cpp msgid "Replace" -msgstr "להחליף" +msgstr "החלף" #: editor/code_editor.cpp msgid "Replace All" @@ -831,9 +826,8 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -#, fuzzy msgid "Receiver Method:" -msgstr "מאפייני פריט." +msgstr "שיטת המקלט:" #: editor/connections_dialog.cpp msgid "Advanced" @@ -933,14 +927,12 @@ msgid "Disconnect All" msgstr "ניתוק" #: editor/connections_dialog.cpp -#, fuzzy msgid "Edit..." -msgstr "עריכה" +msgstr "עריכה..." #: editor/connections_dialog.cpp -#, fuzzy msgid "Go To Method" -msgstr "שיטות" +msgstr "מעבר למתודה" #: editor/create_dialog.cpp msgid "Change %s Type" @@ -1131,7 +1123,7 @@ msgstr "תודה רבה מקהילת Godot!" #: editor/editor_about.cpp msgid "Godot Engine contributors" -msgstr "מתנדבי מנוע Godot" +msgstr "מתנדבי מנוע גודו" #: editor/editor_about.cpp msgid "Project Founders" @@ -1162,6 +1154,16 @@ msgid "Gold Sponsors" msgstr "מממני זהב" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "תורמים בדרגת כסף" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "תורמים בדרגת ארד" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "מממנים זעירים" @@ -1216,9 +1218,8 @@ msgid "Error opening package file, not in ZIP format." msgstr "פתיחת קובץ החבילה נכשלה, המבנה אינו zip." #: editor/editor_asset_installer.cpp -#, fuzzy msgid "%s (Already Exists)" -msgstr "הפעולה ‚%s’ כבר קיימת!" +msgstr "%s (כבר קיים)" #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" @@ -1395,9 +1396,8 @@ msgid "Add Bus" msgstr "הוספת אפיק" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add a new Audio Bus to this layout." -msgstr "שמירת פריסת אפיקי השמע בתור…" +msgstr "הוסף אפיק שמע חדש לפריסה זו." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp @@ -1603,9 +1603,8 @@ msgstr "" #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Custom debug template not found." -msgstr "קובץ התבנית לא נמצא:" +msgstr "תבנית ניפוי שגיאות מותאמת אישית לא נמצאה." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1718,9 +1717,8 @@ msgid "" msgstr "" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Error saving profile to path: '%s'." -msgstr "שגיאה בשמירה" +msgstr "שגיאה בשמירת פרופיל לנתיב 's%'." #: editor/editor_feature_profile.cpp msgid "Unset" @@ -1808,13 +1806,11 @@ msgid "Copy Path" msgstr "העתקת נתיב" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "הצגה במנהל הקבצים" +msgstr "פתיחה במנהל הקבצים" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" msgstr "הצגה במנהל הקבצים" @@ -1864,79 +1860,71 @@ msgstr "שמירת קובץ" #: editor/editor_file_dialog.cpp msgid "Go Back" -msgstr "חזרה אחורה" +msgstr "מעבר אחורה" #: editor/editor_file_dialog.cpp msgid "Go Forward" -msgstr "התקדמות קדימה" +msgstr "מעבר קדימה" #: editor/editor_file_dialog.cpp msgid "Go Up" -msgstr "עלייה למעלה" +msgstr "מעבר מעלה" #: editor/editor_file_dialog.cpp msgid "Toggle Hidden Files" -msgstr "החלפת מצב תצוגה לקבצים מוסתרים" +msgstr "הצג/הסתר קבצים מוסתרים" #: editor/editor_file_dialog.cpp msgid "Toggle Favorite" -msgstr "החלפת מצב מועדפים" +msgstr "הוספת/ביטול מועדף" #: editor/editor_file_dialog.cpp msgid "Toggle Mode" -msgstr "החלפת מצב" +msgstr "שינוי מצב" #: editor/editor_file_dialog.cpp msgid "Focus Path" -msgstr "התמקדות על נתיב" +msgstr "מיקוד נתיב" #: editor/editor_file_dialog.cpp msgid "Move Favorite Up" -msgstr "העברת מועדף למעלה" +msgstr "העברת מועדף מעלה" #: editor/editor_file_dialog.cpp msgid "Move Favorite Down" -msgstr "העברת מועדף למטה" +msgstr "העברת מועדף מטה" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to previous folder." -msgstr "מעבר לתיקייה שמעל" +msgstr "מעבר לתיקיה הקודמת." #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to next folder." -msgstr "מעבר לתיקייה שמעל" +msgstr "מעבר לתיקיה הבאה." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Go to parent folder." -msgstr "מעבר לתיקייה שמעל" +msgstr "מעבר לתיקיית העל." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Refresh files." -msgstr "חיפוש במחלקות" +msgstr "רענן קבצים." #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "לא ניתן ליצור תיקייה." +msgstr "(בטל) העדפת תיקייה נוכחית." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Toggle the visibility of hidden files." -msgstr "החלפת מצב תצוגה לקבצים מוסתרים" +msgstr "הצג/הסתר קבצים מוסתרים." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "View items as a grid of thumbnails." -msgstr "צפייה בפריטים כרשת של תמונות ממוזערות" +msgstr "הצג פריטים כרשת של תמונות ממוזערות." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "View items as a list." -msgstr "הצגת פריטים כרשימה" +msgstr "הצג פריטים כרשימה." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1964,11 +1952,11 @@ msgstr "סריקת מקורות" msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" -msgstr "" +msgstr "יש מספר מייבאים לסוגים שונים המצביעים לקובץ %s, הייבוא בוטל" #: editor/editor_file_system.cpp msgid "(Re)Importing Assets" -msgstr "" +msgstr "ייבוא משאבים (מחדש)" #: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Top" @@ -1988,14 +1976,12 @@ msgid "Inherited by:" msgstr "מוריש אל:" #: editor/editor_help.cpp -#, fuzzy msgid "Description" -msgstr "תיאור:" +msgstr "תיאור" #: editor/editor_help.cpp -#, fuzzy msgid "Online Tutorials" -msgstr "מסמכים מקוונים" +msgstr "הדרכות מקוונות" #: editor/editor_help.cpp msgid "Properties" @@ -2003,21 +1989,19 @@ msgstr "מאפיינים" #: editor/editor_help.cpp msgid "override:" -msgstr "" +msgstr "דריסה:" #: editor/editor_help.cpp -#, fuzzy msgid "default:" -msgstr "טעינת בררת המחדל" +msgstr "ברירת מחדל:" #: editor/editor_help.cpp msgid "Methods" -msgstr "שיטות" +msgstr "מתודות" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "מאפיינים" +msgstr "מאפייני ערכת עיצוב" #: editor/editor_help.cpp msgid "Enumerations" @@ -2028,31 +2012,32 @@ msgid "Constants" msgstr "קבועים" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "תיאור המאפיין:" +msgstr "תיאורי מאפיינים" #: editor/editor_help.cpp -#, fuzzy msgid "(value)" -msgstr "ערך:" +msgstr "(ערך)" #: editor/editor_help.cpp msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"כרגע אין תיאור למאפיין זה. בבקשה עזור לנו על-ידי [/color][/url]כתיבת " +"תיאור[url=$url][color=$color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "תיאור השיטה:" +msgstr "תיאורי מתודות" #: editor/editor_help.cpp msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"כרגע אין תיאור למתודה זו. בבקשה עזור לנו על-ידי [/url][/color]כתיבת תיאור " +"[color=$color][url=$url]!" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp @@ -2064,99 +2049,84 @@ msgid "Case Sensitive" msgstr "תלוי רישיות" #: editor/editor_help_search.cpp -#, fuzzy msgid "Show Hierarchy" -msgstr "חיפוש" +msgstr "הצג היררכיה" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "הצגה נורמלית" +msgstr "הצג הכל" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "מחלקות" +msgstr "מחלקות בלבד" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "שיטות" +msgstr "מתודות בלבד" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "אותות" +msgstr "אותות בלבד" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "קבועים" +msgstr "קבועים בלבד" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "מאפיינים" +msgstr "מאפיינים בלבד" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "מאפיינים" +msgstr "מאפייני ערכת עיצוב בלבד" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "חברים" +msgstr "סוג שדה" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "מחלקה:" +msgstr "מחלקה" #: editor/editor_help_search.cpp -#, fuzzy msgid "Method" -msgstr "שיטות" +msgstr "מתודה" #: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Signal" -msgstr "אותות" +msgstr "אות" #: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp msgid "Constant" msgstr "קבוע" #: editor/editor_help_search.cpp -#, fuzzy msgid "Property" -msgstr "מאפיינים" +msgstr "מאפיין" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Property" -msgstr "מאפיינים" +msgstr "מאפיין ערכת עיצוב" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" -msgstr "" +msgstr "מאפיין:" #: editor/editor_inspector.cpp msgid "Set" -msgstr "" +msgstr "קבע" #: editor/editor_inspector.cpp msgid "Set Multiple:" -msgstr "" +msgstr "קביעה מרובה:" #: editor/editor_log.cpp msgid "Output:" msgstr "פלט:" #: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "הסרת הבחירה" +msgstr "העתקת בחירה" #: editor/editor_log.cpp editor/editor_network_profiler.cpp #: editor/editor_profiler.cpp editor/editor_properties.cpp @@ -2166,11 +2136,11 @@ msgstr "הסרת הבחירה" #: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Clear" -msgstr "מחיקה" +msgstr "ניקוי" #: editor/editor_log.cpp msgid "Clear Output" -msgstr "מחיקת הפלט" +msgstr "ניקוי פלט" #: editor/editor_network_profiler.cpp editor/editor_node.cpp #: editor/editor_profiler.cpp @@ -2180,20 +2150,19 @@ msgstr "עצירה" #: editor/editor_network_profiler.cpp editor/editor_profiler.cpp #: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp msgid "Start" -msgstr "" +msgstr "התחלה" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s לשנייה" #: editor/editor_network_profiler.cpp -#, fuzzy msgid "Down" msgstr "הורדה" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "העלאה" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" @@ -2201,32 +2170,32 @@ msgstr "מפרק" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC נכנס" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET נכנס" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC יוצא" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET יוצא" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" -msgstr "" +msgstr "חלון חדש" #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "משאבים מיובאים לא נשמרו." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp msgid "OK" -msgstr "" +msgstr "אישור" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" @@ -2237,6 +2206,7 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"המשאב לא יכול להישמר מפני שאינו שייך לסצנה שנערכה, הפוך אותו קודם לייחודי." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -2248,7 +2218,7 @@ msgstr "לא ניתן לפתוח קובץ לכתיבה:" #: editor/editor_node.cpp msgid "Requested file format unknown:" -msgstr "תבנית הקובץ המבוקשת לא ידועה:" +msgstr "סוג הקובץ המבוקש לא ידוע:" #: editor/editor_node.cpp msgid "Error while saving." @@ -2256,27 +2226,27 @@ msgstr "שגיאה בעת השמירה." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." -msgstr "" +msgstr "לא יכול לפתוח את 's%'. יכול להיות שהקובץ הועבר או נמחק." #: editor/editor_node.cpp msgid "Error while parsing '%s'." -msgstr "הפענוח של ‚%s’ נכשל." +msgstr "שגיאה בפענוח 's%'." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "סוף הקובץ בלתי צפוי ‚%s’." +msgstr "סוף קובץ בלתי צפוי '%s'." #: editor/editor_node.cpp msgid "Missing '%s' or its dependencies." -msgstr "" +msgstr "חסר 's%' או תלות שלו." #: editor/editor_node.cpp msgid "Error while loading '%s'." -msgstr "הטעינה של ‚%s’ נכשלה." +msgstr "שגיאה בטעינת 's%'." #: editor/editor_node.cpp msgid "Saving Scene" -msgstr "הסצנה נשמרת" +msgstr "שומר סצנה" #: editor/editor_node.cpp msgid "Analyzing" @@ -2284,7 +2254,7 @@ msgstr "מתבצע ניתוח" #: editor/editor_node.cpp msgid "Creating Thumbnail" -msgstr "נוצרת תמונה ממוזערת" +msgstr "יצירת תמונה ממוזערת" #: editor/editor_node.cpp msgid "This operation can't be done without a tree root." @@ -2295,34 +2265,34 @@ msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"סצנה זו לא יכולה להישמר מפני שיש הכללת מופע מעגלית.\n" +"בבקשה פתור זאת ואז נסה לשמור שוב." #: editor/editor_node.cpp msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." -msgstr "" -"לא ניתן לשמור את הסצנה. כפי הנראה עקב תלויות (מופעים או ירושות) שאינן " -"מסופקות." +msgstr "לא ניתן לשמור את הסצנה. כנראה עקב תלות (מופע או ירושה) שלא מסופקת." #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "לא ניתן להחליף סצנה שעדיין פתוחה!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" -msgstr "" +msgstr "לא ניתן לטעון את MeshLibrary למיזוג!" #: editor/editor_node.cpp msgid "Error saving MeshLibrary!" -msgstr "" +msgstr "שגיאה בשמירת MeshLibrary!" #: editor/editor_node.cpp msgid "Can't load TileSet for merging!" -msgstr "" +msgstr "לא ניתן לטעון TileSet למיזוג!" #: editor/editor_node.cpp msgid "Error saving TileSet!" -msgstr "" +msgstr "שגיאה בשמירת TileSet!" #: editor/editor_node.cpp msgid "Error trying to save layout!" @@ -2330,7 +2300,7 @@ msgstr "שמירת הפריסה נכשלה!" #: editor/editor_node.cpp msgid "Default editor layout overridden." -msgstr "בררת המחדל של פריסת העורך שוכתבה." +msgstr "ברירת המחדל של עורך הפריסה נדרסה." #: editor/editor_node.cpp msgid "Layout name not found!" @@ -2338,7 +2308,7 @@ msgstr "שם הפריסה לא נמצא!" #: editor/editor_node.cpp msgid "Restored default layout to base settings." -msgstr "פריסת בררת המחדל שוחזרה להגדרות הבסיס." +msgstr "פריסת ברירת המחדל שוחזרה להגדרות הבסיס." #: editor/editor_node.cpp msgid "" @@ -2346,20 +2316,24 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"משאב זה שייך לסצנה שיובאה ולא ניתן לעריכה.\n" +"בבקשה קרא/י את התיעוד הקשור לייבוא סצנות כדי להבין טוב יותר את שיטת עבודה." #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it won't be kept when saving the current scene." msgstr "" +"משאב זה שייך לסצנה שנוצר לה מופע או שעברה ירושה.\n" +"שינויים במשאב לא יישמרו בשמירת הסצינה הנוכחית." #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" -"משאב זה עבר יבוא, לכן אין אפשרות לערוך אותו. יש לשנות את ההגדרות שלו בחלונית " -"הייבוא ואז לייבא שוב." +"משאב זה מיובא ואין אפשרות לערוך אותו. יש לשנות את הגדרותיו בחלון הייבוא " +"ולייבא מחדש." #: editor/editor_node.cpp msgid "" @@ -2368,6 +2342,9 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"סצנה זו מיובאת, כל שינוי בה לא יישמר.\n" +"יצירת מופע או ירושה תאפשר לעשות בה שינויים.\n" +"בבקשה קרא/י את התיעוד הקשור לייבוא סצנות כדי להבין טוב יותר את שיטת העבודה." #: editor/editor_node.cpp msgid "" @@ -2375,6 +2352,8 @@ msgid "" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" +"זהו אובייקט מרוחק לכן שינויים בו לא יישמרו.\n" +"בבקשה קרא/י את התיועד הקשור לניפוי שגיאות כדי להבין טוב יותר את שיטת העבודה." #: editor/editor_node.cpp msgid "There is no defined scene to run." @@ -2393,9 +2372,8 @@ msgid "Open Base Scene" msgstr "פתיחת סצנת בסיס" #: editor/editor_node.cpp -#, fuzzy msgid "Quick Open..." -msgstr "פתיחת סצנה מהירה…" +msgstr "פתיחה מהירה…" #: editor/editor_node.cpp msgid "Quick Open Scene..." @@ -2411,16 +2389,15 @@ msgstr "שמירה וסגירה" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "לשמור את השינויים ל־‚%s’ לפני הסגירה?" +msgstr "לשמור את השינויים ל־'%s' לפני הסגירה?" #: editor/editor_node.cpp -#, fuzzy msgid "Saved %s modified resource(s)." -msgstr "טעינת המשאב נכשלה." +msgstr "נשמרו %s משאבים שהשתנו." #: editor/editor_node.cpp msgid "A root node is required to save the scene." -msgstr "" +msgstr "מפרק עליון דרוש כדי לשמור את הסצינה." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -2444,7 +2421,7 @@ msgstr "לא ניתן לבצע פעולה זו ללא סצנה." #: editor/editor_node.cpp msgid "Export Mesh Library" -msgstr "" +msgstr "ייצוא Mesh Library" #: editor/editor_node.cpp msgid "This operation can't be done without a root node." @@ -2452,7 +2429,7 @@ msgstr "לא ניתן לבצע פעולה זו ללא מפרק עליון." #: editor/editor_node.cpp msgid "Export Tile Set" -msgstr "" +msgstr "ייצוא Tile Set" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." @@ -2467,19 +2444,20 @@ msgid "Can't reload a scene that was never saved." msgstr "לא ניתן לרענן סצנה שמעולם לא נשמרה." #: editor/editor_node.cpp -#, fuzzy msgid "Reload Saved Scene" -msgstr "שמירת סצנה" +msgstr "טעינה מחדש של סצינה שמורה" #: editor/editor_node.cpp msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" +"הסצינה הנוכחית כוללת שינויים שלא נשמרו.\n" +"האם לטעון מחדש את הסצינה? לא ניתן לבטל פעולה זו." #: editor/editor_node.cpp msgid "Quick Run Scene..." -msgstr "" +msgstr "הפעלה מהירה של הסצנה..." #: editor/editor_node.cpp msgid "Quit" @@ -2522,56 +2500,61 @@ msgid "Close Scene" msgstr "סגירת סצנה" #: editor/editor_node.cpp -#, fuzzy msgid "Reopen Closed Scene" -msgstr "סגירת סצנה" +msgstr "פתיחה מחדש של סצנה סגורה" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "לא ניתן לפתוח את תוסף ההרחבות תחת: ‚%s’ פענוח ההגדרות נכשל." +msgstr "לא ניתן לפתוח את תוסף ההרחבות בנתיב: '%s' פענוח ההגדרות נכשל." #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." -msgstr "לא ניתן למצוא שדה סקריפט עבור תוסף הרחבה תחת ‚res://addons/%s’." +msgstr "לא ניתן למצוא שדה סקריפט עבור תוסף הרחבה בנתיב 'res://addons/%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." -msgstr "לא ניתן לטעון סקריפט הרחבה מהנתיב: ‚%s’." +msgstr "לא ניתן לטעון סקריפט הרחבה מנתיב: '%s'." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" +"לא ניתן לטעון סקריפט הרחבה מנתיב: '%s' נראה שיש שגיאה בקוד, אנא בדוק את " +"התחביר." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "" +msgstr "לא ניתן לטעון סקריפט הרחבה מנתיב: '%s' סוג הבסיס אינו EditorPlugin." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "" +msgstr "לא ניתן לטעון סקריפט הרחבה מנתיב: '%s' סקריפט אינו מוגדר ככלי (tool)." #: editor/editor_node.cpp msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" +"הסצינה '%s' יובאה באופן אוטומטי ואין אפשרות לשנות אותה.\n" +"כדי לבצע בה שינויים, ניתן ליצור סצינה חדשה בירושה." #: editor/editor_node.cpp msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." msgstr "" +"שגיאה בטעינת הסצנה, היא חייבת להיות בתוך נתיב המיזם. השתמש ב'ייבוא' כדי " +"לפתוח את הסצינה, ואז שמור אותה בנתיב המיזם." #: editor/editor_node.cpp msgid "Scene '%s' has broken dependencies:" -msgstr "" +msgstr "לסצינה '%s' יש תלות חסרה:" #: editor/editor_node.cpp msgid "Clear Recent Scenes" -msgstr "" +msgstr "נקה סצינות אחרונות" #: editor/editor_node.cpp msgid "" @@ -2579,6 +2562,8 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"לא הוגדרה סצנה ראשית, לבחור אחת?\n" +"אפשר לשנות זאת מאוחר יותר ב-\"הגדרות מיזם\" תחת הקטגוריה 'יישום'." #: editor/editor_node.cpp msgid "" @@ -2586,6 +2571,8 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"הסצינה שנבחרה '%s' לא קיימת, לבחור סצנה קיימת?\n" +"אפשר לשנות זאת מאוחר יותר ב\"הגדרות מיזם\" תחת הקטגוריה 'יישום'." #: editor/editor_node.cpp msgid "" @@ -2593,81 +2580,78 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" +"הסצינה שנבחרה '%s' אינה קובץ סצינה, לבחור קובץ סצינה אחר?\n" +"אפשר לשנות זאת מאוחר יותר ב-\"הגדרות מיזם\" תחת הקטגוריה 'יישום'." #: editor/editor_node.cpp msgid "Save Layout" -msgstr "" +msgstr "שמירת פריסה" #: editor/editor_node.cpp msgid "Delete Layout" -msgstr "" +msgstr "מחיקת פריסה" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp msgid "Default" -msgstr "" +msgstr "בחירת מחדל" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" -msgstr "הצגה במערכת הקבצים" +msgstr "הצגה בחלון הקבצים" #: editor/editor_node.cpp -#, fuzzy msgid "Play This Scene" -msgstr "נגינת הסצנה" +msgstr "הרצת הסצנה" #: editor/editor_node.cpp -#, fuzzy msgid "Close Tab" -msgstr "לסגור לשוניות אחרות" +msgstr "סגירת לשונית" #: editor/editor_node.cpp -#, fuzzy msgid "Undo Close Tab" -msgstr "לסגור לשוניות אחרות" +msgstr "ביטול סגירת לשונית" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Close Other Tabs" -msgstr "לסגור לשוניות אחרות" +msgstr "סגירת לשוניות אחרות" #: editor/editor_node.cpp msgid "Close Tabs to the Right" -msgstr "" +msgstr "סגירת לשוניות מימין" #: editor/editor_node.cpp -#, fuzzy msgid "Close All Tabs" -msgstr "לסגור הכול" +msgstr "סגירת כל הלשוניות" #: editor/editor_node.cpp msgid "Switch Scene Tab" -msgstr "" +msgstr "החלפת לשונית סצנה" #: editor/editor_node.cpp msgid "%d more files or folders" -msgstr "" +msgstr "%d קבצים או תיקיות נוספים" #: editor/editor_node.cpp msgid "%d more folders" -msgstr "" +msgstr "%d תיקיות נוספות" #: editor/editor_node.cpp msgid "%d more files" -msgstr "" +msgstr "%d קבצים נוספים" #: editor/editor_node.cpp msgid "Dock Position" -msgstr "" +msgstr "מיקום הפנל" #: editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "" +msgstr "מצב ללא הסחות דעת" #: editor/editor_node.cpp msgid "Toggle distraction-free mode." -msgstr "" +msgstr "הפעל/בטל מצב ללא הסחות דעת." #: editor/editor_node.cpp msgid "Add a new scene." @@ -2679,12 +2663,11 @@ msgstr "סצנה" #: editor/editor_node.cpp msgid "Go to previously opened scene." -msgstr "מעבר לסצנה שנפתחה קודם לכן." +msgstr "מעבר לסצנה הקודמת." #: editor/editor_node.cpp -#, fuzzy msgid "Copy Text" -msgstr "העתקת נתיב" +msgstr "העתקת טקסט" #: editor/editor_node.cpp msgid "Next tab" @@ -2696,7 +2679,7 @@ msgstr "הלשונית הקודמת" #: editor/editor_node.cpp msgid "Filter Files..." -msgstr "" +msgstr "סנן קבצים..." #: editor/editor_node.cpp msgid "Operations with scene files." @@ -2723,7 +2706,6 @@ msgid "Save Scene" msgstr "שמירת סצנה" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "שמירת כל הסצנות" @@ -2733,11 +2715,11 @@ msgstr "המרה אל…" #: editor/editor_node.cpp msgid "MeshLibrary..." -msgstr "" +msgstr "MeshLibrary..." #: editor/editor_node.cpp msgid "TileSet..." -msgstr "" +msgstr "TileSet..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp @@ -2759,49 +2741,44 @@ msgid "Project" msgstr "מיזם" #: editor/editor_node.cpp -#, fuzzy msgid "Project Settings..." -msgstr "הגדרות מיזם" +msgstr "הגדרות מיזם..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Version Control" -msgstr "גרסה:" +msgstr "בקרת גירסאות" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "" +msgstr "קביעת בקרת גירסאות" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "" +msgstr "סגור בקרת גירסאות" #: editor/editor_node.cpp -#, fuzzy msgid "Export..." -msgstr "ייצוא" +msgstr "ייצוא..." #: editor/editor_node.cpp msgid "Install Android Build Template..." -msgstr "" +msgstr "התקנת תבנית בנייה לאנדרואיד..." #: editor/editor_node.cpp -#, fuzzy msgid "Open Project Data Folder" -msgstr "לפתוח את מנהל המיזמים?" +msgstr "פתיחת תיקיית נתוני המיזם" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "כלים" #: editor/editor_node.cpp -#, fuzzy msgid "Orphan Resource Explorer..." -msgstr "דפדפן משאבים יתומים" +msgstr "סייר משאבים יתומים ..." #: editor/editor_node.cpp msgid "Quit to Project List" -msgstr "יציאה לרשימת המיזמים" +msgstr "יציאה לרשימת מיזמים" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp @@ -2833,16 +2810,22 @@ msgid "" "On Android, deploy will use the USB cable for faster performance. This " "option speeds up testing for games with a large footprint." msgstr "" +"כאשר אפשרות זו מופעלת, ייצוא או פריסה יפיקו קובץ הפעלה מינימלי.\n" +"מערכת הקבצים תסופק מהמיזם על ידי העורך ברשת.\n" +"באנדרואיד, הפריסה תשתמש בכבל USB לביצועים מהירים יותר. אפשרות זו מזרזת בדיקה " +"של משחקים עם קובץ הרצה גדול." #: editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "" +msgstr "צורות התנגשות גלויים" #: editor/editor_node.cpp msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." msgstr "" +"צורות התנגשויות ומפרקי קרניים (עבור דו ותלת מימד) יהיו גלויים בהרצת המשחק אם " +"אפשרות זאת מופעלת." #: editor/editor_node.cpp msgid "Visible Navigation" @@ -2852,7 +2835,7 @@ msgstr "ניווט גלוי" msgid "" "Navigation meshes and polygons will be visible on the running game if this " "option is turned on." -msgstr "" +msgstr "רשתות ניווט ומצולעים יהיו גלויים בהרצת המשחק אם אפשרות זאת מופעלת." #: editor/editor_node.cpp msgid "Sync Scene Changes" @@ -2865,6 +2848,8 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"כאשר אפשרות זו מופעלת, כל השינויים שיבוצעו בסצנה בעורך יוצגו בהרצת המשחק.\n" +"בשימוש עם מכשיר מרוחק, מערכת קבצים ברשת (NFS) תהיה יעילה יותר ." #: editor/editor_node.cpp msgid "Sync Script Changes" @@ -2877,62 +2862,56 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"כאשר אפשרות זו מופעלת, כל סקריפט שנשמר יטען מחדש בהרצת המשחק.\n" +"בשימוש עם מכשיר מרוחק, מערכת קבצים ברשת (NFS) תהיה יעילה יותר ." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" msgstr "עורך" #: editor/editor_node.cpp -#, fuzzy msgid "Editor Settings..." -msgstr "הגדרות עורך" +msgstr "הגדרות העורך..." #: editor/editor_node.cpp msgid "Editor Layout" msgstr "פריסת עורך" #: editor/editor_node.cpp -#, fuzzy msgid "Take Screenshot" -msgstr "שמירת סצנה" +msgstr "שמירת צילום מסך" #: editor/editor_node.cpp -#, fuzzy msgid "Screenshots are stored in the Editor Data/Settings Folder." -msgstr "הגדרות עורך" +msgstr "צילומי מסך נשמרים בתיקיית נתוני/הגדרות העורך." #: editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "כניסה אל/יציאה ממסך מלא" +msgstr "הפעלת/ביטול מסך מלא" #: editor/editor_node.cpp -#, fuzzy msgid "Toggle System Console" -msgstr "החלפת מצב" +msgstr "הפעלת/ביטול מסוף מערכת" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Data/Settings Folder" -msgstr "הגדרות עורך" +msgstr "פתיחת תיקיית נתוני/הגדרות העורך" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "" +msgstr "פתיחת תיקיית נתוני העורך" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Settings Folder" -msgstr "הגדרות עורך" +msgstr "פתיחת תיקיית הגדרות העורך" #: editor/editor_node.cpp -#, fuzzy msgid "Manage Editor Features..." -msgstr "ניהול תבניות ייצוא" +msgstr "ניהול תכונות העורך..." #: editor/editor_node.cpp -#, fuzzy msgid "Manage Export Templates..." -msgstr "ניהול תבניות ייצוא" +msgstr "ניהול תבניות ייצוא..." #: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp msgid "Help" @@ -2957,13 +2936,12 @@ msgid "Q&A" msgstr "שאלות ותשובות נפוצות" #: editor/editor_node.cpp -#, fuzzy msgid "Report a Bug" -msgstr "ייבוא מחדש" +msgstr "דיווח על תקלה (באג)" #: editor/editor_node.cpp msgid "Send Docs Feedback" -msgstr "" +msgstr "שליחת משוב על התיעוד" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -2971,19 +2949,19 @@ msgstr "קהילה" #: editor/editor_node.cpp msgid "About" -msgstr "על" +msgstr "על אודות" #: editor/editor_node.cpp msgid "Play the project." -msgstr "נגינת המיזם…" +msgstr "הרצת המיזם." #: editor/editor_node.cpp msgid "Play" -msgstr "נגינה" +msgstr "הרצה" #: editor/editor_node.cpp msgid "Pause the scene execution for debugging." -msgstr "" +msgstr "הפסקת הרצת הסצנה לניפוי שגיאות." #: editor/editor_node.cpp msgid "Pause Scene" @@ -2995,49 +2973,44 @@ msgstr "עצירת הסצנה." #: editor/editor_node.cpp msgid "Play the edited scene." -msgstr "נגינת הסצנה שנערכה." +msgstr "הרצת הסצנה שנערכה." #: editor/editor_node.cpp msgid "Play Scene" -msgstr "נגינת הסצנה" +msgstr "הרצת הסצנה" #: editor/editor_node.cpp msgid "Play custom scene" -msgstr "נגינת סצנה מותאמת אישית" +msgstr "הרצת סצנה מותאמת אישית" #: editor/editor_node.cpp msgid "Play Custom Scene" -msgstr "נגינת סצנה בהתאמה אישית" +msgstr "הרצת סצנה בהתאמה אישית" #: editor/editor_node.cpp msgid "Changing the video driver requires restarting the editor." -msgstr "" +msgstr "שינוי מנהל התקן הווידאו דורש הפעלת העורך מחדש." #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Save & Restart" -msgstr "לשמור ולצאת" +msgstr "שמירה והפעלה מחדש" #: editor/editor_node.cpp -#, fuzzy msgid "Spins when the editor window redraws." -msgstr "מסתובב כאשר חלון העורך מצויר מחדש!" +msgstr "מסתובב כאשר חלון העורך מצויר מחדש." #: editor/editor_node.cpp -#, fuzzy msgid "Update Continuously" -msgstr "מתמשך" +msgstr "עדכון רציף" #: editor/editor_node.cpp -#, fuzzy msgid "Update When Changed" -msgstr "עדכון שינויים" +msgstr "עדכון בעת שינוי" #: editor/editor_node.cpp -#, fuzzy msgid "Hide Update Spinner" -msgstr "השבתת שבשבת עדכון" +msgstr "הסתרת מחוון העדכון" #: editor/editor_node.cpp msgid "FileSystem" @@ -3048,9 +3021,8 @@ msgid "Inspector" msgstr "חוקר" #: editor/editor_node.cpp -#, fuzzy msgid "Expand Bottom Panel" -msgstr "להרחיב הכול" +msgstr "הרחבת פאנל תחתון" #: editor/editor_node.cpp msgid "Output" @@ -3062,12 +3034,11 @@ msgstr "לא לשמור" #: editor/editor_node.cpp msgid "Android build template is missing, please install relevant templates." -msgstr "" +msgstr "חסרה תבנית בנייה לאנדרואיד, נא להתקין תבניות רלוונטיות." #: editor/editor_node.cpp -#, fuzzy msgid "Manage Templates" -msgstr "ניהול תבניות ייצוא" +msgstr "ניהול תבניות" #: editor/editor_node.cpp msgid "" @@ -3079,6 +3050,12 @@ msgid "" "the \"Use Custom Build\" option should be enabled in the Android export " "preset." msgstr "" +"פעולה זו תגדיר את המיזם שלך לבניית אנדרואיד מותאמת אישית על ידי התקנת תבנית " +"המקור ל- \"res://android/build\".\n" +"לאחר מכן אפשר להחיל שינויים ולבנות APK מותאם אישית בייצוא (הוספת מודולים, " +"שינוי AndroidManifest.xml, וכו').\n" +"כדי לערוך בנייה מותאמת אישית במקום שימוש בתבנית קיימת, יש לאפשר את \"השתמש " +"בבניה מותאמת אישית\" בהגדרות הייצוא לאנדרואיד." #: editor/editor_node.cpp msgid "" @@ -3146,9 +3123,8 @@ msgid "Open the previous Editor" msgstr "פתיחת העורך הקודם" #: editor/editor_node.h -#, fuzzy msgid "Warning!" -msgstr "אזהרות" +msgstr "אזהרה!" #: editor/editor_path.cpp msgid "No sub-resources found." @@ -3527,9 +3503,8 @@ msgid "" msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Error requesting URL:" -msgstr "שגיאה בבקשת כתובת: " +msgstr "שגיאה בבקשת כתובת:" #: editor/export_template_manager.cpp msgid "Connecting to Mirror..." @@ -3616,9 +3591,8 @@ msgid "Download Templates" msgstr "הורדת תבניות" #: editor/export_template_manager.cpp -#, fuzzy msgid "Select mirror from list: (Shift+Click: Open in Browser)" -msgstr "בחירת אתר מראה מהרשימה: " +msgstr "בחר אתר חלופי מהרשימה: (Shift+Click: פתיחה בדפדפן)" #: editor/filesystem_dock.cpp #, fuzzy @@ -3683,9 +3657,8 @@ msgid "Duplicating folder:" msgstr "תיקייה משוכפלת:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Inherited Scene" -msgstr "סצנה חדשה בירושה…" +msgstr "סצנה חדשה יורשת" #: editor/filesystem_dock.cpp #, fuzzy @@ -3820,9 +3793,8 @@ msgid "Create Script" msgstr "יצירת סקריפט" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Find in Files" -msgstr "איתור…" +msgstr "איתור בקבצים" #: editor/find_in_files.cpp #, fuzzy @@ -3858,14 +3830,12 @@ msgid "Cancel" msgstr "" #: editor/find_in_files.cpp -#, fuzzy msgid "Find: " -msgstr "איתור" +msgstr "איתור " #: editor/find_in_files.cpp -#, fuzzy msgid "Replace: " -msgstr "להחליף" +msgstr "להחליף " #: editor/find_in_files.cpp #, fuzzy @@ -3891,9 +3861,8 @@ msgid "Remove from Group" msgstr "הסרה מקבוצה" #: editor/groups_editor.cpp -#, fuzzy msgid "Group name already exists." -msgstr "הפעולה ‚%s’ כבר קיימת!" +msgstr "שם הקבוצה כבר קיים." #: editor/groups_editor.cpp #, fuzzy @@ -4086,9 +4055,8 @@ msgid "Copy Params" msgstr "העתקת משתנים" #: editor/inspector_dock.cpp -#, fuzzy msgid "Edit Resource Clipboard" -msgstr "לוח גזירי המשאבים ריק!" +msgstr "ערוך לוח העתקת משאבים" #: editor/inspector_dock.cpp msgid "Copy Resource" @@ -4330,9 +4298,8 @@ msgid "Open Animation Node" msgstr "שם הנפשה חדשה:" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Triangle already exists." -msgstr "הפעולה ‚%s’ כבר קיימת!" +msgstr "המשולש כבר קיים." #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy @@ -4387,14 +4354,13 @@ msgid "Blend:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Parameter Changed" -msgstr "שינויי חומרים" +msgstr "משתנה השתנה" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Edit Filters" -msgstr "" +msgstr "עריכת מסננים" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Output node can't be added to the blend tree." @@ -4427,15 +4393,14 @@ msgid "Nodes Disconnected" msgstr "מנותק" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Set Animation" -msgstr "שם הנפשה חדשה:" +msgstr "קביעת הנפשה" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Delete Node" -msgstr "מחיקת שורה" +msgstr "מחק מפרק" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp @@ -4530,9 +4495,8 @@ msgid "Remove Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Invalid animation name!" -msgstr "שם שגוי." +msgstr "שם הנפשה לא חוקי!" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy @@ -4561,14 +4525,12 @@ msgid "Duplicate Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to copy!" -msgstr "תקריב הנפשה." +msgstr "אין הנפשה להעתקה!" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation resource on clipboard!" -msgstr "לא בנתיב המשאב." +msgstr "אין משאב הנפשה בלוח ההעתקה!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" @@ -4579,9 +4541,8 @@ msgid "Paste Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to edit!" -msgstr "שם הנפשה חדשה:" +msgstr "אין הנפשה לעריכה!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" @@ -4724,9 +4685,8 @@ msgid "Move Node" msgstr "מצב הזזה (W)" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition exists!" -msgstr "מעברון" +msgstr "המעברון קיים!" #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy @@ -4812,9 +4772,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition: " -msgstr "מעברון" +msgstr "מעברון: " #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy @@ -6496,7 +6455,7 @@ msgstr "הזזת נקודה" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" "The skeleton property of the Polygon2D does not point to a Skeleton2D node" -msgstr "" +msgstr "מאפיין 'skeleton' של Polygon2D אינו מצביע על מפרק Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy @@ -6671,9 +6630,8 @@ msgid "Show Grid" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Configure Grid:" -msgstr "הגדרת הצמדה…" +msgstr "הגדר רשת:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid Offset X:" @@ -7061,9 +7019,8 @@ msgid "Line" msgstr "שורה:" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "מעבר לפונקציה…" +msgstr "עבור לפונקציה" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -8864,9 +8821,8 @@ msgid "Create Shader Node" msgstr "יצירת תיקייה" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Color function." -msgstr "מעבר לפונקציה…" +msgstr "פונקציית צבע." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Color operator." @@ -9356,9 +9312,8 @@ msgid "Transform uniform." msgstr "התמרה" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vector function." -msgstr "מעבר לפונקציה…" +msgstr "פונקציה וקטורית." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector operator." @@ -9679,9 +9634,8 @@ msgid "Make Patch" msgstr "" #: editor/project_export.cpp -#, fuzzy msgid "Pack File" -msgstr " קבצים" +msgstr "קובץ ארכיון" #: editor/project_export.cpp msgid "Features" @@ -9734,9 +9688,8 @@ msgid "Export Project" msgstr "ייצוא מיזם" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "ייצוא מיזם" +msgstr "מצב הייצוא?" #: editor/project_export.cpp #, fuzzy @@ -9744,9 +9697,8 @@ msgid "Export All" msgstr "ייצוא" #: editor/project_export.cpp editor/project_manager.cpp -#, fuzzy msgid "ZIP File" -msgstr " קבצים" +msgstr "קובץ ZIP" #: editor/project_export.cpp msgid "Godot Game Pack" @@ -10087,9 +10039,8 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy msgid "An action with the name '%s' already exists." -msgstr "הפעולה ‚%s’ כבר קיימת!" +msgstr "פעולה עם השם '%s' כבר קיימת." #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -10488,9 +10439,8 @@ msgid "Node type" msgstr "איתור סוג מפרק" #: editor/rename_dialog.cpp -#, fuzzy msgid "Current scene name" -msgstr "הסצנה הנוכחית לא נשמרה. לפתוח בכל זאת?" +msgstr "שם סצנה נוכחית" #: editor/rename_dialog.cpp #, fuzzy @@ -10684,9 +10634,8 @@ msgid "Delete %d nodes and any children?" msgstr "מחיקת שורה" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "מחיקת שורה" +msgstr "מחק %d מפרקים?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10697,9 +10646,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "מחיקת שורה" +msgstr "מחק מפרק \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10981,19 +10929,16 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Path is empty." -msgstr "לוח גזירי המשאבים ריק!" +msgstr "הנתיב ריק." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty." -msgstr "לוח גזירי המשאבים ריק!" +msgstr "שם הקובץ ריק." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Path is not local." -msgstr "הנתיב לא מוביל מפרק!" +msgstr "הנתיב אינו מקומי." #: editor/script_create_dialog.cpp #, fuzzy @@ -11091,9 +11036,8 @@ msgid "Will load an existing script file." msgstr "טעינת פריסת אפיקי שמע." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script file already exists." -msgstr "הפעולה ‚%s’ כבר קיימת!" +msgstr "קובץ סקריפט כבר קיים." #: editor/script_create_dialog.cpp msgid "" @@ -11670,334 +11614,324 @@ msgid "Done!" msgstr "" #: modules/visual_script/visual_script.cpp +#, fuzzy msgid "" "A node yielded without working memory, please read the docs on how to yield " "properly!" msgstr "" +"מפרק ביצע yield ללא זיכרון עבודה, אנא קרא את התיעוד על איך לעשות yield כראוי!" #: modules/visual_script/visual_script.cpp msgid "" "Node yielded, but did not return a function state in the first working " "memory." -msgstr "" +msgstr "המפרק ביצע yield, אבל לא החזיר את מצב הפונקציה בזיכרון העבודה הראשון." #: modules/visual_script/visual_script.cpp msgid "" "Return value must be assigned to first element of node working memory! Fix " "your node please." msgstr "" +"יש להקצות את הערך המוחזר לאלמנט הראשון של זיכרון עבודה של המפרק! יש לתקן את " +"המפרק בבקשה." #: modules/visual_script/visual_script.cpp msgid "Node returned an invalid sequence output: " -msgstr "" +msgstr "מפרק החזיר פלט סדר (sequence) לא חוקי: " #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" -msgstr "" +msgstr "סיבית הסדר (sequence bit) נמצאה אבל המפרק לא במחסנית, דווח על שגיאה!" #: modules/visual_script/visual_script.cpp msgid "Stack overflow with stack depth: " -msgstr "" +msgstr "גלישת מחסנית עם עומק מחסנית: " #: modules/visual_script/visual_script_editor.cpp msgid "Change Signal Arguments" -msgstr "" +msgstr "שינוי ארגומנטים של אות" #: modules/visual_script/visual_script_editor.cpp msgid "Change Argument Type" -msgstr "" +msgstr "שינוי סוג ארגומנט" #: modules/visual_script/visual_script_editor.cpp msgid "Change Argument name" -msgstr "" +msgstr "שינוי שם ארגומנט" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "" +msgstr "קביעת ערך ברירת מחדל של משתנה" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Type" -msgstr "" +msgstr "קביעת סוג משתנה" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Input Port" -msgstr "מועדפים:" +msgstr "הוספת פורט כניסה" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Output Port" -msgstr "מועדפים:" +msgstr "הוספת פורט יציאה" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Override an existing built-in function." -msgstr "שם שגוי. לא יכול לחפוף לשם סוג מובנה קיים." +msgstr "דריסה של פונקציה מובנת קיימת." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new function." -msgstr "יצירת %s חדש" +msgstr "יצירת פונקציה חדשה." #: modules/visual_script/visual_script_editor.cpp msgid "Variables:" -msgstr "" +msgstr "משתנים:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new variable." -msgstr "יצירת %s חדש" +msgstr "יצירת משתנה חדש." #: modules/visual_script/visual_script_editor.cpp msgid "Signals:" msgstr "אותות:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new signal." -msgstr "יצירת מצולע" +msgstr "יצירת אות חדש." #: modules/visual_script/visual_script_editor.cpp msgid "Name is not a valid identifier:" -msgstr "" +msgstr "השם אינו מזהה חוקי:" #: modules/visual_script/visual_script_editor.cpp msgid "Name already in use by another func/var/signal:" -msgstr "" +msgstr "השם כבר בשימוש של פונקציה/משתנה/אות אחר:" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Function" -msgstr "" +msgstr "שינוי שם פונקציה" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Variable" -msgstr "" +msgstr "שינוי שם משתנה" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Signal" -msgstr "" +msgstr "שינוי שם אות" #: modules/visual_script/visual_script_editor.cpp msgid "Add Function" -msgstr "" +msgstr "הוספת פונקציה" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Delete input port" -msgstr "הסרת נקודה בנתיב" +msgstr "מחיקת פורט כניסה" #: modules/visual_script/visual_script_editor.cpp msgid "Add Variable" -msgstr "" +msgstr "הוספת משתנה" #: modules/visual_script/visual_script_editor.cpp msgid "Add Signal" -msgstr "" +msgstr "הוספת אות" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Input Port" -msgstr "הסרת נקודה בנתיב" +msgstr "הסרת פורט כניסה" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Output Port" -msgstr "הסרת נקודה בנתיב" +msgstr "הסרת פורט יציאה" #: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" -msgstr "" +msgstr "שינוי ביטוי" #: modules/visual_script/visual_script_editor.cpp msgid "Remove VisualScript Nodes" -msgstr "" +msgstr "הסרת מפרקי VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Duplicate VisualScript Nodes" -msgstr "" +msgstr "שכפול מפרקי VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"החזק את %s כדי להוסיף Getter. החזק את מקש Shift כדי להוסיף חתימה גנרית." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" +"החזק את מקש Ctrl כדי להוסיף Getter. החזק את מקש Shift כדי להוסיף חתימה גנרית." #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a simple reference to the node." -msgstr "" +msgstr "החזק את %s כדי להוסיף הפניה פשוטה למפרק." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." -msgstr "" +msgstr "החזק את מקש Ctrl כדי להוסיף הפניה פשוטה למפרק." #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a Variable Setter." -msgstr "" +msgstr "החזק את %s כדי להוסיף Setter למשתנה." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." -msgstr "" +msgstr "החזק את מקש Ctrl כדי להוסיף Setter למשתנה." #: modules/visual_script/visual_script_editor.cpp msgid "Add Preload Node" -msgstr "" +msgstr "הוספת מפרק קדם טעינה" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" -msgstr "" +msgstr "הוספת מפרק/ים מהעץ" #: modules/visual_script/visual_script_editor.cpp msgid "" "Can't drop properties because script '%s' is not used in this scene.\n" "Drop holding 'Shift' to just copy the signature." msgstr "" +"לא ניתן להוסיף מאפיינים כי סקריפט '%s' לא בשימוש בסצנה זו.\n" +"החזקת 'Shift' בזמן הוספה תעתיק רק את החתימה." #: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" -msgstr "" +msgstr "הוספת מאפיין ל-Getter" #: modules/visual_script/visual_script_editor.cpp msgid "Add Setter Property" -msgstr "" +msgstr "הוספת מאפיין ל-Setter" #: modules/visual_script/visual_script_editor.cpp msgid "Change Base Type" -msgstr "" +msgstr "שינוי סוג בסיס" #: modules/visual_script/visual_script_editor.cpp msgid "Move Node(s)" -msgstr "" +msgstr "הזזת מפרק(ים)" #: modules/visual_script/visual_script_editor.cpp msgid "Remove VisualScript Node" -msgstr "" +msgstr "הסרת מפרק VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Connect Nodes" -msgstr "" +msgstr "חיבור מפרקים" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Disconnect Nodes" -msgstr "מנותק" +msgstr "ניתוק מפרקים" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Connect Node Data" -msgstr "התחברות למפרק:" +msgstr "קישור נתוני מפרק" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Connect Node Sequence" -msgstr "התחברות למפרק:" +msgstr "קישור Sequence של מפרק" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" -msgstr "" +msgstr "לסקריפט יש כבר פונקציה '%s'" #: modules/visual_script/visual_script_editor.cpp msgid "Change Input Value" -msgstr "" +msgstr "שינוי ערך נקלט" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Resize Comment" -msgstr "החלפת מצב הערה" +msgstr "שינוי גודל הערה" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." -msgstr "" +msgstr "לא ניתן להעתיק את פונקצית המפרק." #: modules/visual_script/visual_script_editor.cpp msgid "Clipboard is empty!" -msgstr "" +msgstr "לוח העתקה ריק!" #: modules/visual_script/visual_script_editor.cpp msgid "Paste VisualScript Nodes" -msgstr "" +msgstr "הדבקת מפרקי VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Can't create function with a function node." -msgstr "" +msgstr "לא ניתן ליצור פונקציה עם פונקצית המפרק." #: modules/visual_script/visual_script_editor.cpp msgid "Can't create function of nodes from nodes of multiple functions." -msgstr "" +msgstr "לא ניתן ליצור פונקציה של מפרקים ממפרקים של פונקציות מרובות." #: modules/visual_script/visual_script_editor.cpp msgid "Select at least one node with sequence port." -msgstr "" +msgstr "בחר מפרק אחד לפחות עם כניסה רציפה (Sequence)." #: modules/visual_script/visual_script_editor.cpp msgid "Try to only have one sequence input in selection." -msgstr "" +msgstr "יש לנסות בחירה של רק כניסה רציפה אחת." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create Function" -msgstr "יצירת %s חדש" +msgstr "יצירת פונקציה" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Function" -msgstr "" +msgstr "הסרת פונקציה" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Variable" -msgstr "" +msgstr "הסרת משתנה" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Variable:" -msgstr "" +msgstr "עריכת משתנה:" #: modules/visual_script/visual_script_editor.cpp msgid "Remove Signal" -msgstr "" +msgstr "הסרת אות" #: modules/visual_script/visual_script_editor.cpp msgid "Editing Signal:" -msgstr "" +msgstr "עריכת אות:" #: modules/visual_script/visual_script_editor.cpp msgid "Make Tool:" -msgstr "" +msgstr "יצירת כלי:" #: modules/visual_script/visual_script_editor.cpp msgid "Members:" -msgstr "חברים:" +msgstr "שדות:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Base Type:" -msgstr "שינוי ערך בררת המחדל" +msgstr "שינוי סוג הבסיס:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Nodes..." -msgstr "הזזת נקודה" +msgstr "הוספת מפרקים..." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Function..." -msgstr "מעבר לפונקציה…" +msgstr "הוספת פונקציה…" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "function_name" -msgstr "פונקציות:" +msgstr "שם_פונקציה" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." -msgstr "" +msgstr "יש לבחור או ליצור פונקציה לעריכת התרשים שלה." #: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" -msgstr "" +msgstr "מחיקת הנבחר" #: modules/visual_script/visual_script_editor.cpp msgid "Find Node Type" -msgstr "איתור סוג מפרק" +msgstr "איתור סוג המפרק" #: modules/visual_script/visual_script_editor.cpp msgid "Copy Nodes" @@ -12008,19 +11942,16 @@ msgid "Cut Nodes" msgstr "גזירת מפרקים" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Function" -msgstr "פונקציות:" +msgstr "יצירת פונקציה" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Refresh Graph" -msgstr "רענון" +msgstr "רענון תרשים" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Member" -msgstr "חברים" +msgstr "עריכת שדה" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -12028,11 +11959,11 @@ msgstr "סוג הקלט לא זמין למחזוריות: " #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" -msgstr "" +msgstr "איטרטור הפך ללא חוקי" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid: " -msgstr "" +msgstr "איטרטור הפך ללא חוקי: " #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name." @@ -12048,7 +11979,7 @@ msgstr "הנתיב לא מוביל מפרק!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." -msgstr "" +msgstr "שם מאפיין אינדקס לא חוקי '%s' במפרק %s." #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " @@ -12075,43 +12006,43 @@ msgid "" "Invalid return value from _step(), must be integer (seq out), or string " "(error)." msgstr "" +"ערך מוחזר לא חוקי מ-_step(), חייב להיות מספר שלם (seq out) או מחרוזת (שגיאה)." #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Search VisualScript" -msgstr "חיפוש בעזרה" +msgstr "חיפוש VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "קבלת %s" #: modules/visual_script/visual_script_property_selector.cpp msgid "Set %s" -msgstr "" +msgstr "קביעת %s" #: platform/android/export/export.cpp msgid "Package name is missing." -msgstr "" +msgstr "שם החבילה חסר." #: platform/android/export/export.cpp msgid "Package segments must be of non-zero length." -msgstr "" +msgstr "מקטעי החבילה חייבים להיות באורך שאינו אפס." #: platform/android/export/export.cpp msgid "The character '%s' is not allowed in Android application package names." -msgstr "" +msgstr "התו '%s' אינו מותר בשמות חבילת יישום אנדרואיד." #: platform/android/export/export.cpp msgid "A digit cannot be the first character in a package segment." -msgstr "" +msgstr "ספרה אינה יכולה להיות התו הראשון במקטע חבילה." #: platform/android/export/export.cpp msgid "The character '%s' cannot be the first character in a package segment." -msgstr "" +msgstr "התו '%s' אינו יכול להיות התו הראשון במקטע חבילה." #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." -msgstr "" +msgstr "החבילה חייבת לכלול לפחות מפריד '.' אחד." #: platform/android/export/export.cpp msgid "Select device from the list" @@ -12119,113 +12050,127 @@ msgstr "נא לבחור התקן מהרשימה" #: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." -msgstr "" +msgstr "קובץ ההפעלה של ADB לא נקבע בהגדרות העורך." #: platform/android/export/export.cpp msgid "OpenJDK jarsigner not configured in the Editor Settings." -msgstr "" +msgstr "OpenJDK jarsigner לא נקבע בהגדרות העורך." #: platform/android/export/export.cpp msgid "Debug keystore not configured in the Editor Settings nor in the preset." -msgstr "" +msgstr "מפתח לניפוי שגיאות לא נקבע בהגדרות העורך ולא בהגדרות הייצוא." #: platform/android/export/export.cpp msgid "Release keystore incorrectly configured in the export preset." -msgstr "" +msgstr "מפתח גירסת שיחרור נקבע באופן שגוי בהגדרות הייצוא." #: platform/android/export/export.cpp msgid "Custom build requires a valid Android SDK path in Editor Settings." msgstr "" +"בנייה מותאמת אישית דורשת נתיב חוקי של ערכת פיתוח לאנדרואיד בהגדרות העורך." #: platform/android/export/export.cpp msgid "Invalid Android SDK path for custom build in Editor Settings." msgstr "" +"נתיב לא חוקי לערכת פיתוח אנדרואיד עבור בנייה מותאמת אישית בהגדרות העורך." #: platform/android/export/export.cpp msgid "" "Android build template not installed in the project. Install it from the " "Project menu." -msgstr "" +msgstr "תבנית בנייה לאנדרואיד לא מותקנת בפרוייקט. ההתקנה היא מתפריט המיזם." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." -msgstr "" +msgstr "מפתח ציבורי לא חוקי להרחבת APK." #: platform/android/export/export.cpp -#, fuzzy msgid "Invalid package name:" -msgstr "שם שגוי." +msgstr "שם חבילה לא חוקי:" #: platform/android/export/export.cpp msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" msgstr "" +"מודול \"GodotPaymentV3\" לא חוקי נמצא בהגדרת המיזם ב-\"אנדרואיד/מודולים" +"\" (שינוי בגודו 3.2.2).\n" #: platform/android/export/export.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." -msgstr "" +msgstr "חובה לאפשר ״שימוש בבניה מותאמת אישית״ כדי להשתמש בתוספים." #: platform/android/export/export.cpp +#, fuzzy msgid "" "\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR" "\"." -msgstr "" +msgstr "\"דרגות של חופש\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"." #: platform/android/export/export.cpp +#, fuzzy msgid "" "\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." -msgstr "" +msgstr "\"Hand Tracking\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"." #: platform/android/export/export.cpp +#, fuzzy msgid "" "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." -msgstr "" +msgstr "\"Focus Awareness\" תקף רק כאשר \"מצב Xr\" הוא \"Oculus Mobile VR\"." #: platform/android/export/export.cpp msgid "" "Trying to build from a custom built template, but no version info for it " "exists. Please reinstall from the 'Project' menu." msgstr "" +"מנסה לבנות מתבנית מותאמת אישית, אך לא קיים מידע על גירסת הבניה. נא להתקין " +"מחדש מתפריט 'Project'." #: platform/android/export/export.cpp +#, fuzzy msgid "" "Android build version mismatch:\n" " Template installed: %s\n" " Godot Version: %s\n" "Please reinstall Android build template from 'Project' menu." msgstr "" +"חוסר התאמה בגירסת אנדרואיד:\n" +" תבנית הותקנה: %s\n" +" גרסת גודו: %s\n" +"נא להתקין מחדש את תבנית בניית אנדרואיד מתפריט 'Project'." #: platform/android/export/export.cpp msgid "Building Android Project (gradle)" -msgstr "" +msgstr "בניית מיזם אנדרואיד (gradle)" #: platform/android/export/export.cpp msgid "" "Building of Android project failed, check output for the error.\n" "Alternatively visit docs.godotengine.org for Android build documentation." msgstr "" +"בניית מיזם אנדרואיד נכשלה, ניתן לבדוק את הפלט לאיתור השגיאה.\n" +"לחלופין, קיים ב- docs.godotengine.org תיעוד לבניית אנדרואיד." #: platform/android/export/export.cpp msgid "No build apk generated at: " -msgstr "" +msgstr "לא נוצר apk ב: " #: platform/iphone/export/export.cpp msgid "Identifier is missing." -msgstr "" +msgstr "מזהה חסר." #: platform/iphone/export/export.cpp msgid "The character '%s' is not allowed in Identifier." -msgstr "" +msgstr "התו '%s' אינו מותר במזהה." #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." -msgstr "" +msgstr "לא צוין App Store Team ID - לא ניתן להגדיר את המיזם." #: platform/iphone/export/export.cpp -#, fuzzy msgid "Invalid Identifier:" -msgstr "גודל הגופן שגוי." +msgstr "מזהה לא חוקי:" #: platform/iphone/export/export.cpp msgid "Required icon is not specified in the preset." @@ -12507,7 +12452,7 @@ msgstr "ARVROrigin דורש מפרק צאצא מסוג ARVRCamera" #: scene/3d/baked_lightmap.cpp msgid "%d%%" -msgstr "" +msgstr "%d%%" #: scene/3d/baked_lightmap.cpp msgid "(Time Left: %d:%02d s)" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 70d7a4d6b3..0fd6f92fbb 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -1136,6 +1136,16 @@ msgid "Gold Sponsors" msgstr "गोल्ड प्रायोजक" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "रजत दाताओं" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "कांस्य दाताओं" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "मिनी प्रायोजक" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index a515a912b0..2779300580 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -1123,6 +1123,16 @@ msgid "Gold Sponsors" msgstr "Zlatni sponzori" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Srebrni donatori" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Brončani donatori" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini sponzori" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 5661ed02cd..40a6462c90 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -5,17 +5,18 @@ # Árpád Horváth <horvatha4@googlemail.com>, 2018. # Nagy Lajos <neutron9707@gmail.com>, 2017. # Sandor Domokos <sandor.domokos@gmail.com>, 2017-2018. -# Varga Dániel <danikah.danikah@gmail.com>, 2016-2018. -# Gabor Csordas <gaborcsordas@yahoo.com>, 2018, 2019. +# Varga Dániel <danikah.danikah@gmail.com>, 2016-2018, 2020. +# Gabor Csordas <gaborcsordas@yahoo.com>, 2018, 2019, 2020. # Tusa Gamer <tusagamer@mailinator.com>, 2018. # Máté Lugosi <mate.lugosi@gmail.com>, 2019. # sztrovacsek <magadeve@gmail.com>, 2019. +# Ács Zoltán <acszoltan111@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-01-30 03:56+0000\n" -"Last-Translator: Deleted User <noreply+18797@weblate.org>\n" +"PO-Revision-Date: 2020-08-11 14:04+0000\n" +"Last-Translator: Ács Zoltán <acszoltan111@gmail.com>\n" "Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/" "godot/hu/>\n" "Language: hu\n" @@ -23,7 +24,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -44,7 +45,7 @@ msgstr "Nincs elég bájt a bájtok dekódolására, vagy hibás formátum." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "Érvénytelen bemenet %i (nem átadott) a kifejezésben." +msgstr "Érvénytelen bemenet %i (nem átadott) a kifejezésben" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -52,7 +53,7 @@ msgstr "self nem használható, mert a példány null (nincs átadva)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "Érvénytelen operandus a %s, %s és %s operátorokhoz." +msgstr "Érvénytelen operandusok az %s, %s és %s operátorhoz." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" @@ -102,7 +103,7 @@ msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" -msgstr "Ingyenes" +msgstr "Szabad" #: editor/animation_bezier_editor.cpp msgid "Balanced" @@ -134,11 +135,11 @@ msgstr "Kiválasztott kulcsok törlése" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" -msgstr "Bezier pont hozzáadása" +msgstr "Bézier pont hozzáadása" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" -msgstr "Bezier pont Mozgatása" +msgstr "Bézier pont mozgatása" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -214,7 +215,7 @@ msgstr "UV Térkép Transzformálása" #: editor/animation_track_editor.cpp msgid "Call Method Track" -msgstr "" +msgstr "Hívás módszer követése" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" @@ -222,7 +223,7 @@ msgstr "Bezier Görbe Nyomvonal" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" -msgstr "" +msgstr "Hang lejátszás követése" #: editor/animation_track_editor.cpp #, fuzzy @@ -265,9 +266,8 @@ msgid "Change Track Path" msgstr "Tömb Értékének Megváltoztatása" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Toggle this track on/off." -msgstr "Zavarmentes mód váltása." +msgstr "A sáv ki/be kapcsolása." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" @@ -287,9 +287,8 @@ msgid "Remove this track." msgstr "Kiválasztott nyomvonal eltávolítása." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Time (s): " -msgstr "Áttűnési Idő (mp):" +msgstr "Idő (mp):" #: editor/animation_track_editor.cpp #, fuzzy @@ -618,7 +617,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "Bézier görbék használata" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -710,11 +709,11 @@ msgstr "Tömb Értékének Megváltoztatása" #: editor/code_editor.cpp msgid "Go to Line" -msgstr "Sorra Ugrás" +msgstr "Ugrás Sorra" #: editor/code_editor.cpp msgid "Line Number:" -msgstr "Sor Száma:" +msgstr "Sorszám:" #: editor/code_editor.cpp #, fuzzy @@ -736,7 +735,7 @@ msgstr "Pontos Egyezés" #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Whole Words" -msgstr "Teljes Szavak" +msgstr "Egész Szavak" #: editor/code_editor.cpp editor/rename_dialog.cpp msgid "Replace" @@ -826,7 +825,7 @@ msgstr "A Node nem tartalmaz geometriát." #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp msgid "Add" -msgstr "Hozzáad" +msgstr "Hozzáadás" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/editor_feature_profile.cpp editor/groups_editor.cpp @@ -837,7 +836,7 @@ msgstr "Hozzáad" #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" -msgstr "Eltávolít" +msgstr "Eltávolítás" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" @@ -922,7 +921,7 @@ msgstr "Kapcsolás..." #: editor/connections_dialog.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Disconnect" -msgstr "Szétkapcsol" +msgstr "Leválasztás" #: editor/connections_dialog.cpp #, fuzzy @@ -980,7 +979,7 @@ msgstr "Kedvencek:" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp msgid "Recent:" -msgstr "Legutóbbi:" +msgstr "Legutolsó:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp @@ -1066,7 +1065,7 @@ msgstr "Csere Forrás Keresése:" #: modules/visual_script/visual_script_property_selector.cpp #: scene/gui/file_dialog.cpp msgid "Open" -msgstr "Megnyit" +msgstr "Megnyitás" #: editor/dependency_editor.cpp msgid "Owners Of:" @@ -1189,6 +1188,16 @@ msgid "Gold Sponsors" msgstr "Arany Szponzorok" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Ezüst Adományozók" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronz Adományozók" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Szponzorok" @@ -2266,7 +2275,7 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp msgid "OK" -msgstr "" +msgstr "OK" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" @@ -4315,16 +4324,14 @@ msgid "Create points." msgstr "Pontok Törlése" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "" "Edit points.\n" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" -"Meglévő sokszög módosítása:\n" -"Bal Egérgomb: Pont Mozgatása.\n" -"Ctrl + Bal Egérgomb: Szakasz Felosztása.\n" -"Jobb Egérgomb: Pont Eltörlése." +"Pontok szerkesztése\n" +"Bal Egérgomb: Pont mozgatása\n" +"Jobb Egérgomb: Pont törlése" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -5841,7 +5848,7 @@ msgstr "Nézet Megjelenítése" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Csoport Megjelenítése és ikonok zárolása" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -8362,7 +8369,7 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp msgid "Icon" -msgstr "" +msgstr "Ikon" #: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp msgid "Style" @@ -8370,7 +8377,7 @@ msgstr "Stílus" #: editor/plugins/theme_editor_plugin.cpp msgid "Font" -msgstr "" +msgstr "Betűtípus" #: editor/plugins/theme_editor_plugin.cpp msgid "Color" @@ -8392,9 +8399,8 @@ msgstr "Érvénytelen név." #: editor/plugins/tile_map_editor_plugin.cpp #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Kijelölés Középre" +msgstr "Kijelölés kivágása" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -8402,7 +8408,7 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Line Draw" -msgstr "" +msgstr "Vonal rajzolás" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Rectangle Paint" @@ -8491,7 +8497,7 @@ msgstr "Jelenlegi tétel eltávolítása" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" -msgstr "" +msgstr "Létrehozás jelenetből" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from Scene" @@ -10048,7 +10054,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Rename Project" -msgstr "" +msgstr "Projekt átnevezése" #: editor/project_manager.cpp msgid "Import Existing Project" @@ -10076,7 +10082,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Project Name:" -msgstr "" +msgstr "Projekt neve:" #: editor/project_manager.cpp msgid "Project Path:" @@ -10120,7 +10126,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Unnamed Project" -msgstr "" +msgstr "Névtelen projekt" #: editor/project_manager.cpp #, fuzzy @@ -10224,7 +10230,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Project Manager" -msgstr "" +msgstr "Projektkezelő" #: editor/project_manager.cpp #, fuzzy @@ -10237,7 +10243,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Scan" -msgstr "" +msgstr "Keresés" #: editor/project_manager.cpp msgid "Select a Folder to Scan" diff --git a/editor/translations/id.po b/editor/translations/id.po index cf4bd738fa..34c15ae95f 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -20,7 +20,7 @@ # Alphin Albukhari <alphinalbukhari5@gmail.com>, 2019. # I Dewa Agung Adhinata <agungnata2003@gmail.com>, 2019. # herri siagian <herry.it.2007@gmail.com>, 2019. -# MonsterGila <fikrirazor@outlook.co.id>, 2019. +# MonsterGila <fikrirazor@outlook.co.id>, 2019, 2020. # Modeus Darksono <garuga17@gmail.com>, 2019. # Akhmad Zulfikar <azuldegratz@gmail.com>, 2020. # Ade Fikri Malihuddin <ade.fm97@gmail.com>, 2020. @@ -31,8 +31,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-06 04:41+0000\n" -"Last-Translator: yusuf afandi <afandi.yusuf.04@gmail.com>\n" +"PO-Revision-Date: 2020-08-12 08:00+0000\n" +"Last-Translator: MonsterGila <fikrirazor@outlook.co.id>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" @@ -1160,6 +1160,16 @@ msgid "Gold Sponsors" msgstr "Sponsor Emas" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Donatur Perak" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Donatur Perunggu" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Sponsor Mini" @@ -2435,10 +2445,13 @@ msgid "Reload Saved Scene" msgstr "Simpan Skena" #: editor/editor_node.cpp +#, fuzzy msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" +"Skena saat ini mempunyai perubahan yang belum tersimpan.\n" +"Tetap muat ulang skena yang tersimpan? Aksi ini tidak dapat dibatalkan." #: editor/editor_node.cpp msgid "Quick Run Scene..." @@ -10683,11 +10696,14 @@ msgid "Open Documentation" msgstr "Buka Dokumentasi" #: editor/scene_tree_dock.cpp +#, fuzzy msgid "" "Cannot attach a script: there are no languages registered.\n" "This is probably because this editor was built with all language modules " "disabled." msgstr "" +"Tidak dapat melampirkan skrip: tidak ada bahasa yang terdaftar.\n" +"Ini mungkin karena editor ini dibuat dengan semua modul bahasa dinonaktifkan." #: editor/scene_tree_dock.cpp msgid "Add Child Node" @@ -12240,10 +12256,14 @@ msgstr "" "ciptakan resource shape untuknya!" #: scene/2d/collision_shape_2d.cpp +#, fuzzy msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Bentuk Polygon-based tidak dimaksudkan untuk digunakan atau diedit secara " +"langsung melalui node CollisionShape2D. Silakan gunakan node " +"CollisionPolygon2D sebagai gantinya." #: scene/2d/cpu_particles_2d.cpp msgid "" @@ -12429,8 +12449,9 @@ msgid "Finishing Plot" msgstr "Menyelesaikan Pemetaan" #: scene/3d/baked_lightmap.cpp +#, fuzzy msgid "Lighting Meshes: " -msgstr "" +msgstr "Lighting Meshes: " #: scene/3d/collision_object.cpp msgid "" @@ -12485,8 +12506,9 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "Nothing is visible because no mesh has been assigned." -msgstr "" +msgstr "Tidak ada yang tampak karena tidak ada mesh yang ditetapkan." #: scene/3d/cpu_particles.cpp msgid "" diff --git a/editor/translations/is.po b/editor/translations/is.po index d53a9d609d..16958ecf41 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -1143,6 +1143,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index 93ca2a8f29..7617e0e8de 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -27,8 +27,8 @@ # Hairic95 <hairic95@gmail.com>, 2019. # Christian Biffi <creixx@virgilio.it>, 2019. # Giuseppe Guerra <me@nyodev.xyz>, 2019. -# RHC <rhc.throwaway@gmail.com>, 2019. -# Antonio Giungato <antonio.giungato@gmail.com>, 2019. +# RHC <rhc.throwaway@gmail.com>, 2019, 2020. +# Antonio Giungato <antonio.giungato@gmail.com>, 2019, 2020. # Marco Galli <mrcgll98@gmail.com>, 2019, 2020. # MassiminoilTrace <omino.gis@gmail.com>, 2019, 2020. # MARCO BANFI <mbanfi@gmail.com>, 2019. @@ -54,12 +54,13 @@ # Lorenzo Asolan <brixiumx@gmail.com>, 2020. # Lorenzo Cerqua <lorenzocerqua@tutanota.com>, 2020. # Federico Manzella <ferdiu.manzella@gmail.com>, 2020. +# Ziv D <wizdavid@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-26 15:41+0000\n" -"Last-Translator: Mirko <miknsop@gmail.com>\n" +"PO-Revision-Date: 2020-09-02 14:35+0000\n" +"Last-Translator: Ziv D <wizdavid@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -67,28 +68,28 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "Argomento non valido per convert(), usare le costanti TYPE_*." +msgstr "Argomento tipo non valido per convert(), usare le costanti TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "Prevista una stringa di lunghezza 1 (singolo carattere)." +msgstr "Prevista una stringa di lunghezza 1 (un singolo carattere)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." msgstr "" -"Non vi sono abbastanza byte per riuscire a decodificarli, oppure il formato " +"Non ci sono abbastanza byte per riuscire a decodificarli, oppure il formato " "non è valido." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "Input non valido %i (non passato) nell'espressione" +msgstr "Input non valido %i (assente) nell'espressione" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -100,7 +101,7 @@ msgstr "Operandi non validi per l'operatore %s, %s e %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "Indice del tipo %s non valido per il tipo base %s" +msgstr "Indice di tipo %s non valido per il tipo base %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" @@ -108,7 +109,7 @@ msgstr "Nome indice '%s' non valido per il tipo base %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "Argomenti non validi per il costrutto '%s'" +msgstr "Argomenti non validi per costruire '%s'" #: core/math/expression.cpp msgid "On call to '%s':" @@ -241,7 +242,7 @@ msgstr "Modifica ciclicità animazione" #: editor/animation_track_editor.cpp msgid "Property Track" -msgstr "Proprietà Traccia" +msgstr "Traccia proprietà" #: editor/animation_track_editor.cpp msgid "3D Transform Track" @@ -249,7 +250,7 @@ msgstr "Traccia trasformazione 3D" #: editor/animation_track_editor.cpp msgid "Call Method Track" -msgstr "Traccia di Chiamata di Metodi" +msgstr "Traccia chiamata metodo" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" @@ -265,7 +266,7 @@ msgstr "Traccia di riproduzione animazione" #: editor/animation_track_editor.cpp msgid "Animation length (frames)" -msgstr "Durata Animazione (frames)" +msgstr "Durata animazione (fotogrammi)" #: editor/animation_track_editor.cpp msgid "Animation length (seconds)" @@ -277,7 +278,7 @@ msgstr "Aggiungi Traccia" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "Ciclicità Animazione" +msgstr "Ripeti Ciclicamente Animazione" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -290,7 +291,7 @@ msgstr "Clip Audio:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "Clip Anim:" +msgstr "Clip Animazione:" #: editor/animation_track_editor.cpp msgid "Change Track Path" @@ -306,11 +307,11 @@ msgstr "Modalità di aggiornamento (Come viene impostata questa proprietà)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" -msgstr "Modalità di Interpolazione" +msgstr "Modalità Interpolazione" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" -msgstr "Modalità Loop Wrap (Interpola la fine con l'inizio del loop)" +msgstr "Modalità Ciclo ad Anello (Interpola la fine con l'inizio del ciclo)" #: editor/animation_track_editor.cpp msgid "Remove this track." @@ -1049,11 +1050,11 @@ msgstr "Dipendenze:" #: editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "Riparare rotti" +msgstr "Ripara rotti" #: editor/dependency_editor.cpp msgid "Dependency Editor" -msgstr "Editor dipendenze" +msgstr "Editor Dipendenze" #: editor/dependency_editor.cpp msgid "Search Replacement Resource:" @@ -1157,7 +1158,7 @@ msgstr "Grazie dalla comunità di Godot!" #: editor/editor_about.cpp msgid "Godot Engine contributors" -msgstr "Contributori a Godot Engine" +msgstr "Contributori di Godot engine" #: editor/editor_about.cpp msgid "Project Founders" @@ -1188,6 +1189,16 @@ msgid "Gold Sponsors" msgstr "Sponsor oro" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Donatori argento" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Donatori bronzo" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Sponsor mini" @@ -1391,7 +1402,7 @@ msgstr "Salva disposizione del bus audio come..." #: editor/editor_audio_buses.cpp msgid "Location for New Layout..." -msgstr "Posizione della nuova disposizione…" +msgstr "Posizione per la nuova disposizione..." #: editor/editor_audio_buses.cpp msgid "Open Audio Bus Layout" @@ -1441,7 +1452,7 @@ msgstr "Salva questa disposizione bus in un file." #: editor/editor_audio_buses.cpp editor/import_dock.cpp msgid "Load Default" -msgstr "Carica predefiniti" +msgstr "Carica Predefiniti" #: editor/editor_audio_buses.cpp msgid "Load the default Bus Layout." @@ -1758,7 +1769,7 @@ msgstr "Nuovo" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "Importa" +msgstr "Importare" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" @@ -1887,7 +1898,7 @@ msgstr "Attiva/disattiva preferito" #: editor/editor_file_dialog.cpp msgid "Toggle Mode" -msgstr "Modalità di Attivazione/Disattivazione" +msgstr "Commuta Modalità" #: editor/editor_file_dialog.cpp msgid "Focus Path" @@ -2535,12 +2546,14 @@ msgstr "" #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." msgstr "" -"Impossibile trovare il campo per lo script del componente aggiuntivo in: " +"Impossibile trovare il campo dello script per il componente aggiuntivo in: " "'res://addons/%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." -msgstr "Impossibile caricare uno script aggiuntivo dal percorso: '%s'." +msgstr "" +"Impossibile caricare lo script di un componente aggiuntivo dal percorso: " +"'%s'." #: editor/editor_node.cpp msgid "" @@ -2560,8 +2573,8 @@ msgstr "" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" -"Impossibile caricare uno script aggiuntivo dal percorso: Lo script '%s' non " -"è in tool mode." +"Impossibile caricare lo script di un componente aggiuntivo dal percorso: " +"'%s' Lo script non è in modalità strumento." #: editor/editor_node.cpp msgid "" @@ -2630,7 +2643,7 @@ msgstr "Elimina disposizione" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp msgid "Default" -msgstr "Default" +msgstr "Predefinito" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp @@ -2679,7 +2692,7 @@ msgstr "%d altri file" #: editor/editor_node.cpp msgid "Dock Position" -msgstr "Posizione dock" +msgstr "Posizione Dock" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -2798,7 +2811,7 @@ msgstr "Esporta..." #: editor/editor_node.cpp msgid "Install Android Build Template..." -msgstr "Installa il Build Template di Android…" +msgstr "Installa il Modello di Costruzione di Android…" #: editor/editor_node.cpp msgid "Open Project Data Folder" @@ -2945,7 +2958,7 @@ msgstr "Apri cartella dati/impostazioni editor" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "Apri la cartella dati dell'editor" +msgstr "Apri la Cartella dei Dati dell'Editor" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" @@ -2957,7 +2970,7 @@ msgstr "Gestisci le funzionalità dell'editor…" #: editor/editor_node.cpp msgid "Manage Export Templates..." -msgstr "Gestisci template d'esportazione…" +msgstr "Gestisci Modello d'Esportazione…" #: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp msgid "Help" @@ -2983,11 +2996,11 @@ msgstr "Domande e risposte" #: editor/editor_node.cpp msgid "Report a Bug" -msgstr "Riporta un Bug" +msgstr "Segnala un problema" #: editor/editor_node.cpp msgid "Send Docs Feedback" -msgstr "Invia opinione sui documenti" +msgstr "Valuta documentazione" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -3086,7 +3099,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Manage Templates" -msgstr "Gestisci i template d'esportazione" +msgstr "Gestisci i modelli d'esportazione" #: editor/editor_node.cpp msgid "" @@ -3114,7 +3127,7 @@ msgid "" "Remove the \"res://android/build\" directory manually before attempting this " "operation again." msgstr "" -"Il template della build Android è già installato in questo progetto e non " +"Il modello della build Android è già installato in questo progetto e non " "sarà sovrascritto.\n" "Rimuovi la cartella \"res://android/build\" manualmente prima di ritentare " "questa operazione." @@ -3242,7 +3255,7 @@ msgstr "Frame %" #: editor/editor_profiler.cpp msgid "Physics Frame %" -msgstr "Frame della Fisica %" +msgstr "Fotogramma della Fisica %" #: editor/editor_profiler.cpp msgid "Inclusive" @@ -3520,8 +3533,8 @@ msgid "" "No download links found for this version. Direct download is only available " "for official releases." msgstr "" -"Non sono stati trovati link di download per questa versione. Il download " -"diretto è disponibile solamente per rilasci ufficiali." +"Nessun collegamento di download trovato per questa versione. I download " +"diretti sono disponibili solo per i rilasci ufficiali." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3615,7 +3628,7 @@ msgstr "Errore di Connessione" #: editor/export_template_manager.cpp msgid "SSL Handshake Error" -msgstr "Errore nell'Handshake SSL" +msgstr "Errore Handshake SSL" #: editor/export_template_manager.cpp msgid "Uncompressing Android Build Sources" @@ -3643,7 +3656,7 @@ msgstr "Seleziona file template" #: editor/export_template_manager.cpp msgid "Godot Export Templates" -msgstr "Template di Export" +msgstr "Modello di Esportazione Godot" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3651,7 +3664,7 @@ msgstr "Gestore Template Esportazione" #: editor/export_template_manager.cpp msgid "Download Templates" -msgstr "Scarica Template" +msgstr "Scarica Modelli" #: editor/export_template_manager.cpp msgid "Select mirror from list: (Shift+Click: Open in Browser)" @@ -4038,11 +4051,11 @@ msgstr "%d File" #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "Imposta come Default per '%s'" +msgstr "Imposta come Predefinito per '%s'" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "Elimina Default per '%s'" +msgstr "Elimina Predefinito per '%s'" #: editor/import_dock.cpp msgid "Import As:" @@ -4629,7 +4642,7 @@ msgstr "Opzioni dell'onion skinning" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" -msgstr "Indicazioni" +msgstr "Direzioni" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Past" @@ -4798,7 +4811,7 @@ msgstr "Modalità Gioco:" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "AnimationTree" -msgstr "AnimazioneAlbero" +msgstr "AnimationTree" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "New name:" @@ -5725,7 +5738,7 @@ msgstr "Errore istanziamento scena da %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Default Type" -msgstr "Cambia tipo di default" +msgstr "Cambia Tipo Predefinito" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -8669,7 +8682,7 @@ msgstr "Imposta Nome Uniforme" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Input Default Port" -msgstr "Imposta Porta Input di Default" +msgstr "Imposta Porta Input Predefinita" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node to Visual Shader" @@ -9011,7 +9024,7 @@ msgstr "Calcola la parte frazionaria dell'argomento." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the inverse of the square root of the parameter." -msgstr "Ritorna l'inversa della radice quadrata del parametro." +msgstr "Restituisce l'inversa della radice quadrata del parametro." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Natural logarithm." @@ -9073,15 +9086,15 @@ msgstr "Estrae il segno del parametro." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the sine of the parameter." -msgstr "Ritorna il seno del parametro." +msgstr "Restituisce il seno del parametro." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the hyperbolic sine of the parameter." -msgstr "Ritorna il seno iperbolico del parametro." +msgstr "Restituisce il seno iperbolico del parametro." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the square root of the parameter." -msgstr "Ritorna la radice quadrata del parametro." +msgstr "Restituisce la radice quadrata del parametro." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9093,8 +9106,8 @@ msgid "" msgstr "" "SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" "\n" -"Ritorna 0.0 se 'x' è più piccolo di 'edge0', o 1.0 se 'x' è più grande di " -"'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 " +"Restituisce 0.0 se 'x' è più piccolo di 'edge0', o 1.0 se 'x' è più grande " +"di 'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 " "usando i polinomi di Hermite." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -9105,15 +9118,15 @@ msgid "" msgstr "" "Step function( scalar(edge), scalar(x) ).\n" "\n" -"Ritorna 0.0 se 'x' è più piccolo di 'edge', altrimenti 1.0." +"Restituisce 0.0 se 'x' è più piccolo di 'edge', altrimenti 1.0." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the tangent of the parameter." -msgstr "Ritorna la tangente del parametro." +msgstr "Restituisce la tangente del parametro." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the hyperbolic tangent of the parameter." -msgstr "Ritorna la tangente iperbolica del parametro." +msgstr "Restituisce la tangente iperbolica del parametro." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the truncated value of the parameter." @@ -9133,7 +9146,7 @@ msgstr "Moltiplica lo scalare per scalare." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the remainder of the two scalars." -msgstr "Ritorna il resto dei due scalari." +msgstr "Restituisce il resto dei due scalari." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Subtracts scalar from scalar." @@ -9243,11 +9256,11 @@ msgstr "Scompone il vettore a tre scalari." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the cross product of two vectors." -msgstr "Calcola il prodotto incrociato di due vettori." +msgstr "Calcola il prodotto vettoriale di due vettori." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the distance between two points." -msgstr "Ritorna la distanza tra due punti." +msgstr "Restituisce la distanza tra due punti." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the dot product of two vectors." @@ -9260,7 +9273,7 @@ msgid "" "incident vector, and Nref, the reference vector. If the dot product of I and " "Nref is smaller than zero the return value is N. Otherwise -N is returned." msgstr "" -"Ritorna un vettore che punta nella stessa direzione di quello di " +"Restituisce un vettore che punta nella stessa direzione di quello di " "riferimento. La funzione ha tre vettori parametro: N, il vettore da " "orientare; I, quello incidente; ed Nref, il vettore di riferimento. Se il " "prodotto scalare di I ed Nref è minore di zero, il valore di ritorno è N. " @@ -9295,12 +9308,12 @@ msgid "" "Returns the vector that points in the direction of reflection ( a : incident " "vector, b : normal vector )." msgstr "" -"Ritorna un vettore che punta nella direzione della riflessione ( a : vettore " -"incidente, b : vettore normale )." +"Restituisce un vettore che punta nella direzione della riflessione ( a : " +"vettore incidente, b : vettore normale )." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the vector that points in the direction of refraction." -msgstr "Ritorna un vettore che punta nella direzione della refrazione." +msgstr "Restituisce un vettore che punta nella direzione della refrazione." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9312,7 +9325,7 @@ msgid "" msgstr "" "SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" "\n" -"Ritorna 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di " +"Restituisce 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di " "'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 " "usando i polinomiali di Hermite." @@ -9326,7 +9339,7 @@ msgid "" msgstr "" "SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" "\n" -"Ritorna 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di " +"Restituisce 0.0 se 'x' è minore di 'edge0', ed 1.0 se 'x' è più grande di " "'edge1'. Altrimenti, il valore di ritorno è interpolato tra 0.0 ed 1.0 " "usando i polinomiali di Hermite." @@ -9338,7 +9351,7 @@ msgid "" msgstr "" "Step function( vector(edge), vector(x) ).\n" "\n" -"Ritorna 0.0 se 'x' è minore di 'edge', altrimenti 1.0." +"Restituisce 0.0 se 'x' è minore di 'edge', altrimenti 1.0." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9348,7 +9361,7 @@ msgid "" msgstr "" "Step function( scalar(edge), vector(x) ).\n" "\n" -"Ritorna 0.0 se 'x' è minore di 'edge', altrimenti 1.0." +"Restituisce 0.0 se 'x' è minore di 'edge', altrimenti 1.0." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Adds vector to vector." @@ -9356,7 +9369,7 @@ msgstr "Aggiunge un vettore al vettore." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Divides vector by vector." -msgstr "Divide vettore per vettore." +msgstr "Divide due vettori." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Multiplies vector by vector." @@ -9364,7 +9377,7 @@ msgstr "Moltiplica vettore per vettore." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the remainder of the two vectors." -msgstr "Ritorna il resto dei due vettori." +msgstr "Restituisce il resto dei due vettori." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Subtracts vector from vector." @@ -9394,7 +9407,7 @@ msgid "" "Returns falloff based on the dot product of surface normal and view " "direction of camera (pass associated inputs to it)." msgstr "" -"Ritorna il decadimento in base al prodotto scalare della normale della " +"Restituisce il decadimento in base al prodotto scalare della normale della " "superfice e direzione della telecamera (passa gli input associati ad essa)." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -10630,9 +10643,8 @@ msgid "Make node as Root" msgstr "Rendi il nodo come Radice" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Elimina il nodo \"%s\" e tutti i suoi figli?" +msgstr "Eliminare %d nodi ed eventuali figli?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -10675,9 +10687,8 @@ msgid "" "Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " "cause all properties of the node to be reverted to their default." msgstr "" -"Abilitando \"Carica Come Placeholder\" disabiliterà \"Figlio Modificabile\" " -"e causerà tutte le proprietà del nodo di essere riportare ai loro valori " -"default." +"Abilitare \"Carica Come Placeholder\" disabiliterà \"Figlio Modificabile\" e " +"riporterà tutte le proprietà del nodo ai loro valori predefiniti." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -11111,7 +11122,7 @@ msgstr "Processo Figlio Connesso." #: editor/script_editor_debugger.cpp msgid "Copy Error" -msgstr "Copia messaggio di errore" +msgstr "Copia Errore" #: editor/script_editor_debugger.cpp msgid "Video RAM" @@ -11644,7 +11655,7 @@ msgstr "Cambia nome Argomento" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "Imposta Valore di Default della Variabile" +msgstr "Imposta Valore Predefinito della Variabile" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Type" @@ -12058,7 +12069,7 @@ msgstr "" #: platform/android/export/export.cpp msgid "Release keystore incorrectly configured in the export preset." msgstr "" -"Debug keystore non configurato correttamente nel preset di esportazione." +"Release keystore non configurato correttamente nel preset di esportazione." #: platform/android/export/export.cpp msgid "Custom build requires a valid Android SDK path in Editor Settings." @@ -12109,18 +12120,18 @@ msgstr "" "Mobile VR\"." #: platform/android/export/export.cpp -#, fuzzy msgid "" "\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." msgstr "" -"\"Hand Tracking\" è valido solo quando \"Xr Mode\" è \"Oculus Mobile VR\"." +"\"Hand Tracking\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus " +"Mobile VR\"." #: platform/android/export/export.cpp -#, fuzzy msgid "" "\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\"." msgstr "" -"\"Focus Awareness\" è valida solo quando \"Xr Mode\" è \"Oculus Mobile VR\"." +"\"Focus Awareness\" è valido solo quando \"Xr Mode\" è impostato su \"Oculus " +"Mobile VR\"." #: platform/android/export/export.cpp msgid "" @@ -12192,7 +12203,7 @@ msgstr "Esegui nel Browser" #: platform/javascript/export/export.cpp msgid "Run exported HTML in the system's default browser." -msgstr "Esegui HTML esportato all'interno del browser di sistema di default." +msgstr "Esegui il codice HTML esportato nel browser di sistema predefinito." #: platform/javascript/export/export.cpp msgid "Could not write file:" @@ -12216,7 +12227,7 @@ msgstr "Impossibile leggere il file immagine di avvio splash:" #: platform/javascript/export/export.cpp msgid "Using default boot splash image." -msgstr "Utilizzando l'immagine di splash di avvio predefinita." +msgstr "Utilizzando l'immagine splash predefinita." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -12350,6 +12361,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Le forme basate sui poligoni non sono state fatte per essere usate nè " +"modificate direttamente tramite il nodo CollisionShape2D. Per piacere usa " +"invece il nodo CollisionPolygon2D." #: scene/2d/cpu_particles_2d.cpp msgid "" @@ -12853,9 +12867,9 @@ msgid "" "functions. Making them visible for editing is fine, but they will hide upon " "running." msgstr "" -"I popup saranno nascosti per default affinché non chiami la funzione " -"popup(), oppure una delle funzioni popup*(). Farli diventare visibili per " -"modificarli va bene, ma scompariranno all'esecuzione." +"I popup saranno nascosti di predefinita finchè non chiami popup() o una " +"delle qualsiasi funzioni popup*(). Farli diventare visibili per modificarli " +"va bene, ma scompariranno all'esecuzione." #: scene/gui/range.cpp msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." diff --git a/editor/translations/ja.po b/editor/translations/ja.po index d3b2771793..8e82a94abf 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -36,7 +36,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-28 09:51+0000\n" +"PO-Revision-Date: 2020-08-28 13:09+0000\n" "Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" @@ -45,7 +45,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -533,8 +533,7 @@ msgstr "警告:インポートしたアニメーションを編集していま #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." msgstr "" -"アニメーションを作って編集するために AnimationPlayer ノードへのパスを選択して" -"下さい。" +"アニメーションを作って編集するには、 AnimationPlayer ノードを選択して下さい。" #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." @@ -899,7 +898,7 @@ msgstr "'%s' を '%s' から切断" #: editor/connections_dialog.cpp msgid "Disconnect all from signal: '%s'" -msgstr "シグナル '%s' から全てを切断" +msgstr "シグナル '%s' からすべてを切断" #: editor/connections_dialog.cpp msgid "Connect..." @@ -920,7 +919,7 @@ msgstr "接続を編集:" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "シグナル %s から全ての接続を除去してもよろしいですか?" +msgstr "シグナル %s からすべての接続を除去してもよろしいですか?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -928,7 +927,7 @@ msgstr "シグナル" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" -msgstr "このシグナルから全ての接続を除去してもよろしいですか?" +msgstr "このシグナルからすべての接続を除去してもよろしいですか?" #: editor/connections_dialog.cpp msgid "Disconnect All" @@ -1165,6 +1164,16 @@ msgid "Gold Sponsors" msgstr "ゴールドスポンサー" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "シルバードナー" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "ブロンズドナー" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "ミニスポンサー" @@ -1762,7 +1771,7 @@ msgstr "Godot機能プロファイル" #: editor/editor_feature_profile.cpp msgid "Import Profile(s)" -msgstr "プロファイルのインポート" +msgstr "プロファイルをインポート" #: editor/editor_feature_profile.cpp msgid "Export Profile" @@ -2752,11 +2761,11 @@ msgstr "バージョンコントロール" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "バージョン管理のセットアップ" +msgstr "バージョン管理をセットアップ" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "バージョン管理の終了" +msgstr "バージョン管理を終了" #: editor/editor_node.cpp msgid "Export..." @@ -2895,11 +2904,11 @@ msgstr "スクリーンショットはEditor Data / Settingsフォルダに保 #: editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "フルスクリーンの有効化 / 無効化" +msgstr "フルスクリーンを有効化 / 無効化" #: editor/editor_node.cpp msgid "Toggle System Console" -msgstr "システムコンソールの有効化 / 無効化" +msgstr "システムコンソールを有効化 / 無効化" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" @@ -5363,7 +5372,7 @@ msgstr "IKチェーンをクリア" msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." -msgstr "警告:コンテナの子の位置とサイズは、親によってのみ決定されます。" +msgstr "注意:コンテナの子の位置とサイズは、親によってのみ決定されます。" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp @@ -7012,19 +7021,19 @@ msgstr "右インデント" #: editor/plugins/script_text_editor.cpp msgid "Toggle Comment" -msgstr "コメントの切り替え" +msgstr "コメントアウト / 解除" #: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" -msgstr "行を折りたたむ/展開する" +msgstr "行を折りたたむ / 展開" #: editor/plugins/script_text_editor.cpp msgid "Fold All Lines" -msgstr "全ての行を折りたたむ" +msgstr "すべての行を折りたたむ" #: editor/plugins/script_text_editor.cpp msgid "Unfold All Lines" -msgstr "全ての行を展開する" +msgstr "すべての行を展開" #: editor/plugins/script_text_editor.cpp msgid "Clone Down" @@ -7036,7 +7045,7 @@ msgstr "シンボルを補完" #: editor/plugins/script_text_editor.cpp msgid "Evaluate Selection" -msgstr "選択範囲を評価する" +msgstr "選択範囲を評価" #: editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" @@ -7321,11 +7330,11 @@ msgstr "シェーディングなしで表示" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Environment" -msgstr "環境表示" +msgstr "環境を表示" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Gizmos" -msgstr "ギズモ(Gizmo)を表示" +msgstr "ギズモを表示" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Information" @@ -7530,7 +7539,7 @@ msgstr "ギズモ" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Origin" -msgstr "原点の表示" +msgstr "ビューの原点" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Grid" @@ -8340,7 +8349,7 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Region" -msgstr "タイル領域の設定" +msgstr "タイル領域を設定" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create Tile" @@ -8549,7 +8558,7 @@ msgstr "Sampler" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" -msgstr "入力ポートの追加" +msgstr "入力ポートを追加" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add output port" @@ -8581,7 +8590,7 @@ msgstr "出力ポートの削除" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set expression" -msgstr "式の設定" +msgstr "式を設定" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Resize VisualShader node" @@ -9838,7 +9847,7 @@ msgid "" "Remove %d projects from the list?\n" "The project folders' contents won't be modified." msgstr "" -"%d プロジェクトを一覧から削除しますか?\n" +"%d プロジェクトを一覧から削除しますか?\n" "プロジェクトフォルダの内容は変更されません。" #: editor/project_manager.cpp @@ -9846,7 +9855,7 @@ msgid "" "Remove this project from the list?\n" "The project folder's contents won't be modified." msgstr "" -"このプロジェクトを一覧から削除しますか?\n" +"このプロジェクトを一覧から削除しますか?\n" "プロジェクトフォルダの内容は変更されません。" #: editor/project_manager.cpp @@ -9967,11 +9976,11 @@ msgstr "入力アクションイベントの名前を変更する" #: editor/project_settings_editor.cpp msgid "Change Action deadzone" -msgstr "アクションデッドゾーンの変更" +msgstr "アクション デッドゾーンを変更" #: editor/project_settings_editor.cpp msgid "Add Input Action Event" -msgstr "入力アクションイベントを追加" +msgstr "入力アクション イベントを追加" #: editor/project_settings_editor.cpp msgid "All Devices" @@ -10075,7 +10084,7 @@ msgstr "マウスホイールを下に。" #: editor/project_settings_editor.cpp msgid "Add Global Property" -msgstr "グローバルプロパティの追加" +msgstr "グローバルプロパティを追加" #: editor/project_settings_editor.cpp msgid "Select a setting item first!" @@ -10535,9 +10544,8 @@ msgid "Make node as Root" msgstr "ノードをルートにする" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "\"%s\" ノードとその子ノードを削除しますか?" +msgstr "%d ノードとその子ノードすべてを削除しますか?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12235,6 +12243,8 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"ポリゴンベースのシェイプは、CollisionShape2Dノードで使用したり直接編集したり" +"するには適しません。代わりにCollisionPolygon2Dノードを使用してください。" #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 1bfd23080b..75fbad354b 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -1185,6 +1185,16 @@ msgid "Gold Sponsors" msgstr "ოქროს სპონსორები" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "ვერცხლის დონატორები" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "ბრინჯაოს დონატორები" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "მინი სპონსორები" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 23a9e4dded..f9fa96982f 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -18,11 +18,12 @@ # Tilto_ <tilto0822@develable.xyz>, 2020. # Myeongjin Lee <aranet100@gmail.com>, 2020. # Doyun Kwon <caen4516@gmail.com>, 2020. +# Jun Hyung Shin <shmishmi79@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-06-29 15:26+0000\n" +"PO-Revision-Date: 2020-07-31 03:47+0000\n" "Last-Translator: Ch. <ccwpc@hanmail.net>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" @@ -1149,6 +1150,16 @@ msgid "Gold Sponsors" msgstr "골드 스폰서" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "실버 기부자" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "브론즈 기부자" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "미니 스폰서" @@ -7359,7 +7370,6 @@ msgid "XForm Dialog" msgstr "XForm 대화 상자" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "" "Click to toggle between visibility states.\n" "\n" @@ -10461,9 +10471,8 @@ msgid "Make node as Root" msgstr "노드를 루트로 만들기" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "노드 \"%s\"와(과) 자식을 삭제할까요?" +msgstr "%d 개의 노드와 모든 자식 노드를 삭제할까요?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12141,6 +12150,8 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"폴리곤 기반 Shape는 CollisionShape2D에 추가하거나 거기서 편집하게끔 설계하지 " +"않았습니다. 대신 CollisionPolygon2D 노드를 사용하십시오." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 4d3884d5f8..6449d264ad 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -1148,6 +1148,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 2612b441c6..6cf590f8c5 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -1140,6 +1140,16 @@ msgid "Gold Sponsors" msgstr "Zelta Sponsori" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Sudraba Donors" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronzas Donors" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsori" diff --git a/editor/translations/mi.po b/editor/translations/mi.po index 07a3bdae3c..30ac5ce885 100644 --- a/editor/translations/mi.po +++ b/editor/translations/mi.po @@ -1099,6 +1099,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index aa7844d7ab..70be9f00c8 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -1109,6 +1109,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/mr.po b/editor/translations/mr.po index 043d7e643e..a9719278c0 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -1106,6 +1106,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index ad70f291ca..940feeb863 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -7,13 +7,14 @@ # Syaz Amirin <amirin123z@gmail.com>, 2018. # Nafis Ibrahim <thepreciousnafis@gmail.com>, 2018. # Muhammad Hazim bin Hafizalshah <muhammadhazimhafizalshah@gmail.com>, 2020. +# keviinx <keviinx@yahoo.com>, 2020. +# Keviindran Ramachandran <keviinx@yahoo.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-01-27 07:10+0000\n" -"Last-Translator: Muhammad Hazim bin Hafizalshah " -"<muhammadhazimhafizalshah@gmail.com>\n" +"PO-Revision-Date: 2020-09-02 14:35+0000\n" +"Last-Translator: Keviindran Ramachandran <keviinx@yahoo.com>\n" "Language-Team: Malay <https://hosted.weblate.org/projects/godot-engine/godot/" "ms/>\n" "Language: ms\n" @@ -21,119 +22,118 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "" +msgstr "Argumen jenis tidak sah untuk convert(), guna pemalar TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Menjangkakan rentetan dengan panjang 1 (satu watak)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "" +msgstr "Bait tidak mencukupi untuk menyahkod bait, atau format tidak sah." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "Input %i tidak sah (tidak lulus) dalam ungkapan" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "self tidak boleh digunakan kerana instance adalah null (tidak lulus)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "Operan tidak sah untuk pengendali %s, %s dan %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "Indeks bernama tidak sah '%s' untuk jenis asa %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "" +msgstr "Argumen tidak sah untuk binaan '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "Atas panggilan ke '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp msgid "MiB" -msgstr "" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" -msgstr "" +msgstr "Bebas" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "" +msgstr "Seimbang" #: editor/animation_bezier_editor.cpp msgid "Mirror" -msgstr "" +msgstr "Cermin" #: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp msgid "Time:" -msgstr "" +msgstr "Masa:" #: editor/animation_bezier_editor.cpp msgid "Value:" -msgstr "" +msgstr "Nilai:" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" -msgstr "" +msgstr "Masukkan Kunci di Sini" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Duplicate Selected Key(s)" -msgstr "Anim Menduakan Kunci" +msgstr "Gandakan Kunci Terpilih" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" -msgstr "" +msgstr "Padam Kunci Terpilih" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" -msgstr "" +msgstr "Tambah Titik Bezier" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" -msgstr "" +msgstr "Pindah Titik-titik Bezier" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -141,10 +141,9 @@ msgstr "Anim Menduakan Kunci" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Delete Keys" -msgstr "" +msgstr "Anim Padam Kunci" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Change Keyframe Time" msgstr "Anim Ubah Masa Keyframe" @@ -154,7 +153,7 @@ msgstr "Anim Ubah Peralihan" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" -msgstr "Anim Ubah Penukaran" +msgstr "Anim Ubah Perubahan" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" @@ -165,200 +164,192 @@ msgid "Anim Change Call" msgstr "Anim Ubah Panggilan" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Time" -msgstr "Anim Ubah Masa Keyframe" +msgstr "Anim Ubah Pelbagai Masa Keyframe" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transition" -msgstr "Anim Ubah Peralihan" +msgstr "Anim Ubah Pelbagai Peralihan" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transform" -msgstr "Anim Ubah Penukaran" +msgstr "Anim Ubah Pelbagai Penukaran" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Value" -msgstr "Anim Ubah Nilai Keyframe" +msgstr "Anim Ubah Pelbagai Nilai Keyframe" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Call" -msgstr "Anim Ubah Panggilan" +msgstr "Anim Ubah Pelbagai Panggilan" #: editor/animation_track_editor.cpp msgid "Change Animation Length" -msgstr "" +msgstr "Ubah Panjang Animasi" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "Ubah Gelung Animasi" #: editor/animation_track_editor.cpp msgid "Property Track" -msgstr "" +msgstr "Trek Sifat" #: editor/animation_track_editor.cpp msgid "3D Transform Track" -msgstr "" +msgstr "Trek Transformasi 3D" #: editor/animation_track_editor.cpp msgid "Call Method Track" -msgstr "" +msgstr "Trek Panggilan Kaedah" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" -msgstr "" +msgstr "Trek Lengkung Bezier" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" -msgstr "" +msgstr "Trek Main balik Audio" #: editor/animation_track_editor.cpp msgid "Animation Playback Track" -msgstr "" +msgstr "Trek Main Balik Animasi" #: editor/animation_track_editor.cpp msgid "Animation length (frames)" -msgstr "" +msgstr "Panjang animasi (bingkai)" #: editor/animation_track_editor.cpp msgid "Animation length (seconds)" -msgstr "" +msgstr "Panjang animasi (saat)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track" -msgstr "Anim Tambah Trek" +msgstr "Tambah Trek" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "" +msgstr "Gelung Animasi" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "" +msgstr "Fungsi:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "" +msgstr "Klip Audio:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "Klip Anim:" #: editor/animation_track_editor.cpp msgid "Change Track Path" -msgstr "" +msgstr "Tukar Laluan Trek" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." -msgstr "" +msgstr "Hidupkan / matikan trek ini." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "" +msgstr "Kemas kini Mod (Bagaimana sifat ini ditetapkan)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" -msgstr "" +msgstr "Mod Interpolasi" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" -msgstr "" +msgstr "Mod Gelung Balut (Interpolat hujung dengan permulaan pada gelung)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Remove this track." -msgstr "Buang Trek Anim" +msgstr "Keluarkan trek ini." #: editor/animation_track_editor.cpp msgid "Time (s): " -msgstr "" +msgstr "Masa (s): " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "" +msgstr "Togol Trek Diaktifkan" #: editor/animation_track_editor.cpp msgid "Continuous" -msgstr "" +msgstr "Berterusan" #: editor/animation_track_editor.cpp msgid "Discrete" -msgstr "" +msgstr "Diskret" #: editor/animation_track_editor.cpp msgid "Trigger" -msgstr "" +msgstr "Pencetus" #: editor/animation_track_editor.cpp msgid "Capture" -msgstr "" +msgstr "Tangkap" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "Terdekat" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp msgid "Linear" -msgstr "" +msgstr "Linear" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "" +msgstr "Kubik" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" -msgstr "" +msgstr "Kepit Gelung Interp" #: editor/animation_track_editor.cpp msgid "Wrap Loop Interp" -msgstr "" +msgstr "Balut Gelung Interp" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "Masukkan Kunci" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Duplicate Key(s)" -msgstr "Anim Menduakan Kunci" +msgstr "Menduakan Kunci" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" -msgstr "" +msgstr "Padam Kunci" #: editor/animation_track_editor.cpp msgid "Change Animation Update Mode" -msgstr "" +msgstr "Mod Tukar Kemas Kini Animasi" #: editor/animation_track_editor.cpp msgid "Change Animation Interpolation Mode" -msgstr "" +msgstr "Tukar Mod Interpolasi Animasi" #: editor/animation_track_editor.cpp msgid "Change Animation Loop Mode" -msgstr "" +msgstr "Tukar Mod Gelung Animasi" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" -msgstr "Buang Trek Anim" +msgstr "Keluarkan Trek Anim" #: editor/animation_track_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "" +msgstr "Cipta trek BARU untuk %s dan masukkan kunci?" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" -msgstr "" +msgstr "Cipta %d BARU trek dan masukkan kunci?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp #: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp @@ -370,40 +361,39 @@ msgstr "" #: editor/script_create_dialog.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Create" -msgstr "" +msgstr "Cipta" #: editor/animation_track_editor.cpp msgid "Anim Insert" -msgstr "" +msgstr "Masukkan Anim" #: editor/animation_track_editor.cpp msgid "AnimationPlayer can't animate itself, only other players." -msgstr "" +msgstr "AnimationPlayer tidak animasikan dirinya sendiri, hanya pemain lain." #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" -msgstr "" +msgstr "Anim Cipta & Masukkan" #: editor/animation_track_editor.cpp msgid "Anim Insert Track & Key" -msgstr "" +msgstr "Anim Masukkan Trek & Kunci" #: editor/animation_track_editor.cpp msgid "Anim Insert Key" -msgstr "" +msgstr "Anim Masukkan Kunci" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Step" -msgstr "Anim Ubah Peralihan" +msgstr "Tukar Langkah Animasi" #: editor/animation_track_editor.cpp msgid "Rearrange Tracks" -msgstr "" +msgstr "Susun semula Trek" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." -msgstr "" +msgstr "Transformasi trek hanya berlaku kepada nod berasaskan Spatial." #: editor/animation_track_editor.cpp msgid "" @@ -412,78 +402,82 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" +"Trek audio hanya boleh ditujukan kepada nod jenis:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "" +msgstr "Trek animasi hanya dapat ditujukan kepada nod AnimationPlayer." #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." msgstr "" +"Pemain animasi tidak boleh animasikan dirinya sendiri, hanya pemain lain." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "Tidak boleh menambah trek baru tanpa satu akar" #: editor/animation_track_editor.cpp msgid "Invalid track for Bezier (no suitable sub-properties)" -msgstr "" +msgstr "Trek tidak sah untuk Bezier (tiada sub-sifat yang sesuai)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Bezier Track" -msgstr "Anim Tambah Trek" +msgstr "Tambah Trek Bezier" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." -msgstr "" +msgstr "Laluan trek tidak sah, maka tidak boleh menambahkan kunci." #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "Trek bukan jenis Spatial, tidak boleh memasukkan kunci" #: editor/animation_track_editor.cpp msgid "Add Transform Track Key" -msgstr "" +msgstr "Tambah Kunci Trek Transformasi" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track Key" -msgstr "Anim Tambah Trek" +msgstr "Tambah Kunci Trek" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." -msgstr "" +msgstr "Laluan trek tidak sah, maka tidak boleh menambahkan kunci kaedah." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Method Track Key" -msgstr "Anim Tambah Trek" +msgstr "Tambah Kunci Trek Kaedah" #: editor/animation_track_editor.cpp msgid "Method not found in object: " -msgstr "" +msgstr "Kaedah tidak ditemui dalam objek: " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" -msgstr "" +msgstr "Kunci Gerak Anim" #: editor/animation_track_editor.cpp msgid "Clipboard is empty" -msgstr "" +msgstr "Papan klip kosong" #: editor/animation_track_editor.cpp msgid "Paste Tracks" -msgstr "" +msgstr "Tampal Trek" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" -msgstr "" +msgstr "Kunci Skala Anim" #: editor/animation_track_editor.cpp msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "" +"Pilihan ini tidak berfungsi untuk pengeditan Bezier, kerana ia hanya satu " +"trek." #: editor/animation_track_editor.cpp msgid "" @@ -497,38 +491,47 @@ msgid "" "Alternatively, use an import preset that imports animations to separate " "files." msgstr "" +"Animasi ini tergolong dalam adegan yang diimport, maka perubahan untuk trek " +"yang diimport tidak akan disimpan.\n" +"\n" +"Untuk memberikan keupayaan untuk menambah trek tersuai, navigasi ke tetapan " +"import adegan dan tetapkan\n" +"\"Animasi > Simpanan\" ke \"Fail\", aktifkan \"Animasi > Simpan Trek Tersuai" +"\", kemudian import semula.\n" +"Sebagai alternatif, gunakan pratetap import yang mengimportkan animasi untuk " +"memisahkan fail." #: editor/animation_track_editor.cpp msgid "Warning: Editing imported animation" -msgstr "" +msgstr "Amaran: Mengedit animasi yang diimport" #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" +msgstr "Pilih nod AnimationPlayer untuk mencipta dan mengedit animasi." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." -msgstr "" +msgstr "Hanya tunjukkan trek dari nod yang dipilih di pokok." #: editor/animation_track_editor.cpp msgid "Group tracks by node or display them as plain list." -msgstr "" +msgstr "Kumpulkan trek mengikut nod atau memaparkannya sebagai senarai biasa." #: editor/animation_track_editor.cpp msgid "Snap:" -msgstr "" +msgstr "Tangkap:" #: editor/animation_track_editor.cpp msgid "Animation step value." -msgstr "" +msgstr "Nilai langkah animasi." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Saat" #: editor/animation_track_editor.cpp msgid "FPS" -msgstr "" +msgstr "FPS" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -538,108 +541,107 @@ msgstr "" #: editor/project_settings_editor.cpp editor/property_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Edit" -msgstr "" +msgstr "Edit" #: editor/animation_track_editor.cpp msgid "Animation properties." -msgstr "" +msgstr "Sifat animasi." #: editor/animation_track_editor.cpp msgid "Copy Tracks" -msgstr "" +msgstr "Salin Trek" #: editor/animation_track_editor.cpp msgid "Scale Selection" -msgstr "" +msgstr "Pemilihan Skala" #: editor/animation_track_editor.cpp msgid "Scale From Cursor" -msgstr "" +msgstr "Skala Dari Kursor" #: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" -msgstr "" +msgstr "Menduakan Pilihan" #: editor/animation_track_editor.cpp msgid "Duplicate Transposed" -msgstr "" +msgstr "Menduakan Pindahan" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Delete Selection" -msgstr "Semua Pilihan" +msgstr "Padam Pilihan" #: editor/animation_track_editor.cpp msgid "Go to Next Step" -msgstr "" +msgstr "Pergi ke Langkah Seterusnya" #: editor/animation_track_editor.cpp msgid "Go to Previous Step" -msgstr "" +msgstr "Pergi ke Langkah Sebelumnya" #: editor/animation_track_editor.cpp msgid "Optimize Animation" -msgstr "" +msgstr "Optimumkan Animasi" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation" -msgstr "" +msgstr "Bersihkan Animasi" #: editor/animation_track_editor.cpp msgid "Pick the node that will be animated:" -msgstr "" +msgstr "Pilih nod yang akan dianimasikan:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "Guna Lengkung Bezier" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" -msgstr "" +msgstr "Pengoptimum Anim." #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" -msgstr "" +msgstr "Max. Ralat Linear:" #: editor/animation_track_editor.cpp msgid "Max. Angular Error:" -msgstr "" +msgstr "Max. Ralat Sudut:" #: editor/animation_track_editor.cpp msgid "Max Optimizable Angle:" -msgstr "" +msgstr "Sudut Maksimum yang Boleh Dioptimumkan:" #: editor/animation_track_editor.cpp msgid "Optimize" -msgstr "" +msgstr "Mengoptimumkan" #: editor/animation_track_editor.cpp msgid "Remove invalid keys" -msgstr "" +msgstr "Keluarkan kunci yang tidak sah" #: editor/animation_track_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "" +msgstr "Keluarkan trek yang tidak boleh diselesaikan dan kosong" #: editor/animation_track_editor.cpp msgid "Clean-up all animations" -msgstr "" +msgstr "Bersihkan semua animasi" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation(s) (NO UNDO!)" -msgstr "" +msgstr "Bersihkan Animasi (TIDAK BOLEH BUAT ASAL!)" #: editor/animation_track_editor.cpp msgid "Clean-Up" -msgstr "" +msgstr "Bersihkan" #: editor/animation_track_editor.cpp msgid "Scale Ratio:" -msgstr "" +msgstr "Nisbah Skala:" #: editor/animation_track_editor.cpp msgid "Select Tracks to Copy" -msgstr "" +msgstr "Pilih Trek untuk Disalin" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_properties.cpp @@ -648,146 +650,146 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" -msgstr "" +msgstr "Salin" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select All/None" -msgstr "Semua Pilihan" +msgstr "Pilih Semua/Tiada" #: editor/animation_track_editor_plugins.cpp -#, fuzzy msgid "Add Audio Track Clip" -msgstr "Anim Tambah Trek" +msgstr "Tambah Klip Trek Audio" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Tukar Klip Trek Audio Mula Offset" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Tukar Klip Audio Trek Hujung Offset" #: editor/array_property_edit.cpp msgid "Resize Array" -msgstr "" +msgstr "Ubah saiz Array" #: editor/array_property_edit.cpp msgid "Change Array Value Type" -msgstr "" +msgstr "Tukar Jenis Nilai Array" #: editor/array_property_edit.cpp msgid "Change Array Value" -msgstr "" +msgstr "Tukar Nilai Array" #: editor/code_editor.cpp msgid "Go to Line" -msgstr "" +msgstr "Pergi ke Baris" #: editor/code_editor.cpp msgid "Line Number:" -msgstr "" +msgstr "Nombor Baris:" #: editor/code_editor.cpp msgid "%d replaced." -msgstr "" +msgstr "%d telah diganti." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." -msgstr "" +msgstr "%d padan." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d matches." -msgstr "" +msgstr "%d padan." #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Match Case" -msgstr "" +msgstr "Kes Padan" #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Whole Words" -msgstr "" +msgstr "Seluruh Perkataan" #: editor/code_editor.cpp editor/rename_dialog.cpp msgid "Replace" -msgstr "" +msgstr "Ganti" #: editor/code_editor.cpp msgid "Replace All" -msgstr "" +msgstr "Ganti Semua" #: editor/code_editor.cpp msgid "Selection Only" -msgstr "" +msgstr "Pilihan Sahaja" #: editor/code_editor.cpp editor/plugins/script_text_editor.cpp #: editor/plugins/text_editor.cpp msgid "Standard" -msgstr "" +msgstr "Piawai" #: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp msgid "Toggle Scripts Panel" -msgstr "" +msgstr "Togol Panel Skrip" #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" -msgstr "" +msgstr "Zum Masuk" #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" -msgstr "" +msgstr "Zum Keluar" #: editor/code_editor.cpp msgid "Reset Zoom" -msgstr "" +msgstr "Set Semula Zum" #: editor/code_editor.cpp msgid "Warnings" -msgstr "" +msgstr "Amaran" #: editor/code_editor.cpp msgid "Line and column numbers." -msgstr "" +msgstr "Nombor baris dan lajur." #: editor/connections_dialog.cpp msgid "Method in target node must be specified." -msgstr "" +msgstr "Kaedah dalam nod sasaran mesti ditentukan." #: editor/connections_dialog.cpp msgid "Method name must be a valid identifier." -msgstr "" +msgstr "Nama kaedah mestilah pengecam yang sah." #: editor/connections_dialog.cpp msgid "" "Target method not found. Specify a valid method or attach a script to the " "target node." msgstr "" +"Kaedah sasaran tidak dijumpai. Tentukan kaedah yang sah atau lampirkan skrip " +"ke nod sasaran." #: editor/connections_dialog.cpp msgid "Connect to Node:" -msgstr "" +msgstr "Sambung ke Nod:" #: editor/connections_dialog.cpp msgid "Connect to Script:" -msgstr "" +msgstr "Sambung ke Skrip:" #: editor/connections_dialog.cpp msgid "From Signal:" -msgstr "" +msgstr "Dari Isyarat:" #: editor/connections_dialog.cpp msgid "Scene does not contain any script." -msgstr "" +msgstr "Adegan tidak mengandungi sebarang skrip." #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp msgid "Add" -msgstr "" +msgstr "Tambah" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/editor_feature_profile.cpp editor/groups_editor.cpp @@ -798,44 +800,46 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" -msgstr "" +msgstr "Keluarkan" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "" +msgstr "Tambah Hujah Panggilan Tambahan:" #: editor/connections_dialog.cpp msgid "Extra Call Arguments:" -msgstr "" +msgstr "Hujah Panggilan Tambahan:" #: editor/connections_dialog.cpp msgid "Receiver Method:" -msgstr "" +msgstr "Kaedah Penerima:" #: editor/connections_dialog.cpp msgid "Advanced" -msgstr "" +msgstr "Lanjutan" #: editor/connections_dialog.cpp msgid "Deferred" -msgstr "" +msgstr "Ditangguhkan" #: editor/connections_dialog.cpp msgid "" "Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" +"Mencegah isyarat, menyimpannya dalam barisan dan hanya menyalakannya pada " +"waktu terbiar." #: editor/connections_dialog.cpp msgid "Oneshot" -msgstr "" +msgstr "Oneshot" #: editor/connections_dialog.cpp msgid "Disconnects the signal after its first emission." -msgstr "" +msgstr "Putuskan isyarat selepas pelepasan pertama." #: editor/connections_dialog.cpp msgid "Cannot connect signal" -msgstr "" +msgstr "Tidak dapat menyambungkan isyarat" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp @@ -849,101 +853,104 @@ msgstr "" #: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Close" -msgstr "" +msgstr "Tutup" #: editor/connections_dialog.cpp msgid "Connect" -msgstr "" +msgstr "Sambung" #: editor/connections_dialog.cpp msgid "Signal:" -msgstr "" +msgstr "Isyarat:" #: editor/connections_dialog.cpp msgid "Connect '%s' to '%s'" -msgstr "" +msgstr "Sambungkan '% s' ke '% s'" #: editor/connections_dialog.cpp msgid "Disconnect '%s' from '%s'" -msgstr "" +msgstr "Putuskan sambungan '% s' dari '% s'" #: editor/connections_dialog.cpp msgid "Disconnect all from signal: '%s'" -msgstr "" +msgstr "Putuskan semua sambungan dari isyarat: '% s'" #: editor/connections_dialog.cpp msgid "Connect..." -msgstr "" +msgstr "Sambung ..." #: editor/connections_dialog.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Disconnect" -msgstr "" +msgstr "Putuskan sambungan" #: editor/connections_dialog.cpp msgid "Connect a Signal to a Method" -msgstr "" +msgstr "Sambungkan Isyarat ke Kaedah" #: editor/connections_dialog.cpp msgid "Edit Connection:" -msgstr "" +msgstr "Edit Sambungan:" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" +"Adakah anda pasti anda mahu mengeluarkan semua sambungan dari isyarat \"% s" +"\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" -msgstr "" +msgstr "Isyarat" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" msgstr "" +"Adakah anda pasti anda mahu mengeluarkan semua sambungan dari isyarat ini?" #: editor/connections_dialog.cpp msgid "Disconnect All" -msgstr "" +msgstr "Putuskan Semua" #: editor/connections_dialog.cpp msgid "Edit..." -msgstr "" +msgstr "Edit..." #: editor/connections_dialog.cpp msgid "Go To Method" -msgstr "" +msgstr "Pergi ke Kaedah" #: editor/create_dialog.cpp msgid "Change %s Type" -msgstr "" +msgstr "Ubah Jenis %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp msgid "Change" -msgstr "" +msgstr "Ubah" #: editor/create_dialog.cpp msgid "Create New %s" -msgstr "" +msgstr "Cipta %s Baru" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp msgid "Favorites:" -msgstr "" +msgstr "Kegemaran:" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp msgid "Recent:" -msgstr "" +msgstr "Terkini:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" -msgstr "" +msgstr "Cari:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Matches:" -msgstr "" +msgstr "Padanan:" #: editor/create_dialog.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp @@ -951,57 +958,61 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" -msgstr "" +msgstr "Keterangan:" #: editor/dependency_editor.cpp msgid "Search Replacement For:" -msgstr "" +msgstr "Cari Penggantian Untuk:" #: editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "" +msgstr "Kebergantungan Untuk:" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" "Changes will only take effect when reloaded." msgstr "" +"Adegan '% s' kini sedang diedit.\n" +"Perubahan hanya akan berlaku apabila dimuat semula." #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" "Changes will only take effect when reloaded." msgstr "" +"Sumber '% s' sedang digunakan.\n" +"Perubahan hanya akan berlaku apabila dimuat semula." #: editor/dependency_editor.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Dependencies" -msgstr "" +msgstr "Kebergantungan" #: editor/dependency_editor.cpp msgid "Resource" -msgstr "" +msgstr "Sumber" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp #: editor/project_manager.cpp editor/project_settings_editor.cpp msgid "Path" -msgstr "" +msgstr "Laluan" #: editor/dependency_editor.cpp msgid "Dependencies:" -msgstr "" +msgstr "Kebergantungan:" #: editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "" +msgstr "Perbaiki Pecah" #: editor/dependency_editor.cpp msgid "Dependency Editor" -msgstr "" +msgstr "Editor Ketergantungan" #: editor/dependency_editor.cpp msgid "Search Replacement Resource:" -msgstr "" +msgstr "Cari Penggantian Sumber:" #: editor/dependency_editor.cpp editor/editor_file_dialog.cpp #: editor/editor_help_search.cpp editor/editor_node.cpp @@ -1011,15 +1022,15 @@ msgstr "" #: modules/visual_script/visual_script_property_selector.cpp #: scene/gui/file_dialog.cpp msgid "Open" -msgstr "" +msgstr "Buka" #: editor/dependency_editor.cpp msgid "Owners Of:" -msgstr "" +msgstr "Pemilik:" #: editor/dependency_editor.cpp msgid "Remove selected files from the project? (Can't be restored)" -msgstr "" +msgstr "Alih keluar fail terpilih dari projek? (Tidak dapat dipulihkan)" #: editor/dependency_editor.cpp msgid "" @@ -1027,46 +1038,49 @@ msgid "" "work.\n" "Remove them anyway? (no undo)" msgstr "" +"Fail yang akan dikeluarkan diperlukan oleh sumber lain agar dapat " +"berfungsi.\n" +"Masih mahu keluarkan fail tersebut? (tidak boleh buat asal)" #: editor/dependency_editor.cpp msgid "Cannot remove:" -msgstr "" +msgstr "Tidak boleh dialih keluar:" #: editor/dependency_editor.cpp msgid "Error loading:" -msgstr "" +msgstr "Ralat memuatkan:" #: editor/dependency_editor.cpp msgid "Load failed due to missing dependencies:" -msgstr "" +msgstr "Gagal memuat kerana kebergantungan hilang:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" -msgstr "" +msgstr "Buka Bagaimanapun" #: editor/dependency_editor.cpp msgid "Which action should be taken?" -msgstr "" +msgstr "Tindakan apa yang harus diambil?" #: editor/dependency_editor.cpp msgid "Fix Dependencies" -msgstr "" +msgstr "Perbaiki Kebergantungan" #: editor/dependency_editor.cpp msgid "Errors loading!" -msgstr "" +msgstr "Ralat memuatkan!" #: editor/dependency_editor.cpp msgid "Permanently delete %d item(s)? (No undo!)" -msgstr "" +msgstr "Padamkan objek %d secara kekal? (Tidak boleh dibuat asal!)" #: editor/dependency_editor.cpp msgid "Show Dependencies" -msgstr "" +msgstr "Tunjuk Kebergantungan" #: editor/dependency_editor.cpp msgid "Orphan Resource Explorer" -msgstr "" +msgstr "Penjelajah Sumber Yatim" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp @@ -1074,79 +1088,89 @@ msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp #: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" -msgstr "" +msgstr "Padam" #: editor/dependency_editor.cpp msgid "Owns" -msgstr "" +msgstr "Memiliki" #: editor/dependency_editor.cpp msgid "Resources Without Explicit Ownership:" -msgstr "" +msgstr "Sumber Tanpa Hak Milik Eksplisit:" #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" -msgstr "" +msgstr "Tukar Kunci Kamus" #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Value" -msgstr "" +msgstr "Tukar Nilai Kamus" #: editor/editor_about.cpp msgid "Thanks from the Godot community!" -msgstr "" +msgstr "Terima kasih dari komuniti Godot!" #: editor/editor_about.cpp msgid "Godot Engine contributors" -msgstr "" +msgstr "Penyumbang Enjin Godot" #: editor/editor_about.cpp msgid "Project Founders" -msgstr "" +msgstr "Pengasas Projek" #: editor/editor_about.cpp msgid "Lead Developer" -msgstr "" +msgstr "Pemaju Utama" #: editor/editor_about.cpp msgid "Project Manager " -msgstr "" +msgstr "Pengurus Projek " #: editor/editor_about.cpp msgid "Developers" -msgstr "" +msgstr "Pemaju" #: editor/editor_about.cpp msgid "Authors" -msgstr "" +msgstr "Pengarang" #: editor/editor_about.cpp msgid "Platinum Sponsors" -msgstr "" +msgstr "Penaja Platinum" #: editor/editor_about.cpp msgid "Gold Sponsors" -msgstr "" +msgstr "Penaja Emas" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Penderma Perak" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Penderma Gangsa" #: editor/editor_about.cpp msgid "Mini Sponsors" -msgstr "" +msgstr "Penaja Mini" #: editor/editor_about.cpp msgid "Gold Donors" -msgstr "" +msgstr "Penderma Emas" #: editor/editor_about.cpp msgid "Silver Donors" -msgstr "" +msgstr "Penderma Perak" #: editor/editor_about.cpp msgid "Bronze Donors" -msgstr "" +msgstr "Penderma Gangsa" #: editor/editor_about.cpp msgid "Donors" -msgstr "" +msgstr "Penderma" #: editor/editor_about.cpp msgid "License" @@ -1154,7 +1178,7 @@ msgstr "Lesen" #: editor/editor_about.cpp msgid "Third-party Licenses" -msgstr "" +msgstr "Lesen Pihak Ketiga" #: editor/editor_about.cpp msgid "" @@ -1163,389 +1187,398 @@ msgid "" "is an exhaustive list of all such third-party components with their " "respective copyright statements and license terms." msgstr "" +"Enjin Godot bergantung kepada beberapa perpustakaan sumber terbuka dan bebas " +"pihak ketiga, semuanya serasi dengan syarat-syarat lesen MITnya. Berikut " +"adalah senarai lengkap semua komponen pihak ketiga tersebut dengan " +"pernyataan hak cipta dan syarat lesen masing-masing." #: editor/editor_about.cpp msgid "All Components" -msgstr "" +msgstr "Semua Komponen" #: editor/editor_about.cpp msgid "Components" -msgstr "" +msgstr "Komponen" #: editor/editor_about.cpp msgid "Licenses" -msgstr "" +msgstr "Lesen" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Error opening package file, not in ZIP format." -msgstr "" +msgstr "Ralat semasa membuka fail pakej, bukan dalam format ZIP." #: editor/editor_asset_installer.cpp msgid "%s (Already Exists)" -msgstr "" +msgstr "%s (Sudah Wujud)" #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" -msgstr "" +msgstr "Nyahmampatkan Aset" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "The following files failed extraction from package:" -msgstr "" +msgstr "Fail berikut gagal diekstrak dari pakej:" #: editor/editor_asset_installer.cpp msgid "And %s more files." -msgstr "" +msgstr "Dan sebanyak %s fail." #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Package installed successfully!" -msgstr "" +msgstr "Pakej berjaya dipasang!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Success!" -msgstr "" +msgstr "Berjaya!" #: editor/editor_asset_installer.cpp msgid "Package Contents:" -msgstr "" +msgstr "Kandungan Pakej:" #: editor/editor_asset_installer.cpp editor/editor_node.cpp msgid "Install" -msgstr "" +msgstr "Pasang" #: editor/editor_asset_installer.cpp msgid "Package Installer" -msgstr "" +msgstr "Pemasang Pakej" #: editor/editor_audio_buses.cpp msgid "Speakers" -msgstr "" +msgstr "Pembesar suara" #: editor/editor_audio_buses.cpp msgid "Add Effect" -msgstr "" +msgstr "Tambah Kesan" #: editor/editor_audio_buses.cpp msgid "Rename Audio Bus" -msgstr "" +msgstr "Namakan Semula Bas Audio" #: editor/editor_audio_buses.cpp msgid "Change Audio Bus Volume" -msgstr "" +msgstr "Tukar Kelantangan Bas Audio" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Solo" -msgstr "" +msgstr "Togol Bas Audio Solo" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Mute" -msgstr "" +msgstr "Togol Senyap Bas Audio" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Bypass Effects" -msgstr "" +msgstr "Togol Kesan Pintasan Bas Audio" #: editor/editor_audio_buses.cpp msgid "Select Audio Bus Send" -msgstr "" +msgstr "Pilih Hantar Bas Audio" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus Effect" -msgstr "" +msgstr "Tambah Kesan Bas Audio" #: editor/editor_audio_buses.cpp msgid "Move Bus Effect" -msgstr "" +msgstr "Alih Kesan Bas" #: editor/editor_audio_buses.cpp msgid "Delete Bus Effect" -msgstr "" +msgstr "Padam Kesan Bas" #: editor/editor_audio_buses.cpp msgid "Drag & drop to rearrange." -msgstr "" +msgstr "Seret & lepas untuk menyusun semula." #: editor/editor_audio_buses.cpp msgid "Solo" -msgstr "" +msgstr "Solo" #: editor/editor_audio_buses.cpp msgid "Mute" -msgstr "" +msgstr "Bisu" #: editor/editor_audio_buses.cpp msgid "Bypass" -msgstr "" +msgstr "Pintas" #: editor/editor_audio_buses.cpp msgid "Bus options" -msgstr "" +msgstr "Pilihan bas" #: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Duplicate" -msgstr "" +msgstr "Pendua" #: editor/editor_audio_buses.cpp msgid "Reset Volume" -msgstr "" +msgstr "Tetapkan Semula Kelantangan" #: editor/editor_audio_buses.cpp msgid "Delete Effect" -msgstr "" +msgstr "Padam Kesan" #: editor/editor_audio_buses.cpp msgid "Audio" -msgstr "" +msgstr "Audio" #: editor/editor_audio_buses.cpp msgid "Add Audio Bus" -msgstr "" +msgstr "Tambah Bas Audio" #: editor/editor_audio_buses.cpp msgid "Master bus can't be deleted!" -msgstr "" +msgstr "Bas induk tidak boleh dipadamkan!" #: editor/editor_audio_buses.cpp msgid "Delete Audio Bus" -msgstr "" +msgstr "Padam Bas Audio" #: editor/editor_audio_buses.cpp msgid "Duplicate Audio Bus" -msgstr "" +msgstr "Pendua Bas Audio" #: editor/editor_audio_buses.cpp msgid "Reset Bus Volume" -msgstr "" +msgstr "Tetapkan Semula Kelantangan Bas" #: editor/editor_audio_buses.cpp msgid "Move Audio Bus" -msgstr "" +msgstr "Pindah Bas Audio" #: editor/editor_audio_buses.cpp msgid "Save Audio Bus Layout As..." -msgstr "" +msgstr "Simpan Susun Atur Bas Audio Sebagai..." #: editor/editor_audio_buses.cpp msgid "Location for New Layout..." -msgstr "" +msgstr "Lokasi untuk Susun Atur Baru..." #: editor/editor_audio_buses.cpp msgid "Open Audio Bus Layout" -msgstr "" +msgstr "Buka Susun Atur Bas Audio" #: editor/editor_audio_buses.cpp msgid "There is no '%s' file." -msgstr "" +msgstr "Tiada fail '%s'." #: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp msgid "Layout" -msgstr "" +msgstr "Susun atur" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." -msgstr "" +msgstr "Fail tidak sah, bukan susun atur bas audio." #: editor/editor_audio_buses.cpp msgid "Error saving file: %s" -msgstr "" +msgstr "Ralat semasa menyimpan fail: %s" #: editor/editor_audio_buses.cpp msgid "Add Bus" -msgstr "" +msgstr "Tambah Bas" #: editor/editor_audio_buses.cpp msgid "Add a new Audio Bus to this layout." -msgstr "" +msgstr "Tambah Bas Audio baru ke susun atur ini." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp #: editor/script_create_dialog.cpp msgid "Load" -msgstr "" +msgstr "Memuatkan" #: editor/editor_audio_buses.cpp msgid "Load an existing Bus Layout." -msgstr "" +msgstr "Muatkan Susun Atur Bas yang sedia ada." #: editor/editor_audio_buses.cpp msgid "Save As" -msgstr "" +msgstr "Simpan sebagai" #: editor/editor_audio_buses.cpp msgid "Save this Bus Layout to a file." -msgstr "" +msgstr "Simpan Susun Atur Bas ini ke fail." #: editor/editor_audio_buses.cpp editor/import_dock.cpp msgid "Load Default" -msgstr "" +msgstr "Muatkan Lalai" #: editor/editor_audio_buses.cpp msgid "Load the default Bus Layout." -msgstr "" +msgstr "Muatkan Susun Atur Bas lalai." #: editor/editor_audio_buses.cpp msgid "Create a new Bus Layout." -msgstr "" +msgstr "Cipta Susun Atur Bas baru." #: editor/editor_autoload_settings.cpp msgid "Invalid name." -msgstr "" +msgstr "Nama tidak sah." #: editor/editor_autoload_settings.cpp msgid "Valid characters:" -msgstr "" +msgstr "Watak yang sah:" #: editor/editor_autoload_settings.cpp msgid "Must not collide with an existing engine class name." -msgstr "" +msgstr "Tidak boleh bertembung dengan nama kelas engin yang telah wujud." #: editor/editor_autoload_settings.cpp msgid "Must not collide with an existing built-in type name." msgstr "" +"Tidak boleh bertembung dengan nama jenis terbina dalam yang telah wujud." #: editor/editor_autoload_settings.cpp msgid "Must not collide with an existing global constant name." -msgstr "" +msgstr "Tidak boleh bertembung dengan nama pemalar global yang telah wujud." #: editor/editor_autoload_settings.cpp msgid "Keyword cannot be used as an autoload name." -msgstr "" +msgstr "Kata kunci tidak boleh digunakan sebagai nama autoload." #: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" -msgstr "" +msgstr "Autoload '%s' sudah wujud!" #: editor/editor_autoload_settings.cpp msgid "Rename Autoload" -msgstr "" +msgstr "Namakan Semula Autoload" #: editor/editor_autoload_settings.cpp msgid "Toggle AutoLoad Globals" -msgstr "" +msgstr "Togol Global Autoload" #: editor/editor_autoload_settings.cpp msgid "Move Autoload" -msgstr "" +msgstr "Pindah Autoload" #: editor/editor_autoload_settings.cpp msgid "Remove Autoload" -msgstr "" +msgstr "Keluarkan Autoload" #: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp msgid "Enable" -msgstr "" +msgstr "Aktifkan" #: editor/editor_autoload_settings.cpp msgid "Rearrange Autoloads" -msgstr "" +msgstr "Susun Semula Autoload" #: editor/editor_autoload_settings.cpp msgid "Can't add autoload:" -msgstr "" +msgstr "Tidak boleh menambahkan autoload:" #: editor/editor_autoload_settings.cpp msgid "Add AutoLoad" -msgstr "" +msgstr "Tambah AutoLoad" #: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/script_create_dialog.cpp scene/gui/file_dialog.cpp msgid "Path:" -msgstr "" +msgstr "Laluan:" #: editor/editor_autoload_settings.cpp msgid "Node Name:" -msgstr "" +msgstr "Nama Nod:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp #: editor/editor_profiler.cpp editor/project_manager.cpp #: editor/settings_config_dialog.cpp msgid "Name" -msgstr "" +msgstr "Nama" #: editor/editor_autoload_settings.cpp msgid "Singleton" -msgstr "" +msgstr "Singleton" #: editor/editor_data.cpp editor/inspector_dock.cpp msgid "Paste Params" -msgstr "" +msgstr "Tampal Param" #: editor/editor_data.cpp msgid "Updating Scene" -msgstr "" +msgstr "Mengemaskini Adegan" #: editor/editor_data.cpp msgid "Storing local changes..." -msgstr "" +msgstr "Menyimpan perubahan tempatan..." #: editor/editor_data.cpp msgid "Updating scene..." -msgstr "" +msgstr "Mengemaskini adegan..." #: editor/editor_data.cpp editor/editor_properties.cpp msgid "[empty]" -msgstr "" +msgstr "[kosong]" #: editor/editor_data.cpp msgid "[unsaved]" -msgstr "" +msgstr "[tidak disimpan]" #: editor/editor_dir_dialog.cpp msgid "Please select a base directory first." -msgstr "" +msgstr "Sila pilih direktori asas terlebih dahulu." #: editor/editor_dir_dialog.cpp msgid "Choose a Directory" -msgstr "" +msgstr "Pilih Direktori" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp editor/project_manager.cpp #: scene/gui/file_dialog.cpp msgid "Create Folder" -msgstr "" +msgstr "Cipta Folder" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp #: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp msgid "Name:" -msgstr "" +msgstr "Nama:" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp msgid "Could not create folder." -msgstr "" +msgstr "Tidak dapat mencipta folder." #: editor/editor_dir_dialog.cpp msgid "Choose" -msgstr "" +msgstr "Pilih" #: editor/editor_export.cpp msgid "Storing File:" -msgstr "" +msgstr "Menyimpan Fail:" #: editor/editor_export.cpp msgid "No export template found at the expected path:" -msgstr "" +msgstr "Tiada templat eksport ditemui di laluan yang dijangkakan:" #: editor/editor_export.cpp msgid "Packing" -msgstr "" +msgstr "Pembungkusan" #: editor/editor_export.cpp msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"Platform sasaran memerlukan pemampatan tekstur 'ETC' untuk GLES2. Aktifkan " +"'Import Etc' dalam Tetapan Projek." #: editor/editor_export.cpp msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" +"Platform sasaran memerlukan pemampatan tekstur 'ETC2' untuk GLES3. Aktifkan " +"'Import Etc 2' dalam Tetapan Projek." #: editor/editor_export.cpp msgid "" @@ -1554,508 +1587,519 @@ msgid "" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" +"Platform sasaran memerlukan pemampatan tekstur 'ETC' untuk sandaran pemandu " +"ke GLES2.\n" +"Aktifkan 'Import Etc' dalam Tetapan Projek, atau nyahaktifkan 'Driver " +"Fallback Enabled'." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp msgid "Custom debug template not found." -msgstr "" +msgstr "Templat nyahpepijat tersuai tidak dijumpai." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp msgid "Custom release template not found." -msgstr "" +msgstr "Templat pelepasan tersuai tidak dijumpai." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" -msgstr "" +msgstr "Fail templat tidak dijumpai:" #: editor/editor_export.cpp msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "" +"Pada eksport 32-bit PCK terbenam tidak boleh lebih besar daripada 4 GiB." #: editor/editor_feature_profile.cpp msgid "3D Editor" -msgstr "" +msgstr "Editor 3D" #: editor/editor_feature_profile.cpp msgid "Script Editor" -msgstr "" +msgstr "Editor Skrip" #: editor/editor_feature_profile.cpp msgid "Asset Library" -msgstr "" +msgstr "Perpustakaan Aset" #: editor/editor_feature_profile.cpp msgid "Scene Tree Editing" -msgstr "" +msgstr "Penyuntingan Pokok Adegan" #: editor/editor_feature_profile.cpp msgid "Import Dock" -msgstr "" +msgstr "Import Dok" #: editor/editor_feature_profile.cpp msgid "Node Dock" -msgstr "" +msgstr "Dok nod" #: editor/editor_feature_profile.cpp msgid "FileSystem and Import Docks" -msgstr "" +msgstr "Sistem Fail dan Dok Import" #: editor/editor_feature_profile.cpp msgid "Erase profile '%s'? (no undo)" -msgstr "" +msgstr "Padamkan profil '%s'? (tidak boleh buat asal)" #: editor/editor_feature_profile.cpp msgid "Profile must be a valid filename and must not contain '.'" -msgstr "" +msgstr "Profil mestilah nama fail yang sah dan tidak boleh mengandungi '.'" #: editor/editor_feature_profile.cpp msgid "Profile with this name already exists." -msgstr "" +msgstr "Profil dengan nama ini sudah wujud." #: editor/editor_feature_profile.cpp msgid "(Editor Disabled, Properties Disabled)" -msgstr "" +msgstr "(Editor Dinyahaktifkan, Ciri-ciri Dinyahaktifkan)" #: editor/editor_feature_profile.cpp msgid "(Properties Disabled)" -msgstr "" +msgstr "(Ciri-ciri dinyahaktif)" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "(Editor Disabled)" -msgstr "Tidak Aktif" +msgstr "(Editor Dinyahaktif)" #: editor/editor_feature_profile.cpp msgid "Class Options:" -msgstr "" +msgstr "Pilihan Kelas:" #: editor/editor_feature_profile.cpp msgid "Enable Contextual Editor" -msgstr "" +msgstr "Aktifkan Editor Kontekstual" #: editor/editor_feature_profile.cpp msgid "Enabled Properties:" -msgstr "" +msgstr "Ciri-ciri Diaktifkan:" #: editor/editor_feature_profile.cpp msgid "Enabled Features:" -msgstr "" +msgstr "Ciri Diaktifkan:" #: editor/editor_feature_profile.cpp msgid "Enabled Classes:" -msgstr "" +msgstr "Kelas Diaktifkan:" #: editor/editor_feature_profile.cpp msgid "File '%s' format is invalid, import aborted." -msgstr "" +msgstr "Format fail '%s' tidak sah, import dibatalkan." #: editor/editor_feature_profile.cpp msgid "" "Profile '%s' already exists. Remove it first before importing, import " "aborted." msgstr "" +"Profil '%s' sudah wujud. Keluarkannya terlebih dahulu sebelum mengimport, " +"import dibatalkan." #: editor/editor_feature_profile.cpp msgid "Error saving profile to path: '%s'." -msgstr "" +msgstr "Ralat menyimpan profil ke laluan: '%s'." #: editor/editor_feature_profile.cpp msgid "Unset" -msgstr "" +msgstr "Nyahtetap" #: editor/editor_feature_profile.cpp msgid "Current Profile:" -msgstr "" +msgstr "Profil Semasa:" #: editor/editor_feature_profile.cpp msgid "Make Current" -msgstr "" +msgstr "Buat Semasa" #: editor/editor_feature_profile.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "New" -msgstr "" +msgstr "Baru" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "" +msgstr "Import" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" -msgstr "" +msgstr "Eksport" #: editor/editor_feature_profile.cpp msgid "Available Profiles:" -msgstr "" +msgstr "Profil yang ada:" #: editor/editor_feature_profile.cpp msgid "Class Options" -msgstr "" +msgstr "Pilihan Kelas" #: editor/editor_feature_profile.cpp msgid "New profile name:" -msgstr "" +msgstr "Nama profil baru:" #: editor/editor_feature_profile.cpp msgid "Erase Profile" -msgstr "" +msgstr "Padam Profil" #: editor/editor_feature_profile.cpp msgid "Godot Feature Profile" -msgstr "" +msgstr "Profil Ciri Godot" #: editor/editor_feature_profile.cpp msgid "Import Profile(s)" -msgstr "" +msgstr "Import Profil" #: editor/editor_feature_profile.cpp msgid "Export Profile" -msgstr "" +msgstr "Eksport Profil" #: editor/editor_feature_profile.cpp msgid "Manage Editor Feature Profiles" -msgstr "" +msgstr "Urus Profil Ciri Editor" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" -msgstr "" +msgstr "Pilih Folder Semasa" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "File Exists, Overwrite?" -msgstr "" +msgstr "Fail Wujud, Tulis Ganti?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select This Folder" -msgstr "" +msgstr "Pilih Folder Ini" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" -msgstr "" +msgstr "Salin Laluan" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Open in File Manager" -msgstr "" +msgstr "Buka dalam Pengurus Fail" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" -msgstr "" +msgstr "Tunjukkan dalam Pengurus Fail" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." -msgstr "" +msgstr "Folder Baru..." #: editor/editor_file_dialog.cpp editor/find_in_files.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "Refresh" -msgstr "" +msgstr "Muat Semula" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "All Recognized" -msgstr "" +msgstr "Semua Dikenali" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "All Files (*)" -msgstr "" +msgstr "Semua Fail (*)" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File" -msgstr "" +msgstr "Buka Fail" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open File(s)" -msgstr "" +msgstr "Buka Fail" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a Directory" -msgstr "" +msgstr "Buka Direktori" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a File or Directory" -msgstr "" +msgstr "Buka Fail atau Direktori" #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/editor_properties.cpp editor/inspector_dock.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp msgid "Save" -msgstr "" +msgstr "Simpan" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Save a File" -msgstr "" +msgstr "Simpan Fail" #: editor/editor_file_dialog.cpp msgid "Go Back" -msgstr "" +msgstr "Pergi Balik" #: editor/editor_file_dialog.cpp msgid "Go Forward" -msgstr "" +msgstr "Pergi ke Hadapan" #: editor/editor_file_dialog.cpp msgid "Go Up" -msgstr "" +msgstr "Pergi Atas" #: editor/editor_file_dialog.cpp msgid "Toggle Hidden Files" -msgstr "" +msgstr "Togol Fail Tersembunyi" #: editor/editor_file_dialog.cpp msgid "Toggle Favorite" -msgstr "" +msgstr "Togol Kegemaran" #: editor/editor_file_dialog.cpp msgid "Toggle Mode" -msgstr "" +msgstr "Togol Mod" #: editor/editor_file_dialog.cpp msgid "Focus Path" -msgstr "" +msgstr "Laluan Fokus" #: editor/editor_file_dialog.cpp msgid "Move Favorite Up" -msgstr "" +msgstr "Pindah Kegemaran ke Atas" #: editor/editor_file_dialog.cpp msgid "Move Favorite Down" -msgstr "" +msgstr "Pindah Kegemaran ke Bawah" #: editor/editor_file_dialog.cpp msgid "Go to previous folder." -msgstr "" +msgstr "Pergi ke folder sebelumnya." #: editor/editor_file_dialog.cpp msgid "Go to next folder." -msgstr "" +msgstr "Pergi ke folder seterusnya." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Go to parent folder." -msgstr "" +msgstr "Pergi ke folder induk." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Refresh files." -msgstr "" +msgstr "Muat semula fail." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." -msgstr "" +msgstr "(Nyah)kegemaran folder semasa." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle the visibility of hidden files." -msgstr "" +msgstr "Togol keterlihatan fail tersembunyi." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." -msgstr "" +msgstr "Lihat barang sebagai grid gambar kecil." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a list." -msgstr "" +msgstr "Lihat barang sebagai senarai." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" -msgstr "" +msgstr "Direktori & Fail:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" -msgstr "" +msgstr "Pratonton:" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "File:" -msgstr "" +msgstr "Fail:" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Must use a valid extension." -msgstr "" +msgstr "Mesti menggunakan sambungan yang sah." #: editor/editor_file_system.cpp msgid "ScanSources" -msgstr "" +msgstr "Sumber Imbas" #: editor/editor_file_system.cpp msgid "" "There are multiple importers for different types pointing to file %s, import " "aborted" msgstr "" +"Terdapat beberapa pengimport untuk pelbagai jenis yang menunjukkan ke fail " +"%s, import dibatalkan" #: editor/editor_file_system.cpp msgid "(Re)Importing Assets" -msgstr "" +msgstr "Mengimport (Semula) Aset" #: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Top" -msgstr "" +msgstr "Atas" #: editor/editor_help.cpp msgid "Class:" -msgstr "" +msgstr "Kelas:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp #: editor/script_create_dialog.cpp msgid "Inherits:" -msgstr "" +msgstr "Mewarisi:" #: editor/editor_help.cpp msgid "Inherited by:" -msgstr "" +msgstr "Diwarisi oleh:" #: editor/editor_help.cpp msgid "Description" -msgstr "" +msgstr "Keterangan" #: editor/editor_help.cpp msgid "Online Tutorials" -msgstr "" +msgstr "Tutorial Dalam Talian" #: editor/editor_help.cpp msgid "Properties" -msgstr "" +msgstr "Sifat" #: editor/editor_help.cpp msgid "override:" -msgstr "" +msgstr "ganti:" #: editor/editor_help.cpp msgid "default:" -msgstr "" +msgstr "lalai:" #: editor/editor_help.cpp msgid "Methods" -msgstr "" +msgstr "Kaedah" #: editor/editor_help.cpp msgid "Theme Properties" -msgstr "" +msgstr "Sifat Tema" #: editor/editor_help.cpp msgid "Enumerations" -msgstr "" +msgstr "Penghitungan" #: editor/editor_help.cpp msgid "Constants" -msgstr "" +msgstr "Pemalar" #: editor/editor_help.cpp msgid "Property Descriptions" -msgstr "" +msgstr "Penerangan Sifat" #: editor/editor_help.cpp msgid "(value)" -msgstr "" +msgstr "(nilai)" #: editor/editor_help.cpp msgid "" "There is currently no description for this property. Please help us by " "[color=$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Tiada keterangan untuk sifat ini. Tolong bantu kami dengan [color=$color]" +"[url=$url]menyumbang satu[/url][/color]!" #: editor/editor_help.cpp msgid "Method Descriptions" -msgstr "" +msgstr "Penerangan Kaedah" #: editor/editor_help.cpp msgid "" "There is currently no description for this method. Please help us by [color=" "$color][url=$url]contributing one[/url][/color]!" msgstr "" +"Tiada keterangan untuk kaedah ini. Tolong bantu kami dengan [color=$color]" +"[url=$url]menyumbang satu[/url][/color]!" #: editor/editor_help_search.cpp editor/editor_node.cpp #: editor/plugins/script_editor_plugin.cpp msgid "Search Help" -msgstr "" +msgstr "Cari Bantuan" #: editor/editor_help_search.cpp msgid "Case Sensitive" -msgstr "" +msgstr "Kesensitifan Huruf" #: editor/editor_help_search.cpp msgid "Show Hierarchy" -msgstr "" +msgstr "Tunjuk Hierarki" #: editor/editor_help_search.cpp msgid "Display All" -msgstr "" +msgstr "Paparkan Semua" #: editor/editor_help_search.cpp msgid "Classes Only" -msgstr "" +msgstr "Kelas Sahaja" #: editor/editor_help_search.cpp msgid "Methods Only" -msgstr "" +msgstr "Kaedah Sahaja" #: editor/editor_help_search.cpp msgid "Signals Only" -msgstr "" +msgstr "Isyarat Sahaja" #: editor/editor_help_search.cpp msgid "Constants Only" -msgstr "" +msgstr "Pemalar Sahaja" #: editor/editor_help_search.cpp msgid "Properties Only" -msgstr "" +msgstr "Sifat Sahaja" #: editor/editor_help_search.cpp msgid "Theme Properties Only" -msgstr "" +msgstr "Sifat Tema Sahaja" #: editor/editor_help_search.cpp msgid "Member Type" -msgstr "" +msgstr "Jenis Ahli" #: editor/editor_help_search.cpp msgid "Class" -msgstr "" +msgstr "Kelas" #: editor/editor_help_search.cpp msgid "Method" -msgstr "" +msgstr "Kaedah" #: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp msgid "Signal" -msgstr "" +msgstr "Isyarat" #: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp msgid "Constant" -msgstr "" +msgstr "Pemalar" #: editor/editor_help_search.cpp msgid "Property" -msgstr "" +msgstr "Sifat" #: editor/editor_help_search.cpp msgid "Theme Property" -msgstr "" +msgstr "Sifat Tema" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" -msgstr "" +msgstr "Sifat:" #: editor/editor_inspector.cpp msgid "Set" -msgstr "" +msgstr "Tetapkan" #: editor/editor_inspector.cpp msgid "Set Multiple:" -msgstr "" +msgstr "Tetapkan Pelbagai:" #: editor/editor_log.cpp msgid "Output:" -msgstr "" +msgstr "Keluaran:" #: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Semua Pilihan" +msgstr "Salin Pilihan" #: editor/editor_log.cpp editor/editor_network_profiler.cpp #: editor/editor_profiler.cpp editor/editor_properties.cpp @@ -2065,176 +2109,184 @@ msgstr "Semua Pilihan" #: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Clear" -msgstr "" +msgstr "Kosongkan" #: editor/editor_log.cpp msgid "Clear Output" -msgstr "" +msgstr "Kosongkan Keluaran" #: editor/editor_network_profiler.cpp editor/editor_node.cpp #: editor/editor_profiler.cpp msgid "Stop" -msgstr "" +msgstr "Hentikan" #: editor/editor_network_profiler.cpp editor/editor_profiler.cpp #: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp msgid "Start" -msgstr "" +msgstr "Mulakan" #: editor/editor_network_profiler.cpp msgid "%s/s" -msgstr "" +msgstr "%s/s" #: editor/editor_network_profiler.cpp msgid "Down" -msgstr "" +msgstr "Bawah" #: editor/editor_network_profiler.cpp msgid "Up" -msgstr "" +msgstr "Atas" #: editor/editor_network_profiler.cpp editor/editor_node.cpp msgid "Node" -msgstr "" +msgstr "Nod" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC masuk" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET masuk" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "RPC Keluar" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "RSET Keluar" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" -msgstr "" +msgstr "Tetingkap Baru" #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Sumber yang diimport tidak dapat disimpan." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp msgid "OK" -msgstr "" +msgstr "OK" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" -msgstr "" +msgstr "Ralat semasa menyimpan sumber!" #: editor/editor_node.cpp msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Sumber ini tidak dapat disimpan kerana tidak tergolong dalam adegan yang " +"diedit. Jadikannya unik terlebih dahulu." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." -msgstr "" +msgstr "Simpan Sumber Sebagai..." #: editor/editor_node.cpp msgid "Can't open file for writing:" -msgstr "" +msgstr "Tidak dapat membuka fail untuk ditulis:" #: editor/editor_node.cpp msgid "Requested file format unknown:" -msgstr "" +msgstr "Format fail yang diminta tidak diketahui:" #: editor/editor_node.cpp msgid "Error while saving." -msgstr "" +msgstr "Ralat semasa menyimpan." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." msgstr "" +"Tidak dapat membuka '% s'. Fail mungkin telah dipindahkan atau dipadam." #: editor/editor_node.cpp msgid "Error while parsing '%s'." -msgstr "" +msgstr "Ralat semasa menghuraikan '%s'." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "" +msgstr "Penghujung fail '%s' tidak dijangka." #: editor/editor_node.cpp msgid "Missing '%s' or its dependencies." -msgstr "" +msgstr "Hilang '%s' atau kebergantungannya." #: editor/editor_node.cpp msgid "Error while loading '%s'." -msgstr "" +msgstr "Ralat semasa memuatkan '%s'." #: editor/editor_node.cpp msgid "Saving Scene" -msgstr "" +msgstr "Menyimpan Adegan" #: editor/editor_node.cpp msgid "Analyzing" -msgstr "" +msgstr "Menganalisis" #: editor/editor_node.cpp msgid "Creating Thumbnail" -msgstr "" +msgstr "Mencipta Gambar Kecil" #: editor/editor_node.cpp msgid "This operation can't be done without a tree root." -msgstr "" +msgstr "Operasi ini tidak boleh dilakukan tanpa akar pokok." #: editor/editor_node.cpp msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"Adegan ini tidak dapat disimpan kerana terdapat penyertaan yang berbentuk " +"siklik.\n" +"Sila selesaikan dan kemudian cuba simpan semula." #: editor/editor_node.cpp msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" +"Tidak dapat menyimpan adegan. Kemungkinan kebergantungan (instance atau " +"warisan) tidak dapat dipenuhi." #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Tidak boleh tulis ganti adegan yang masih terbuka!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" -msgstr "" +msgstr "Tidak dapat memuatkan MeshLibrary untuk penggabungan!" #: editor/editor_node.cpp msgid "Error saving MeshLibrary!" -msgstr "" +msgstr "Ralat menyimpan MeshLibrary!" #: editor/editor_node.cpp msgid "Can't load TileSet for merging!" -msgstr "" +msgstr "Tidak boleh memuatkan TileSet untuk penggabungan!" #: editor/editor_node.cpp msgid "Error saving TileSet!" -msgstr "" +msgstr "Ralat semasa menyimpan TileSet!" #: editor/editor_node.cpp msgid "Error trying to save layout!" -msgstr "" +msgstr "Ralat semasa menyimpan susun atur!" #: editor/editor_node.cpp msgid "Default editor layout overridden." -msgstr "" +msgstr "Susun atur lalai telah diganti." #: editor/editor_node.cpp msgid "Layout name not found!" -msgstr "" +msgstr "Nama susun atur tidak dijumpai!" #: editor/editor_node.cpp msgid "Restored default layout to base settings." -msgstr "" +msgstr "Tata letak lalai telah dipulihkan ke tetapan asas." #: editor/editor_node.cpp msgid "" @@ -2242,18 +2294,26 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Sumber ini tergolong dalam adegan yang diimport, maka ia tidak dapat " +"diedit.\n" +"Sila baca dokumentasi yang berkaitan dengan pengimportan adegan untuk lebih " +"memahami aliran kerja ini." #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" "Changes to it won't be kept when saving the current scene." msgstr "" +"Sumber ini tergolong dalam adegan yang di-instance atau diwarisi.\n" +"Perubahan tidak akan disimpan semasa menyimpan adegan semasa." #: editor/editor_node.cpp msgid "" "This resource was imported, so it's not editable. Change its settings in the " "import panel and then re-import." msgstr "" +"Sumber ini telah diimport, maka ia tidak dapat diedit. Ubah tetapannya di " +"panel import dan kemudian import semula." #: editor/editor_node.cpp msgid "" @@ -2262,6 +2322,10 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"Adegan ini telah diimport, maka perubahan kepada ia tidak akan disimpan.\n" +"Instance-kan ia atau mewarisi akan membenarkan perubahan dibuat padanya.\n" +"Sila baca dokumentasi yang berkaitan dengan pengimportan adegan untuk lebih " +"memahami aliran kerja ini." #: editor/editor_node.cpp msgid "" @@ -2269,46 +2333,49 @@ msgid "" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" +"Ini adalah objek terpencil, maka perubahan padanya tidak akan disimpan.\n" +"Sila baca dokumentasi yang berkaitan dengan penyahpepijatan untuk lebih " +"memahami aliran kerja ini." #: editor/editor_node.cpp msgid "There is no defined scene to run." -msgstr "" +msgstr "Tiada adegan yang didefinisikan untuk dijalankan." #: editor/editor_node.cpp msgid "Could not start subprocess!" -msgstr "" +msgstr "Tidak dapat memulakan subproses!" #: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" -msgstr "" +msgstr "Buka Adegan" #: editor/editor_node.cpp msgid "Open Base Scene" -msgstr "" +msgstr "Buka Adegan Asas" #: editor/editor_node.cpp msgid "Quick Open..." -msgstr "" +msgstr "Buka Cepat..." #: editor/editor_node.cpp msgid "Quick Open Scene..." -msgstr "" +msgstr "Buka Cepat Adegan..." #: editor/editor_node.cpp msgid "Quick Open Script..." -msgstr "" +msgstr "Buka Cepat Skrip..." #: editor/editor_node.cpp msgid "Save & Close" -msgstr "" +msgstr "Simpan & Tutup" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "" +msgstr "Simpan perubahan pada '%s' sebelum menutup?" #: editor/editor_node.cpp msgid "Saved %s modified resource(s)." -msgstr "" +msgstr "Sumber %s yang diubahsuai telah disimpan." #: editor/editor_node.cpp msgid "A root node is required to save the scene." @@ -2758,9 +2825,8 @@ msgid "Editor" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Editor Settings..." -msgstr "Set Peralihan ke:" +msgstr "Tetapan Editor..." #: editor/editor_node.cpp msgid "Editor Layout" @@ -4064,9 +4130,8 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Animation Point" -msgstr "Set Peralihan ke:" +msgstr "Tambah Titik Animasi" #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Remove BlendSpace1D Point" @@ -4209,9 +4274,8 @@ msgid "Nodes Disconnected" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Set Animation" -msgstr "Set Peralihan ke:" +msgstr "Tetapkan Animasi" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -4391,9 +4455,8 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Edit Transitions..." -msgstr "Set Peralihan ke:" +msgstr "Sunting Peralihan..." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Open in Inspector" @@ -4491,14 +4554,12 @@ msgid "Move Node" msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition exists!" -msgstr "Set Peralihan ke:" +msgstr "Peralihan wujud!" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Add Transition" -msgstr "Set Peralihan ke:" +msgstr "Tambah Peralihan" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -4538,9 +4599,8 @@ msgid "Node Removed" msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition Removed" -msgstr "Set Peralihan ke:" +msgstr "Peralihan Dikeluarkan" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" @@ -4574,9 +4634,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition: " -msgstr "Set Peralihan ke:" +msgstr "Peralihan: " #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" @@ -5621,9 +5680,8 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Add Point" -msgstr "Set Peralihan ke:" +msgstr "Tambah Titik" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy @@ -8065,9 +8123,8 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Delete selected Rect." -msgstr "Semua Pilihan" +msgstr "Padam Rect yang dipilih." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -8076,9 +8133,8 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Delete polygon." -msgstr "Semua Pilihan" +msgstr "Padam poligon." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -8477,9 +8533,8 @@ msgid "Color constant." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Color uniform." -msgstr "Anim Ubah Penukaran" +msgstr "Warna seragam." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the %s comparison between two parameters." @@ -8822,9 +8877,8 @@ msgid "Scalar constant." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Scalar uniform." -msgstr "Anim Ubah Penukaran" +msgstr "Seragam skalar." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Perform the cubic texture lookup." @@ -10177,14 +10231,12 @@ msgid "Make node as Root" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Semua Pilihan" +msgstr "Padamkan nod %d dan mana-mana kanak-kanak?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Semua Pilihan" +msgstr "Padam nod %d?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10195,9 +10247,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Semua Pilihan" +msgstr "Padam nod \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -11172,9 +11223,8 @@ msgid "Set Variable Type" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Input Port" -msgstr "Set Peralihan ke:" +msgstr "Tambah Port Input" #: modules/visual_script/visual_script_editor.cpp msgid "Add Output Port" @@ -11419,9 +11469,8 @@ msgid "Add Nodes..." msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Function..." -msgstr "Semua Pilihan" +msgstr "Tambah fungsi..." #: modules/visual_script/visual_script_editor.cpp msgid "function_name" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index dbad564d9a..7837db5c53 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -1199,6 +1199,16 @@ msgid "Gold Sponsors" msgstr "Gullsponsorer" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Sølvdonorer" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronsedonorer" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Minisponsorer" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 7f111ad901..ac5761f63d 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -47,8 +47,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-04 08:58+0000\n" -"Last-Translator: marnicq van loon <marnicqvanloon@gmail.com>\n" +"PO-Revision-Date: 2020-08-28 13:09+0000\n" +"Last-Translator: Stijn Hinlopen <f.a.hinlopen@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" "Language: nl\n" @@ -56,7 +56,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1181,6 +1181,16 @@ msgid "Gold Sponsors" msgstr "Gouden Sponsors" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Zilveren Donors" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronzen Donors" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsoren" @@ -7361,7 +7371,7 @@ msgstr "Bekijk Omgeving" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Gizmos" -msgstr "Bekijk Gizmos" +msgstr "Toon Gizmos" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Information" @@ -7450,9 +7460,9 @@ msgid "" msgstr "" "Klik om te wisselen tussen zichtbaarheidsweergaven.\n" "\n" -"Open oog: handvat is zichtbaar.\n" -"Gesloten oog: handvat is verborgen.\n" -"Half open oog: handvat is ook zichtbaar door ondoorzichtige oppervlaktes." +"Open oog: Gizmo is zichtbaar.\n" +"Gesloten oog: Gizmo is verborgen.\n" +"Half open oog: Gizmo is ook zichtbaar door ondoorzichtige oppervlaktes." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Nodes To Floor" @@ -7640,7 +7650,7 @@ msgstr "Post" #: editor/plugins/spatial_editor_plugin.cpp msgid "Nameless gizmo" -msgstr "Naamloos apparaat" +msgstr "Naamloze gizmo" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create Mesh2D" @@ -10596,9 +10606,8 @@ msgid "Make node as Root" msgstr "Knoop tot wortelknoop maken" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Verwijder knoop \"%s\" en zijn kinderen?" +msgstr "%d knopen en hun (eventuele) kinderen verwijderen?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" diff --git a/editor/translations/or.po b/editor/translations/or.po index 5859fe6b0a..9bb6ba7410 100644 --- a/editor/translations/or.po +++ b/editor/translations/or.po @@ -1105,6 +1105,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 2a09acd7c5..6d7265c085 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -41,12 +41,13 @@ # Jan Ligudziński <jan.ligudzinski@gmail.com>, 2020. # Adam Jagoda <kontakt@lukasz.xyz>, 2020. # Filip Glura <mcmr.slendy@gmail.com>, 2020. +# Roman Skiba <romanskiba0@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-21 13:41+0000\n" -"Last-Translator: Filip Glura <mcmr.slendy@gmail.com>\n" +"PO-Revision-Date: 2020-09-01 18:42+0000\n" +"Last-Translator: Roman Skiba <romanskiba0@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -55,7 +56,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1172,6 +1173,16 @@ msgid "Gold Sponsors" msgstr "Złoci sponsorzy" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Srebrni darczyńcy" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Brązowi darczyńcy" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini-sponsorzy" @@ -9539,7 +9550,7 @@ msgstr "Plik paczki" #: editor/project_export.cpp msgid "Features" -msgstr "Funkcjonalności" +msgstr "Funkcje" #: editor/project_export.cpp msgid "Custom (comma-separated):" @@ -10560,9 +10571,8 @@ msgid "Make node as Root" msgstr "Zmień węzeł na Korzeń" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Usunąć węzeł \"%s\" oraz jego węzły potomne?" +msgstr "Usunąć %d węzłów i ich węzły potomne?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12266,6 +12276,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Kształty oparte na wielokątach nie są przystosowane, by ich używać lub " +"edytować bezpośrednio przez węzeł CollisionShape2D. Zamiast tego użyj węzła " +"CollisionPolygon2D." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index bf2d3ef0ad..d03994f21a 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -1148,6 +1148,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index e2e19c99ce..510cbdee51 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -97,13 +97,14 @@ # Necco <necco@outlook.com>, 2020. # Marcelo Silveira Hayden <mshayden.1998@gmail.com>, 2020. # GUILHERME SOUZA REIS DE MELO LOPES <guilhermesrml@unipam.edu.br>, 2020. +# Gabriela Araújo <Gabirin@outlook.com.br>, 2020. +# Jairo Tuboi <tuboi.jairo@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2020-07-26 15:41+0000\n" -"Last-Translator: GUILHERME SOUZA REIS DE MELO LOPES <guilhermesrml@unipam." -"edu.br>\n" +"PO-Revision-Date: 2020-08-11 14:04+0000\n" +"Last-Translator: Jairo Tuboi <tuboi.jairo@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -242,7 +243,7 @@ msgstr "Alterar Transição da Animação" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" -msgstr "Alterar Transformação da Anim" +msgstr "Alterar Transformação da Animação" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" @@ -250,7 +251,7 @@ msgstr "Alterar Valor de Quadro-Chave da Anim" #: editor/animation_track_editor.cpp msgid "Anim Change Call" -msgstr "Alterar Chamada da Anim" +msgstr "Alterar Chamada da Animação" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Time" @@ -1229,6 +1230,16 @@ msgid "Gold Sponsors" msgstr "Patrocinadores Ouro" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Doadores Prata" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Doadores Bronze" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Patrocinadores Mini" @@ -1795,7 +1806,7 @@ msgstr "Novo" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "Importar" +msgstr "Import" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" @@ -3869,7 +3880,7 @@ msgstr "Criar Script" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" -msgstr "Localizar nos Arquivos" +msgstr "Localizar nos arquivos" #: editor/find_in_files.cpp msgid "Find:" @@ -4177,7 +4188,7 @@ msgstr "Alterações podem ser perdidas!" #: editor/multi_node_edit.cpp msgid "MultiNode Set" -msgstr "Múltiplos Nodes definidos" +msgstr "Conjunto de Multi-Nós" #: editor/node_dock.cpp msgid "Select a single node to edit its signals and groups." @@ -6817,7 +6828,7 @@ msgstr "Localizar próximo" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find Previous" -msgstr "Encontrar Anterior" +msgstr "Localizar anterior" #: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" @@ -7080,7 +7091,7 @@ msgstr "Recortar" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Select All" -msgstr "Selecionar Tudo" +msgstr "Selecionar tudo" #: editor/plugins/script_text_editor.cpp msgid "Delete Line" @@ -10627,9 +10638,8 @@ msgid "Make node as Root" msgstr "Tornar Raiz o Nó" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Deletar nó \"%s\" e seus filhos?" +msgstr "Deletar nó \"%d\" e seus filhos?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12332,6 +12342,8 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Formas baseadas em polígonos não foram feitas para serem diretamente " +"editadas no nó CollisionShape2D. Em vez disso use o nó CollisionPolygon2D." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index ba1f5b31d5..489a8012f5 100644 --- a/editor/translations/pt_PT.po +++ b/editor/translations/pt_PT.po @@ -13,15 +13,15 @@ # Rueben Stevens <supercell03@gmail.com>, 2017. # SARDON <fabio3_Santos@hotmail.com>, 2017. # Vinicius Gonçalves <viniciusgoncalves21@gmail.com>, 2017. -# ssantos <ssantos@web.de>, 2018, 2019. +# ssantos <ssantos@web.de>, 2018, 2019, 2020. # Gonçalo Dinis Guerreiro João <goncalojoao205@gmail.com>, 2019. # Manuela Silva <mmsrs@sky.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-06-26 06:11+0000\n" -"Last-Translator: João Lopes <linux-man@hotmail.com>\n" +"PO-Revision-Date: 2020-08-16 15:25+0000\n" +"Last-Translator: ssantos <ssantos@web.de>\n" "Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_PT/>\n" "Language: pt_PT\n" @@ -1037,7 +1037,7 @@ msgstr "Proprietários de:" #: editor/dependency_editor.cpp msgid "Remove selected files from the project? (Can't be restored)" -msgstr "Remover arquivos selecionados do Projeto? (Sem desfazer)" +msgstr "Remover ficheiros selecionados do Projeto? (Sem desfazer)" #: editor/dependency_editor.cpp msgid "" @@ -1045,7 +1045,7 @@ msgid "" "work.\n" "Remove them anyway? (no undo)" msgstr "" -"Os arquivos a serem removidos são necessários para que outros recursos " +"Os ficheiros a serem removidos são necessários para que outros recursos " "funcionem.\n" "Remover mesmo assim? (sem anular)" @@ -1150,6 +1150,16 @@ msgid "Gold Sponsors" msgstr "Patrocinadores Gold" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Doadores Silver" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Doadores Bronze" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Patrocinadores Mini" @@ -1403,11 +1413,11 @@ msgstr "Guardar este Modelo de Barramento para um ficheiro." #: editor/editor_audio_buses.cpp editor/import_dock.cpp msgid "Load Default" -msgstr "Carregar Padrão" +msgstr "Carregar Predefinição" #: editor/editor_audio_buses.cpp msgid "Load the default Bus Layout." -msgstr "Carregar o Modelo padrão de barramento." +msgstr "Carregar o Modelo predefinido de barramento." #: editor/editor_audio_buses.cpp msgid "Create a new Bus Layout." @@ -1551,7 +1561,7 @@ msgstr "Escolha" #: editor/editor_export.cpp msgid "Storing File:" -msgstr "Arquivo de Armazenamento:" +msgstr "Armazenar o Ficheiro:" #: editor/editor_export.cpp msgid "No export template found at the expected path:" @@ -1962,7 +1972,7 @@ msgstr "Sobrepõe:" #: editor/editor_help.cpp msgid "default:" -msgstr "Padrão:" +msgstr "predefinição:" #: editor/editor_help.cpp msgid "Methods" @@ -2273,7 +2283,7 @@ msgstr "Erro ao tentar guardar o Modelo!" #: editor/editor_node.cpp msgid "Default editor layout overridden." -msgstr "O Modelo do Editor padrão foi substituído." +msgstr "O modelo do editor predefinido foi substituído." #: editor/editor_node.cpp msgid "Layout name not found!" @@ -2281,7 +2291,7 @@ msgstr "Nome do Modelo não encontrado!" #: editor/editor_node.cpp msgid "Restored default layout to base settings." -msgstr "Modelo padrão restaurado para as configurações base." +msgstr "Modelo predefinido restaurado para as configurações base." #: editor/editor_node.cpp msgid "" @@ -2582,7 +2592,7 @@ msgstr "Apagar Modelo" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp msgid "Default" -msgstr "Padrão" +msgstr "Predefinição" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp @@ -2840,7 +2850,7 @@ msgid "" msgstr "" "Com esta opção ativa, alterações da cena no editor serão replicadas no jogo " "em execução.\n" -"Quando usada num dispositivo remoto, é mais eficiente com um sistema de " +"Quando usada num aparelho remoto, é mais eficiente com um sistema de " "ficheiros em rede." #: editor/editor_node.cpp @@ -2856,7 +2866,7 @@ msgid "" msgstr "" "Com esta opção ativa, qualquer Script guardado será recarregado no jogo em " "execução.\n" -"Quando usada num dispositivo remoto, é mais eficiente com um Sistema de " +"Quando usada num aparelho remoto, é mais eficiente com um Sistema de " "Ficheiros em rede." #: editor/editor_node.cpp editor/script_create_dialog.cpp @@ -3464,8 +3474,9 @@ msgid "" "No download links found for this version. Direct download is only available " "for official releases." msgstr "" -"Não foram encontrados ligações para download para esta versão. Download " -"direto está apenas disponível para os lançamentos oficiais." +"Não foram encontrados ligações para descarregar para esta versão. " +"Descarregamentos diretos estão disponíveis apenas para os lançamentos " +"oficiais." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3981,11 +3992,11 @@ msgstr "%d Ficheiros" #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "Definir como Padrão para '%s'" +msgstr "Definir como Predefinição para '%s'" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "Limpar Padrão para '%s'" +msgstr "Limpar Predefinição para '%s'" #: editor/import_dock.cpp msgid "Import As:" @@ -5658,7 +5669,7 @@ msgstr "Erro a instanciar cena de %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Default Type" -msgstr "Mudar Tipo Padrão" +msgstr "Mudar Predefinição de Tipo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -8577,7 +8588,7 @@ msgstr "Definir Nome do Uniform" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Input Default Port" -msgstr "Definir Porta de Entrada Padrão" +msgstr "Definir Porta de Entrada Predefinida" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node to Visual Shader" @@ -9306,7 +9317,7 @@ msgid "" "constants." msgstr "" "Expressão personalizada em Linguagem Godot Shader, colocada sobre o shader " -"resultante. Pode colocar várias definições de função e chamá-las depois nas " +"resultante. Pode pôr várias definições de função e chamá-las depois nas " "Expressões. Também pode declarar variantes, uniformes e constantes." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -9965,11 +9976,11 @@ msgstr "Adicionar evento ação de entrada" #: editor/project_settings_editor.cpp msgid "All Devices" -msgstr "Todos os Dispositivos" +msgstr "Todos os Aparelhos" #: editor/project_settings_editor.cpp msgid "Device" -msgstr "Dispositivo" +msgstr "Aparelho" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Press a Key..." @@ -10181,7 +10192,7 @@ msgstr "Zona morta" #: editor/project_settings_editor.cpp msgid "Device:" -msgstr "Dispositivo:" +msgstr "Aparelho:" #: editor/project_settings_editor.cpp msgid "Index:" @@ -10425,11 +10436,11 @@ msgstr "No carácter %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" -msgstr "Recolocar Nó" +msgstr "Repôr Nó" #: editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" -msgstr "Recolocar localização (selecionar novo Parente):" +msgstr "Repôr localização (selecionar novo Parente):" #: editor/reparent_dialog.cpp msgid "Keep Global Transform" @@ -10437,7 +10448,7 @@ msgstr "Manter transformação global" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "Recolocar" +msgstr "Repôr" #: editor/run_settings_dialog.cpp msgid "Run Mode:" @@ -10525,9 +10536,8 @@ msgid "Make node as Root" msgstr "Tornar Nó Raiz" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Apagar nó \"%s\" e filhos?" +msgstr "Apagar %d nós e filhos?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -10563,7 +10573,7 @@ msgid "" "reverted to their default." msgstr "" "Desativar \"editable_instance\" irá reverter todas as propriedades do nó " -"para os seus valores padrão." +"para os seus valores predefinição." #: editor/scene_tree_dock.cpp msgid "" @@ -10571,7 +10581,8 @@ msgid "" "cause all properties of the node to be reverted to their default." msgstr "" "Ativar \"Carregar como Espaço Reservado\" vai desativar \"Filhos Editáveis\" " -"e fazer com que todas as propriedades do nó revertam para valores padrão." +"e fazer com que todas as propriedades do nó revertam para valores " +"predefinidos." #: editor/scene_tree_dock.cpp msgid "Make Local" @@ -10681,7 +10692,7 @@ msgstr "Mudar tipo" #: editor/scene_tree_dock.cpp msgid "Reparent to New Node" -msgstr "Recolocar o Novo Nó" +msgstr "Repôr o Novo Nó" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -11540,7 +11551,7 @@ msgstr "Mudar nome do argumento" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "Definir Valor Padrão da Variável" +msgstr "Definir Valor Predefinido da Variável" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Type" @@ -11932,7 +11943,7 @@ msgstr "O pacote deve ter pelo menos um separador '.'." #: platform/android/export/export.cpp msgid "Select device from the list" -msgstr "Selecionar dispositivo da lista" +msgstr "Selecionar aparelho da lista" #: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." @@ -12084,7 +12095,7 @@ msgstr "Executar no Navegador" #: platform/javascript/export/export.cpp msgid "Run exported HTML in the system's default browser." -msgstr "Executar HTML exportado no Navegador padrão do sistema." +msgstr "Executar HTML exportado no navegador predefinido do sistema." #: platform/javascript/export/export.cpp msgid "Could not write file:" @@ -12108,7 +12119,7 @@ msgstr "Não consigo ler ficheiro de imagem do ecrã de inicialização:" #: platform/javascript/export/export.cpp msgid "Using default boot splash image." -msgstr "A usar imagem padrão de inicialização." +msgstr "A usar imagem de inicialização predefinida." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -12232,6 +12243,8 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Formas baseadas em polígono não pretendem ser usadas ou editadas diretamente " +"através do nó CollisionShape2D. Em vez disso use o nó CollisionPolygon2D." #: scene/2d/cpu_particles_2d.cpp msgid "" @@ -12332,7 +12345,7 @@ msgstr "" #: scene/2d/skeleton_2d.cpp msgid "This Bone2D chain should end at a Skeleton2D node." -msgstr "Esta corrente de Bone2D deve terminar em um nó Skeleton2D." +msgstr "Esta corrente de Bone2D deve terminar num nó Skeleton2D." #: scene/2d/skeleton_2d.cpp msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." @@ -12753,7 +12766,7 @@ msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "" -"Ambiente Padrão especificado em Configuração do Projeto (Rendering -> " +"Ambiente predefinido especificado em Configuração do Projeto (Rendering -> " "Environment -> Default Environment) não pode ser carregado." #: scene/main/viewport.cpp diff --git a/editor/translations/ro.po b/editor/translations/ro.po index ba5fbcf11a..ef64a09d92 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -3,7 +3,7 @@ # Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). # This file is distributed under the same license as the Godot source code. # Calin Sopterean <csopterean@gmail.com>, 2018. -# Filip <filipanton@tutanota.com>, 2018. +# Filip <filipanton@tutanota.com>, 2018, 2020. # Nitroretro <nitroretro@protonmail.com>, 2018. # TigerxWood <TigerxWood@gmail.com>, 2018. # Grigore Antoniuc <grisa181@gmail.com>, 2018. @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-19 01:27+0000\n" -"Last-Translator: f0roots <f0rootss@gmail.com>\n" +"PO-Revision-Date: 2020-08-11 14:04+0000\n" +"Last-Translator: Filip <filipanton@tutanota.com>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/" "godot/ro/>\n" "Language: ro\n" @@ -1147,6 +1147,16 @@ msgid "Gold Sponsors" msgstr "Sponsori Aur" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Donatori de Argint" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Donatori de Bronz" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsori" @@ -1720,7 +1730,7 @@ msgstr "Nou" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "Importă" +msgstr "Importare" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" @@ -2142,23 +2152,23 @@ msgstr "Nod" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "Intrare RPC" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "Intrare RSET" #: editor/editor_network_profiler.cpp msgid "Outgoing RPC" -msgstr "" +msgstr "Ieșire RPC" #: editor/editor_network_profiler.cpp msgid "Outgoing RSET" -msgstr "" +msgstr "Ieșire RSET" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" -msgstr "Fereastra Noua" +msgstr "Fereastră Nouă" #: editor/editor_node.cpp msgid "Imported resources can't be saved." @@ -2251,11 +2261,11 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Nu pot salva peste scena care este înca deschisă!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" -msgstr "Imposibil de încărcat MeshLibrary pentru unire!" +msgstr "Nu pot încarca MeshLibrary pentru combinare!" #: editor/editor_node.cpp msgid "Error saving MeshLibrary!" @@ -2378,7 +2388,7 @@ msgstr "Resurse modificate %s salvate." #: editor/editor_node.cpp msgid "A root node is required to save the scene." -msgstr "" +msgstr "Un nod rădăcină este necesar pentru a salva scena." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -2406,11 +2416,11 @@ msgstr "Exportă Librăria de Mesh-uri" #: editor/editor_node.cpp msgid "This operation can't be done without a root node." -msgstr "Această operațiune nu poate fi făcută fără un nod de bază." +msgstr "Această operațiune nu poate fi făcută fără un nod rădăcină." #: editor/editor_node.cpp msgid "Export Tile Set" -msgstr "Exportă Setul de Plăci" +msgstr "Exportă Tile Setul" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." @@ -2422,25 +2432,27 @@ msgstr "Scena curentă nu este salvată. Deschizi oricum?" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "Nu se poate reîncărca o scenă care nu a fost salvată niciodată." +msgstr "Nu pot reîncărca o scenă care nu a fost salvată niciodată." #: editor/editor_node.cpp msgid "Reload Saved Scene" -msgstr "Reîncărcare scenă salvată" +msgstr "Reîncarcă scenă salvată" #: editor/editor_node.cpp msgid "" "The current scene has unsaved changes.\n" "Reload the saved scene anyway? This action cannot be undone." msgstr "" +"Scena actuală are modificări nesalvate.\n" +"Reîncărcați scena salvată? Această acțiune nu poate fi anulată." #: editor/editor_node.cpp msgid "Quick Run Scene..." -msgstr "Execută Rapid Scena..." +msgstr "Rulează Rapid Scena..." #: editor/editor_node.cpp msgid "Quit" -msgstr "Închidere" +msgstr "Închide" #: editor/editor_node.cpp msgid "Exit the editor?" @@ -2448,7 +2460,7 @@ msgstr "Ieși din editor?" #: editor/editor_node.cpp msgid "Open Project Manager?" -msgstr "Deschizi Managerul de Proiect?" +msgstr "Deschide Managerul de Proiect?" #: editor/editor_node.cpp msgid "Save & Quit" @@ -2603,12 +2615,14 @@ msgid "Undo Close Tab" msgstr "Anulare fila Închidere" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Close Other Tabs" -msgstr "" +msgstr "Închideți Alte File" #: editor/editor_node.cpp +#, fuzzy msgid "Close Tabs to the Right" -msgstr "" +msgstr "Închidere file la dreapta" #: editor/editor_node.cpp msgid "Close All Tabs" @@ -2738,20 +2752,23 @@ msgid "Version Control" msgstr "Control versiune" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +#, fuzzy msgid "Set Up Version Control" -msgstr "" +msgstr "Configurați controlul versiunii" #: editor/editor_node.cpp +#, fuzzy msgid "Shut Down Version Control" -msgstr "" +msgstr "Închidere control versiune" #: editor/editor_node.cpp msgid "Export..." msgstr "Export..." #: editor/editor_node.cpp +#, fuzzy msgid "Install Android Build Template..." -msgstr "" +msgstr "Instalare șablon compilare Android..." #: editor/editor_node.cpp msgid "Open Project Data Folder" @@ -2867,15 +2884,15 @@ msgstr "Editor" #: editor/editor_node.cpp msgid "Editor Settings..." -msgstr "Setările editorului..." +msgstr "Setări Editor..." #: editor/editor_node.cpp msgid "Editor Layout" -msgstr "Schema Editorului" +msgstr "Schema Editor" #: editor/editor_node.cpp msgid "Take Screenshot" -msgstr "Salvează captură de ecran" +msgstr "Captură de ecran" #: editor/editor_node.cpp msgid "Screenshots are stored in the Editor Data/Settings Folder." @@ -2886,23 +2903,20 @@ msgid "Toggle Fullscreen" msgstr "Comutare ecran complet" #: editor/editor_node.cpp -#, fuzzy msgid "Toggle System Console" -msgstr "Modul de Comutare" +msgstr "Cumutează Consola de Sistem" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Data/Settings Folder" -msgstr "Setări ale Editorului" +msgstr "Deschide Dosarul De Date/Setări" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "" +msgstr "Deschidere dosarul de date editor" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Settings Folder" -msgstr "Setări ale Editorului" +msgstr "Deschide Dosarul de Setări Editor" #: editor/editor_node.cpp msgid "Manage Editor Features..." @@ -2935,13 +2949,12 @@ msgid "Q&A" msgstr "Întrebări și Răspunsuri" #: editor/editor_node.cpp -#, fuzzy msgid "Report a Bug" -msgstr "Reimportă" +msgstr "Raportează o Eroare" #: editor/editor_node.cpp msgid "Send Docs Feedback" -msgstr "" +msgstr "Trimite Feedbackul Docs" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -2960,8 +2973,9 @@ msgid "Play" msgstr "Rulează" #: editor/editor_node.cpp +#, fuzzy msgid "Pause the scene execution for debugging." -msgstr "" +msgstr "Întrerupeți executarea scenei pentru depanare." #: editor/editor_node.cpp msgid "Pause Scene" @@ -3001,17 +3015,14 @@ msgid "Spins when the editor window redraws." msgstr "Se rotește când fereastra editorului se redeschide." #: editor/editor_node.cpp -#, fuzzy msgid "Update Continuously" -msgstr "Continuu" +msgstr "Actualizare continuă" #: editor/editor_node.cpp -#, fuzzy msgid "Update When Changed" -msgstr "Modificări ale Actualizării" +msgstr "Actualizează Doar La Modificare" #: editor/editor_node.cpp -#, fuzzy msgid "Hide Update Spinner" msgstr "Dezactivează Cercul de Actualizare" @@ -3024,9 +3035,8 @@ msgid "Inspector" msgstr "Inspector" #: editor/editor_node.cpp -#, fuzzy msgid "Expand Bottom Panel" -msgstr "Extinde toate" +msgstr "Extinde Panoul De Jos" #: editor/editor_node.cpp msgid "Output" @@ -3039,11 +3049,11 @@ msgstr "Nu Salva" #: editor/editor_node.cpp msgid "Android build template is missing, please install relevant templates." msgstr "" +"Android construi șablon lipsește, vă rugăm să instalați șabloane relevante." #: editor/editor_node.cpp -#, fuzzy msgid "Manage Templates" -msgstr "Administrează Șabloanele de Export" +msgstr "Gestionați șabloanele" #: editor/editor_node.cpp msgid "" @@ -3069,9 +3079,8 @@ msgid "Import Templates From ZIP File" msgstr "Importă Șabloane Dintr-o Arhivă ZIP" #: editor/editor_node.cpp -#, fuzzy msgid "Template Package" -msgstr "Exportă Managerul de Șabloane" +msgstr "Pachetul cu șabloane" #: editor/editor_node.cpp msgid "Export Library" @@ -3126,9 +3135,8 @@ msgid "Warning!" msgstr "" #: editor/editor_path.cpp -#, fuzzy msgid "No sub-resources found." -msgstr "Nicio sursă de suprafață specificată." +msgstr "Nu s-a găsit nici o sub-resursă." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" @@ -3143,9 +3151,8 @@ msgid "Main Script:" msgstr "Script principal:" #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Edit Plugin" -msgstr "Editează Poligon" +msgstr "Editare Plugin" #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" @@ -3269,9 +3276,8 @@ msgid "New Script" msgstr "" #: editor/editor_properties.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Execută Scriptul" +msgstr "Extinde Script" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "New %s" @@ -3317,14 +3323,12 @@ msgid "Remove Item" msgstr "" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "New Key:" -msgstr "Nume nou:" +msgstr "Cheie Nouă:" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "New Value:" -msgstr "Nume nou:" +msgstr "Valoare Nouă:" #: editor/editor_properties_array_dict.cpp msgid "Add Key/Value Pair" @@ -3384,7 +3388,6 @@ msgid "Import From Node:" msgstr "Importă Din Nod:" #: editor/export_template_manager.cpp -#, fuzzy msgid "Redownload" msgstr "Descarcă din nou" @@ -3426,9 +3429,8 @@ msgid "Can't open export templates zip." msgstr "Nu se pot deschide șabloanele de export zip." #: editor/export_template_manager.cpp -#, fuzzy msgid "Invalid version.txt format inside templates: %s." -msgstr "Format nevalid versiune.txt în șabloane." +msgstr "Formatul versiune.txt nevalid din interiorul șabloanelor: % s." #: editor/export_template_manager.cpp msgid "No version.txt found inside templates." @@ -3495,9 +3497,8 @@ msgid "Download Complete." msgstr "Descărcare Completă." #: editor/export_template_manager.cpp -#, fuzzy msgid "Cannot remove temporary file:" -msgstr "Nu se poate șterge:" +msgstr "Nu pot sterge fișierul temporar:" #: editor/export_template_manager.cpp msgid "" @@ -3556,9 +3557,8 @@ msgid "SSL Handshake Error" msgstr "Eroare SSL Handshake" #: editor/export_template_manager.cpp -#, fuzzy msgid "Uncompressing Android Build Sources" -msgstr "Decomprimare Asset-uri" +msgstr "Decomprimare Surse de compilare Android" #: editor/export_template_manager.cpp msgid "Current Version:" @@ -3579,12 +3579,11 @@ msgstr "Elimină Șablon" #: editor/export_template_manager.cpp #, fuzzy msgid "Select Template File" -msgstr "Selectează fișierul șablon" +msgstr "Selectare fișier șablon" #: editor/export_template_manager.cpp -#, fuzzy msgid "Godot Export Templates" -msgstr "Administrează Șabloanele de Export" +msgstr "Șabloane de export Godot" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3665,14 +3664,12 @@ msgid "New Inherited Scene" msgstr "Nouă scenă moștenită" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Set As Main Scene" -msgstr "Alege o Scenă Principală" +msgstr "Setează ca scenă principală" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Open Scenes" -msgstr "Deschide o scenă" +msgstr "Deschide Scene" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3683,9 +3680,8 @@ msgid "Add to Favorites" msgstr "Adauga la Favorite" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from Favorites" -msgstr "Elimină din Grup" +msgstr "Eliminare din Preferințe" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3712,26 +3708,22 @@ msgid "New Scene..." msgstr "Scenă nouă..." #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "New Script..." -msgstr "Deschide un script rapid..." +msgstr "Script nou ..." #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Resource..." -msgstr "Salvați Resursa Ca..." +msgstr "Resursă nouă ..." #: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" -msgstr "Extinde toate" +msgstr "Extinde Toate" #: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" -msgstr "Restrânge toate" +msgstr "Reduceți Toate" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3741,28 +3733,24 @@ msgid "Rename" msgstr "Redenumește" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Previous Folder/File" -msgstr "Fila anterioară" +msgstr "Folder/Fișier Anterior" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Next Folder/File" -msgstr "Creați Director" +msgstr "Folder/Fișier Următor" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Rescanează Sistemul de Fișiere" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle Split Mode" -msgstr "Modul de Comutare" +msgstr "Comută Modul Split" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Search files" -msgstr "Căutare Clase" +msgstr "Căută fișiere" #: editor/filesystem_dock.cpp msgid "" @@ -3777,27 +3765,24 @@ msgid "Move" msgstr "Mută" #: editor/filesystem_dock.cpp -#, fuzzy msgid "There is already file or folder with the same name in this location." -msgstr "Un fișier sau un director cu acest nume există deja." +msgstr "Există deja un fișier sau un dosar cu același nume în această locație." #: editor/filesystem_dock.cpp msgid "Overwrite" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Create Scene" -msgstr "Salvează Scena" +msgstr "Crează scenă" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" msgstr "" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Find in Files" -msgstr "%d mai multe fișiere" +msgstr "Caută în fișiere" #: editor/find_in_files.cpp msgid "Find:" @@ -3839,19 +3824,16 @@ msgid "Replace: " msgstr "Înlocuiți: " #: editor/find_in_files.cpp -#, fuzzy msgid "Replace all (no undo)" -msgstr "Înlocuiți Tot" +msgstr "Înlocuiește tot (fără anulare)" #: editor/find_in_files.cpp -#, fuzzy msgid "Searching..." -msgstr "Se Salvează..." +msgstr "Caut..." #: editor/find_in_files.cpp -#, fuzzy msgid "Search complete" -msgstr "Căutați Text" +msgstr "Căutare completă" #: editor/groups_editor.cpp msgid "Add to Group" @@ -3866,28 +3848,24 @@ msgid "Group name already exists." msgstr "Numele grupului există deja." #: editor/groups_editor.cpp -#, fuzzy msgid "Invalid group name." -msgstr "Nume nevalid." +msgstr "Nume de grup nevalid." #: editor/groups_editor.cpp -#, fuzzy msgid "Rename Group" -msgstr "Grupuri" +msgstr "Renumește Grupul" #: editor/groups_editor.cpp -#, fuzzy msgid "Delete Group" -msgstr "Șterge Schema" +msgstr "Șterge Grupul" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" msgstr "Grupuri" #: editor/groups_editor.cpp -#, fuzzy msgid "Nodes Not in Group" -msgstr "Adaugă în Grup" +msgstr "Nodurile Nu Sunt în Grup" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp #: editor/scene_tree_editor.cpp @@ -3895,23 +3873,20 @@ msgid "Filter nodes" msgstr "" #: editor/groups_editor.cpp -#, fuzzy msgid "Nodes in Group" -msgstr "Adaugă în Grup" +msgstr "Noduri în Grup" #: editor/groups_editor.cpp msgid "Empty groups will be automatically removed." msgstr "" #: editor/groups_editor.cpp -#, fuzzy msgid "Group Editor" -msgstr "Deschide Editorul de Scripturi" +msgstr "Editor Grup" #: editor/groups_editor.cpp -#, fuzzy msgid "Manage Groups" -msgstr "Grupuri" +msgstr "Gestionați grupuri" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" @@ -4023,9 +3998,8 @@ msgid "Save Scenes, Re-Import, and Restart" msgstr "" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Schimbarea driver-ului video necesită restartarea editorului." +msgstr "Modificarea tipului de fișier importat necesită repornirea editorului." #: editor/import_dock.cpp msgid "" @@ -4037,14 +4011,12 @@ msgid "Failed to load resource." msgstr "Încărcarea resursei a eșuat." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" -msgstr "Extinde toate proprietăţile" +msgstr "Extindeți toate proprietățile" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" -msgstr "Restrânge toate proprietăţile" +msgstr "Reduceți toate proprietățile" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -4116,19 +4088,16 @@ msgid "MultiNode Set" msgstr "Set MultiNod" #: editor/node_dock.cpp -#, fuzzy msgid "Select a single node to edit its signals and groups." -msgstr "Selectează un Nod pentru a edita Semnalele și Grupurile." +msgstr "Selectați un singur nod pentru a-i edita semnalele și grupurile." #: editor/plugin_config_dialog.cpp -#, fuzzy msgid "Edit a Plugin" -msgstr "Editează Poligon" +msgstr "Editează un Plugin" #: editor/plugin_config_dialog.cpp -#, fuzzy msgid "Create a Plugin" -msgstr "Crează Poligon" +msgstr "Crează un plugin" #: editor/plugin_config_dialog.cpp msgid "Plugin Name:" @@ -4152,9 +4121,8 @@ msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Create Polygon" -msgstr "Crează Poligon" +msgstr "Crează poligon" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -4174,12 +4142,10 @@ msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Erase points." -msgstr "RMB: Șterge Punctul." +msgstr "Șterge puncte." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon" msgstr "Editează Poligon" @@ -4188,14 +4154,12 @@ msgid "Insert Point" msgstr "Inserează Punct" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon (Remove Point)" -msgstr "Editează Poligon (Elimină Punct)" +msgstr "Editează Poligon (Șterge puncte)" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Remove Polygon And Point" -msgstr "Elimină Poligon Și Punct" +msgstr "Șterge Poligon Și Punct" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4214,19 +4178,16 @@ msgstr "Încărca..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Move Node Point" -msgstr "Deplasare punct" +msgstr "Mută punct nod" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Limits" -msgstr "Schimbă Timpul Amestecului" +msgstr "Modifică limitele BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Labels" -msgstr "Schimbă Timpul Amestecului" +msgstr "Modifică etichetele BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -9632,9 +9593,8 @@ msgid "Make Patch" msgstr "" #: editor/project_export.cpp -#, fuzzy msgid "Pack File" -msgstr "Pachet Fișier" +msgstr "Împachetează Fișierul" #: editor/project_export.cpp msgid "Features" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 16be6345f0..71711ad333 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -82,12 +82,16 @@ # Calamander <Calamander@yandex.ru>, 2020. # Terminator <fresh-ter@yandex.com>, 2020. # Anatoly Kuznetsov <muffinnorth@yandex.ru>, 2020. +# kyanukovich <ianu0001@algonquinlive.com>, 2020. +# Ron788 <ustinov200511@gmail.com>, 2020. +# Daniel <dan.ef1999@gmail.com>, 2020. +# NeoLan Qu <it.bulla@mail.ru>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-23 02:44+0000\n" -"Last-Translator: Anatoly Kuznetsov <muffinnorth@yandex.ru>\n" +"PO-Revision-Date: 2020-08-15 09:32+0000\n" +"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -1215,6 +1219,16 @@ msgid "Gold Sponsors" msgstr "Золотые спонсоры" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Серебряные доноры" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Бронзовые доноры" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Мини спонсоры" @@ -7419,7 +7433,7 @@ msgstr "Свободный вид, право" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Forward" -msgstr "Freelook Forward" +msgstr "Обзор вперёд" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Backwards" @@ -8172,11 +8186,11 @@ msgstr "Удалить выбранную текстуру из TileSet." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" -msgstr "Создать из сцены" +msgstr "Создать из Сцены" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from Scene" -msgstr "Слияние из сцены" +msgstr "Слияние из Сцены" #: editor/plugins/tile_set_editor_plugin.cpp msgid "New Single Tile" @@ -8949,7 +8963,7 @@ msgstr "Возвращает обратный гиперболический т #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" "Finds the nearest integer that is greater than or equal to the parameter." -msgstr "Вычисляет ближайшее целое число, большее или равное аргументу." +msgstr "Находит ближайшее целое, которое больше или равно параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Constrains a value to lie between two further values." @@ -8957,11 +8971,11 @@ msgstr "Удерживает значение в пределах двух др #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the cosine of the parameter." -msgstr "Возвращает косинус аргумента." +msgstr "Возвращает косинус параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the hyperbolic cosine of the parameter." -msgstr "Возвращает гиперболический косинус аргумента." +msgstr "Возвращает гиперболический косинус параметра." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts a quantity in radians to degrees." @@ -8977,7 +8991,7 @@ msgstr "Экспонента с основанием 2." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest integer less than or equal to the parameter." -msgstr "Вычисляет ближайшее целое, меньшее или равное аргументу." +msgstr "Находит ближайшее целое, меньшее или равное аргументу." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Computes the fractional part of the argument." @@ -8985,7 +8999,7 @@ msgstr "Вычисляет дробную часть аргумента." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the inverse of the square root of the parameter." -msgstr "Возвращает обратный корень из аргумента." +msgstr "Возвращает обратный квадратный корень из аргумента." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Natural logarithm." @@ -9030,11 +9044,11 @@ msgstr "1.0 / скаляр" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest integer to the parameter." -msgstr "Вычисляет ближайшее целое число." +msgstr "Находит ближайшее к параметру целое число." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Finds the nearest even integer to the parameter." -msgstr "Вычисляет ближайшее чётное число." +msgstr "Находит ближайшее чётное число к параметру." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Clamps the value between 0.0 and 1.0." @@ -9578,7 +9592,7 @@ msgstr "Файл пакета" #: editor/project_export.cpp msgid "Features" -msgstr "Свойства" +msgstr "Возможности" #: editor/project_export.cpp msgid "Custom (comma-separated):" @@ -10599,9 +10613,8 @@ msgid "Make node as Root" msgstr "Сделать узел корневым" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Удалить узел «%s» и его дочерние элементы?" +msgstr "Удалить узел «%d» и его дочерние элементы?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12300,6 +12313,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Полигональные фигуры не предназначены для использования или редактирования " +"непосредственно через узел \"CollisionShape2D\". Пожалуйста, используйте " +"вместо этого узел \"CollisionPolygon2D\" ." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/si.po b/editor/translations/si.po index c8b0a57cbe..2ca3642fce 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -1128,6 +1128,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 59cd8da671..13482d4c59 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-06-15 01:48+0000\n" +"PO-Revision-Date: 2020-09-04 06:51+0000\n" "Last-Translator: Richard Urban <redasuio1@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/" "godot/sk/>\n" @@ -23,7 +23,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -32,7 +32,7 @@ msgstr "Chybný argument convert(), použite TYPE_* konštanty." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "dĺžka očakávaného stringu 1 (písmeno)" +msgstr "dĺžka očakávaného stringu 1 (písmeno)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -42,7 +42,7 @@ msgstr "Nedostatok bajtov na dekódovanie, alebo chybný formát." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "Neplatný vstup %i (neprešlo) vo výraze" +msgstr "Nesprávny vstup(input) %i (neschválený) v požiadavke" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -98,7 +98,7 @@ msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" -msgstr "zadarmo" +msgstr "Voľný" #: editor/animation_bezier_editor.cpp msgid "Balanced" @@ -118,7 +118,7 @@ msgstr "Hodnota:" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" -msgstr "Sem Vložte Kľúč" +msgstr "Tu vložiť kľúč" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" @@ -130,7 +130,7 @@ msgstr "Zmazať označené kľúč(e)" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" -msgstr "Pridať Bezierov bod" +msgstr "Pridať Bezier bod" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" @@ -191,7 +191,7 @@ msgstr "Zmeniť Dĺžku Animácie (Change Animation Length)" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "Zmeniť opakovanie Animácie (Change Animation Loop)" +msgstr "Zmeniť Opakovanie Animácie" #: editor/animation_track_editor.cpp msgid "Property Track" @@ -256,7 +256,7 @@ msgstr "Zapnúť/Vypnúť tento track." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "Update Mode (ako je nastavená táto možnosť)" +msgstr "Update Mode (Tak ako je táto možnosť nastavená)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" @@ -517,7 +517,7 @@ msgstr "Zoskupte track-y pomocou node-u alebo ich zobrazte ako plain list." #: editor/animation_track_editor.cpp msgid "Snap:" -msgstr "Snap:" +msgstr "Prichytiť:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -756,9 +756,8 @@ msgid "Method in target node must be specified." msgstr "Metóda v target node-e musí byť špecifikovaná." #: editor/connections_dialog.cpp -#, fuzzy msgid "Method name must be a valid identifier." -msgstr "Metóda v target node-e musí byť špecifikovaná." +msgstr "Meno Metódy musí byť špecifikované." #: editor/connections_dialog.cpp msgid "" @@ -1136,6 +1135,16 @@ msgid "Gold Sponsors" msgstr "Zlatý Sponzori" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Strieborný Darcovia" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronzový Darcovia" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Malý Sponzori" @@ -1886,7 +1895,7 @@ msgstr "Priečinky a Súbory:" #: editor/plugins/style_box_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" -msgstr "Ako to bude vyzerať:" +msgstr "Predzobraziť:" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "File:" @@ -2782,9 +2791,9 @@ msgid "" msgstr "" "Keď bude povolená táto možnosť, export alebo deploy vyprodukujú menej \n" "súboru executable.\n" -"Filesystém bude z projektu poskytovaný editorom v sieti. Na Androide, pre " -"deploy budete potrebovať USB kábel \n" -"rýchlejší výkon. Táto možnosť zrýchľuje proces testovania." +"Filesystém bude z projektu poskytovaný editorom v sieti.\n" +"Na Androide, predeploy budete potrebovať USB kábel pre rýchlejší výkon. Táto " +"možnosť zrýchľuje proces testovania." #: editor/editor_node.cpp msgid "Visible Collision Shapes" @@ -3053,19 +3062,19 @@ msgstr "Importovať Šablóny Zo ZIP File-u" #: editor/editor_node.cpp msgid "Template Package" -msgstr "Balíček Šablón" +msgstr "Balík Šablón" #: editor/editor_node.cpp msgid "Export Library" -msgstr "Exportovať Library" +msgstr "Exportovať Knižnicu" #: editor/editor_node.cpp msgid "Merge With Existing" -msgstr "Spojiť Z Existujúcim" +msgstr "Zlúčiť s existujúcim" #: editor/editor_node.cpp msgid "Open & Run a Script" -msgstr "Otvoriť & Spustiť Script" +msgstr "Otvoriť a vykonať skript" #: editor/editor_node.cpp msgid "New Inherited" @@ -3105,7 +3114,7 @@ msgstr "Otvoriť predchádzajúci Editor" #: editor/editor_node.h msgid "Warning!" -msgstr "Varovanie!" +msgstr "Upozornenie!" #: editor/editor_path.cpp msgid "No sub-resources found." @@ -3113,7 +3122,7 @@ msgstr "Nenašli sa žiadne \"sub-resources\"." #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" -msgstr "Vytváranie Zobrazenia \"Mesh-u\"" +msgstr "Vytváranie Predzobrazenia Mesh-u" #: editor/editor_plugin.cpp msgid "Thumbnail..." @@ -4223,7 +4232,7 @@ msgstr "Vyberte a premiestnite body, vytvorte body z RMB." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp msgid "Enable snap and show grid." -msgstr "Povoliť snap a show grid." +msgstr "Povoliť prichytenie a zobraziť mriežku." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4253,118 +4262,117 @@ msgstr "Pridať Trojuholník" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Change BlendSpace2D Limits" -msgstr "" +msgstr "Zmeniť Limity BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Change BlendSpace2D Labels" -msgstr "" +msgstr "Zmeniť Label BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Remove BlendSpace2D Point" -msgstr "Všetky vybrané" +msgstr "Vymazať BlendSpace2D Bod" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Remove BlendSpace2D Triangle" -msgstr "" +msgstr "Vymazať BlendSpace2D Trojuholník" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "BlendSpace2D does not belong to an AnimationTree node." -msgstr "" +msgstr "BlendSpace2D nepatrí ku AnimationTree node." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "No triangles exist, so no blending can take place." msgstr "" +"Neexistujú žiadne trojuholníky, takže si nemôže zabrať miesto žiadny " +"blending." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Toggle Auto Triangles" -msgstr "" +msgstr "Prepnúť Automatické Trojuholníky" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Create triangles by connecting points." -msgstr "" +msgstr "Vytvoriť trojuholníky spájaním bodov." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Erase points and triangles." -msgstr "" +msgstr "Vymazať body a trojuholníky." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Generate blend triangles automatically (instead of manually)" -msgstr "" +msgstr "Vygenerovať blend trojuholníky Automaticky (nie manuálne)" #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend:" -msgstr "" +msgstr "Blend:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Parameter Changed" -msgstr "" +msgstr "Parameter sa Zmenil" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "Edit Filters" -msgstr "Súbor:" +msgstr "Upraviť Filtre" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Output node can't be added to the blend tree." -msgstr "" +msgstr "Nemôžete pridať output node do blend tree." #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Add Node to BlendTree" -msgstr "" +msgstr "Pridať Node do BlendTree" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Node Moved" -msgstr "" +msgstr "Node sa pohol" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." -msgstr "" +msgstr "Nepodarilo sa pripojiť, port sa možno používa alebo je neplatný." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Nodes Connected" -msgstr "" +msgstr "Node-y Spojené" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Nodes Disconnected" -msgstr "" +msgstr "Node-y Odpojené" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Set Animation" -msgstr "Popis:" +msgstr "Nastaviť Animáciu" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Node" -msgstr "Všetky vybrané" +msgstr "Zmazať Node" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" -msgstr "" +msgstr "Zmazať Node(y)" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Toggle Filter On/Off" -msgstr "" +msgstr "Zapnúť/Vypnúť Filter" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Change Filter" -msgstr "" +msgstr "Zmeniť Filter" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "No animation player set, so unable to retrieve track names." msgstr "" +"Nieje nastavený Animačný Prehrávač, takže sa nepodarilo získať mená trackov." #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Player path set is invalid, so unable to retrieve track names." -msgstr "" +msgstr "Cesta prehrávača je neplatná, takže sa nepodarilo získať mená trackov." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/root_motion_editor_plugin.cpp @@ -4372,312 +4380,302 @@ msgid "" "Animation player has no valid root node path, so unable to retrieve track " "names." msgstr "" +"Animačný Prehrávač nemá žiadny platnú root node cestu, takže sa nepodarilo " +"zistiť mená trackov." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Anim Clips" -msgstr "Klipy Animácie:" +msgstr "Klipy Animácie" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Audio Clips" -msgstr "Zvukové Klipy:" +msgstr "Zvukové Klipy" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Functions" -msgstr "Funkcie:" +msgstr "Funkcie" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Node Renamed" -msgstr "" +msgstr "Node Premenovaný" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node..." -msgstr "" +msgstr "Pridať Node..." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Edit Filtered Tracks:" -msgstr "Súbor:" +msgstr "Upraviť Filtrované Tracky:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Enable Filtering" -msgstr "" +msgstr "Povoliť Filtrovanie" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "" +msgstr "Prepnúť Autoplay" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "" +msgstr "Nové Meno Animácie:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "" +msgstr "Nová Animácia" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "" +msgstr "Zmeniť Meno Animácie:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" -msgstr "" +msgstr "Naozaj chcete vymazať Animáciu?" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Remove Animation" -msgstr "" +msgstr "Vymazať Animáciu" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Invalid animation name!" -msgstr "" +msgstr "Meno animácie je Vadné!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation name already exists!" -msgstr "" +msgstr "Toto meno Animácie už existuje!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Rename Animation" -msgstr "" +msgstr "Premenovať Animáciu" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" -msgstr "" +msgstr "Blend sa Ďalej Zmenil" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Blend Time" -msgstr "" +msgstr "Zmeniť Blend Time" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Load Animation" -msgstr "" +msgstr "Načítať Animáciu" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" -msgstr "" +msgstr "Duplikovať Animáciu" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation to copy!" -msgstr "" +msgstr "Žiadne animácie na skopírovanie!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation resource on clipboard!" -msgstr "" +msgstr "Žiadny zroj animácie v clipboard!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" -msgstr "" +msgstr "Prilepená Animácia" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Paste Animation" -msgstr "" +msgstr "Prilepiť Animáciu" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation to edit!" -msgstr "" +msgstr "Žiadna animácia na úpravu!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" -msgstr "" +msgstr "Spusťiť vybranú animáciu odzadu z aktuálnej pozície. (A)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from end. (Shift+A)" -msgstr "" +msgstr "Spustiť vybranú animáciu odzadu z konca. (Shift+A)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Stop animation playback. (S)" -msgstr "" +msgstr "Zastaviť playback animácie. (S)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from start. (Shift+D)" -msgstr "" +msgstr "Spustiť vybranú animáciu od začiatku. (Shift+D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from current pos. (D)" -msgstr "" +msgstr "Spustiť vybranú animáciu z aktuálnej pozície. (D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation position (in seconds)." -msgstr "" +msgstr "Pozícia Animácie (v sekundách)." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Scale animation playback globally for the node." -msgstr "" +msgstr "Zväčšiť playback animácie globálne pre node." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" -msgstr "" +msgstr "Animačné Náradie" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation" msgstr "Animácie" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Edit Transitions..." -msgstr "Prechody" +msgstr "Upraviť Prechody..." #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Open in Inspector" -msgstr "Otvorit priečinok" +msgstr "Otvorit v Inšpektor-ovi" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Display list of animations in player." -msgstr "" +msgstr "Zobraziť list animácii v prehrávači." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Autoplay on Load" -msgstr "" +msgstr "Autoplay pri Načítaní" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" -msgstr "" +msgstr "Povoliť Onion Skinning" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Onion Skinning Options" -msgstr "" +msgstr "Onion Skinning Možnosti" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Directions" -msgstr "Popis:" +msgstr "Smery" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Past" -msgstr "Vložiť" +msgstr "Minulosť" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Future" -msgstr "" +msgstr "Budúcnosť" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Depth" -msgstr "" +msgstr "Hĺbka" #: editor/plugins/animation_player_editor_plugin.cpp msgid "1 step" -msgstr "" +msgstr "1 krok" #: editor/plugins/animation_player_editor_plugin.cpp msgid "2 steps" -msgstr "" +msgstr "2 kroky" #: editor/plugins/animation_player_editor_plugin.cpp msgid "3 steps" -msgstr "" +msgstr "3 kroky" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Differences Only" -msgstr "" +msgstr "Iba Odlišnosti" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Force White Modulate" -msgstr "" +msgstr "Force White Modulate" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Include Gizmos (3D)" -msgstr "" +msgstr "Zahŕňa Gizmos (3D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pin AnimationPlayer" -msgstr "" +msgstr "Pripnúť Prehrávač Animácie" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Create New Animation" -msgstr "" +msgstr "Vytvoriť Novú Animáciu" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Name:" -msgstr "" +msgstr "Meno Animácie:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp msgid "Error!" -msgstr "" +msgstr "Chyba!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Times:" -msgstr "" +msgstr "Blend Times:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Next (Auto Queue):" -msgstr "" +msgstr "Ďalej (Automatický Rad):" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Cross-Animation Blend Times" -msgstr "" +msgstr "Cross-Animation Blend Times" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Move Node" -msgstr "Vložiť" +msgstr "Premiestniť Node" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition exists!" -msgstr "Prechody" +msgstr "Prechod existuje!" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Add Transition" -msgstr "Prechody" +msgstr "Pridať Prechod" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Add Node" -msgstr "" +msgstr "Pridať Node" #: editor/plugins/animation_state_machine_editor.cpp msgid "End" -msgstr "" +msgstr "Koniec" #: editor/plugins/animation_state_machine_editor.cpp msgid "Immediate" -msgstr "" +msgstr "Okamžite" #: editor/plugins/animation_state_machine_editor.cpp msgid "Sync" -msgstr "" +msgstr "Synchronizácia" #: editor/plugins/animation_state_machine_editor.cpp msgid "At End" -msgstr "" +msgstr "Na Konci" #: editor/plugins/animation_state_machine_editor.cpp msgid "Travel" -msgstr "" +msgstr "Cestovať" #: editor/plugins/animation_state_machine_editor.cpp msgid "Start and end nodes are needed for a sub-transition." -msgstr "" +msgstr "Pre sub-prechod je potrebné začať a skončiť node-y." #: editor/plugins/animation_state_machine_editor.cpp msgid "No playback resource set at path: %s." -msgstr "" +msgstr "Nieje nastavený žiadny zdrojový playback ako cesta: %s." #: editor/plugins/animation_state_machine_editor.cpp msgid "Node Removed" -msgstr "" +msgstr "Node Zmazaný" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition Removed" -msgstr "Prechody" +msgstr "Prechod Vymazaný" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" -msgstr "" +msgstr "Nastaviť Začiatočný Node (Autoplay)" #: editor/plugins/animation_state_machine_editor.cpp msgid "" @@ -4685,363 +4683,356 @@ msgid "" "RMB to add new nodes.\n" "Shift+LMB to create connections." msgstr "" +"Vybrať a premiestniť node-y.\n" +"Pravím tlačítkom myši pridáte node-y.\n" +"Shift+Lavé tlačíko myši vytvoriť pripojenie." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Create new nodes." -msgstr "Vytvoriť adresár" +msgstr "Vytvoriť Nové Node-y." #: editor/plugins/animation_state_machine_editor.cpp msgid "Connect nodes." -msgstr "" +msgstr "Spojiť Node-y." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Remove selected node or transition." -msgstr "Odstrániť výber" +msgstr "Vymazať označený node alebo prechod." #: editor/plugins/animation_state_machine_editor.cpp msgid "Toggle autoplay this animation on start, restart or seek to zero." msgstr "" +"Prepnúť autoplay na tejto animácii pri štarte, reštarte alebo seek to zero." #: editor/plugins/animation_state_machine_editor.cpp msgid "Set the end animation. This is useful for sub-transitions." -msgstr "" +msgstr "Nastaviť koniec animácie. Toto je užitočné pre sub-prechody." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition: " -msgstr "Prechody" +msgstr "Prechody: " #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Play Mode:" -msgstr "Cesta k Node:" +msgstr "Prehrať Mód:" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "AnimationTree" -msgstr "" +msgstr "AnimačnýStrom" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "New name:" -msgstr "" +msgstr "Nové Meno:" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Scale:" -msgstr "" +msgstr "Veľkosť:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Fade In (s):" -msgstr "" +msgstr "Miznutie do (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Fade Out (s):" -msgstr "" +msgstr "Miznutie Von (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend" -msgstr "" +msgstr "Blend" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Mix" -msgstr "" +msgstr "Mix" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Auto Restart:" -msgstr "" +msgstr "Auto Reštart:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Restart (s):" -msgstr "" +msgstr "Reštart (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Random Restart (s):" -msgstr "" +msgstr "Náhodný Reštart (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Start!" -msgstr "" +msgstr "Štart!" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Amount:" -msgstr "" +msgstr "Množstvo:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend 0:" -msgstr "" +msgstr "Blend 0:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend 1:" -msgstr "" +msgstr "Blend 1:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "X-Fade Time (s):" -msgstr "" +msgstr "Čas X-Miznutia (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Current:" -msgstr "" +msgstr "Aktuálny:" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Add Input" -msgstr "" +msgstr "Pridať Vstup" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Clear Auto-Advance" -msgstr "" +msgstr "Čistý Auto-Advance" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Set Auto-Advance" -msgstr "" +msgstr "Nastaviť Auto-Advance" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Delete Input" -msgstr "" +msgstr "Zmazať Vstup" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation tree is valid." -msgstr "" +msgstr "Animačný Strom je platný." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation tree is invalid." -msgstr "" +msgstr "Animačný Strom je neplatný." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation Node" -msgstr "" +msgstr "Animačný Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "OneShot Node" -msgstr "" +msgstr "OneShot Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Mix Node" -msgstr "" +msgstr "Mix Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend2 Node" -msgstr "" +msgstr "Blend2 Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend3 Node" -msgstr "" +msgstr "Blend3 Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend4 Node" -msgstr "" +msgstr "Blend4 Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "TimeScale Node" -msgstr "" +msgstr "TimeScale Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "TimeSeek Node" -msgstr "" +msgstr "TimeSeek Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Transition Node" -msgstr "" +msgstr "Prechodový Node" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Import Animations..." -msgstr "" +msgstr "Importovať Animácie..." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Edit Node Filters" -msgstr "" +msgstr "Nastaviť Node Filtre" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Filters..." -msgstr "" +msgstr "Filtre..." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Contents:" -msgstr "Konštanty:" +msgstr "Obsah:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "View Files" -msgstr "Súbor:" +msgstr "Zobraziť Súbory" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." -msgstr "" +msgstr "Chyba pripojenia, prosím skúste znovu." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" -msgstr "" +msgstr "Nepodarilo sa pripojiť k host:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response from host:" -msgstr "" +msgstr "Žiadna odozva od host-a:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve hostname:" -msgstr "" +msgstr "Nepodarilo sa rozlúštiť hostove meno:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" -msgstr "" +msgstr "Žiadosť zlyhala, spätný kód:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed." -msgstr "" +msgstr "Žiadosť zlyhala." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Cannot save response to:" -msgstr "Nemôžete odstrániť:" +msgstr "Nepodarilo sa uložiť odpoveď do:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." -msgstr "" +msgstr "Chyba písania." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" -msgstr "" +msgstr "Žiadosť zlyhala, príliš veľa presmerovaní" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Redirect loop." -msgstr "" +msgstr "Presmerovací loop." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, timeout" -msgstr "" +msgstr "Žiadosť zlyhala, čas vypršal" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Timeout." -msgstr "Čas:" +msgstr "Čas vypršal." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." -msgstr "" +msgstr "Zlý download hash, za predpokladu že bolo narábané so súborom." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Expected:" -msgstr "" +msgstr "Očakávané:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Got:" -msgstr "" +msgstr "Má:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed sha256 hash check" -msgstr "" +msgstr "Zlyhalo sha256 hash check" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" -msgstr "" +msgstr "Zlyhalo Sťahovanie Prostriedku:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading (%s / %s)..." -msgstr "" +msgstr "Sťahovanie (%s / %s)..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading..." -msgstr "" +msgstr "Sťahovanie..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Resolving..." -msgstr "" +msgstr "Rieši sa..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" -msgstr "" +msgstr "Pri vytváraní žiadosťi nastala chyba" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Idle" -msgstr "" +msgstr "Idle" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Install..." -msgstr "Inštalovať" +msgstr "Inštalovať..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Retry" -msgstr "" +msgstr "Skúsiť znova" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download Error" -msgstr "" +msgstr "Chyba Sťahovania" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" -msgstr "" +msgstr "Sťahovanie tohoto prostriedku už prebieha!" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Recently Updated" -msgstr "" +msgstr "Nedávno Vylepšené" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Least Recently Updated" -msgstr "" +msgstr "Za Poslednú Dobu Najmenej Aktualizované" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Name (A-Z)" -msgstr "" +msgstr "Meno (A-Z)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Name (Z-A)" -msgstr "" +msgstr "Meno (Z-A)" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "License (A-Z)" -msgstr "Licencia" +msgstr "Licencia (A-Z)" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "License (Z-A)" -msgstr "Licencia" +msgstr "Licencia (Z-A)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "First" -msgstr "" +msgstr "Prvý" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Previous" -msgstr "" +msgstr "Minulý" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Next" -msgstr "" +msgstr "Ďalší" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Last" -msgstr "" +msgstr "Posledný" #: editor/plugins/asset_library_editor_plugin.cpp msgid "All" -msgstr "" +msgstr "Všetky" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No results for \"%s\"." -msgstr "" +msgstr "Žiadne výsledky pre \"%s\"." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Import..." -msgstr "" +msgstr "Import..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Plugins..." -msgstr "" +msgstr "Pluginy..." #: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" -msgstr "" +msgstr "Zoradiť:" #: editor/plugins/asset_library_editor_plugin.cpp #: editor/project_settings_editor.cpp msgid "Category:" -msgstr "" +msgstr "Kategória:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Site:" @@ -5049,23 +5040,23 @@ msgstr "Stránka:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Support" -msgstr "" +msgstr "Podpora" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Official" -msgstr "" +msgstr "Oficiálne" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Testing" -msgstr "" +msgstr "Testovanie" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Loading..." -msgstr "" +msgstr "Načitávanie..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" -msgstr "" +msgstr "Prostriedky Súboru ZIP" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" @@ -5073,216 +5064,215 @@ msgid "" "Save your scene (for images to be saved in the same dir), or pick a save " "path from the BakedLightmap properties." msgstr "" +"Nedá sa určiť cesta pre uloženie lightmap obrázkov.\n" +"Uložte svoju scénu (Aby sa obrázky na to isté miesto), alebo vyberte cestu " +"na uloženie so BakedLightmap vlastností." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "" "No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake " "Light' flag is on." msgstr "" +"Žiadne mesh-e na bake. Uistite sa že obsahujú UV2 channel a je na ňom 'Bake " +"Light' vlajka." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Failed creating lightmap images, make sure path is writable." msgstr "" +"Nepodarilo sa vytvoriť lightmap obrázok, uistite sa že či je cesta " +"zapisovateľná." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Bake Lightmaps" -msgstr "" +msgstr "Bake Lightmaps" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp msgid "Preview" -msgstr "" +msgstr "Predzobraziť" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" -msgstr "" +msgstr "Konfigurovať Prichytenie" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Grid Offset:" -msgstr "" +msgstr "Odchýlka Mriežky:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Grid Step:" -msgstr "" +msgstr "Krok Mriežky:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Primary Line Every:" -msgstr "" +msgstr "Všetky Primary Line:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "steps" -msgstr "" +msgstr "kroky" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Offset:" -msgstr "" +msgstr "Odchýlka Rotácie:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Step:" -msgstr "" +msgstr "Krok Rotácie:" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Step:" -msgstr "Zmeniť veľkosť výberu" +msgstr "Krok Veľkosti:" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move Vertical Guide" -msgstr "Popis:" +msgstr "Presunúť Vertikálny Návod" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Create Vertical Guide" -msgstr "Popis:" +msgstr "Vytvoriť Vertikálny Návod" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Remove Vertical Guide" -msgstr "Všetky vybrané" +msgstr "Vymazať Vertikálny Návod" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move Horizontal Guide" -msgstr "Všetky vybrané" +msgstr "Presunúť Horizontálny Návod" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Create Horizontal Guide" -msgstr "Popis:" +msgstr "Vytvoriť Horizontálny Návod" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Remove Horizontal Guide" -msgstr "Všetky vybrané" +msgstr "Vymazať Horizontálny Návod" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Create Horizontal and Vertical Guides" -msgstr "Popis:" +msgstr "Vytvoriť Horizontálne a Vertikálne Návody" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move pivot" -msgstr "Všetky vybrané" +msgstr "Presunúť pivot" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotate CanvasItem" -msgstr "" +msgstr "Otočiť CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move anchor" -msgstr "" +msgstr "Presunúť kovadlinu" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Resize CanvasItem" -msgstr "" +msgstr "Zmeniť Veľkosť CanvasItem-u" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale CanvasItem" -msgstr "" +msgstr "Veľkosť CanvasItem-u" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" -msgstr "" +msgstr "Presunúť CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." msgstr "" +"Dieťa kontajnerov majú svoje kovadliny a okraje prepísané svojimi rodičmi." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." -msgstr "" +msgstr "Prenastaviť pre kovadliny a okraje hodnoty Control node-u." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "When active, moving Control nodes changes their anchors instead of their " "margins." msgstr "" +"Pri aktivovaní, pohybovanim Control node-ov zmeníte ich kovadliny namiesto " +"ich okrajov." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Left" -msgstr "" +msgstr "Vľavo Hore" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Right" -msgstr "" +msgstr "Vpravo Hore" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Right" -msgstr "" +msgstr "Vpravo Dole" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Left" -msgstr "" +msgstr "Vľavo Dole" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Left" -msgstr "" +msgstr "Od Stredu Vľavo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Top" -msgstr "" +msgstr "Od Stredu Hore" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Right" -msgstr "" +msgstr "Od Stredu Vpravo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Bottom" -msgstr "" +msgstr "Od Stredu Dole" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center" -msgstr "" +msgstr "V Strede" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Left Wide" -msgstr "Lineárne" +msgstr "Ľavá Šírka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Wide" -msgstr "" +msgstr "Horná Šírka" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Right Wide" -msgstr "Lineárne" +msgstr "Pravá Šírka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Wide" -msgstr "" +msgstr "Dolná Šírka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "VCenter Wide" -msgstr "" +msgstr "VerStredná Šírka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "HCenter Wide" -msgstr "" +msgstr "HorStredná Šírka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Full Rect" -msgstr "" +msgstr "Plný Obdĺžnik" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Keep Ratio" -msgstr "" +msgstr "Udržovať Pomer" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" -msgstr "" +msgstr "Iba Kovadliny" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors and Margins" -msgstr "" +msgstr "Zmeniť Kovadliny a Okraje" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Anchors" -msgstr "" +msgstr "Zmeniť Kovadliny" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5290,6 +5280,8 @@ msgid "" "Game Camera Override\n" "Overrides game camera with editor viewport camera." msgstr "" +"Prepísanie Hernej Kamery\n" +"Prepísať hernú kameru s viewport kamerou editora." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5297,104 +5289,103 @@ msgid "" "Game Camera Override\n" "No game instance running." msgstr "" +"Prepísanie Hernej Kamery\n" +"Nieje spustená žiadna herná inštancia." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock Selected" -msgstr "Všetky vybrané" +msgstr "Zamknúť Označené" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Unlock Selected" -msgstr "Všetky vybrané" +msgstr "Odomknúť Označené" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Group Selected" -msgstr "Odstrániť výber" +msgstr "Pridať Označené do Skupiny" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected" -msgstr "Odstrániť výber" +msgstr "Odskupiť Označené" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" -msgstr "" +msgstr "Prilepiť Pózu" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Clear Guides" -msgstr "Všetky vybrané" +msgstr "Zmazať Návody" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Custom Bone(s) from Node(s)" -msgstr "" +msgstr "Vytvoriť Vlastnú Kosť(i) z Node-u(ou)" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Clear Bones" -msgstr "Všetky vybrané" +msgstr "Zmazať Kosti" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" -msgstr "" +msgstr "Vytvoriť IK Reťaz" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear IK Chain" -msgstr "" +msgstr "Zmazať IK Reťaz" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." msgstr "" +"Upozornenie: Dieťa kontajnera získa ich pozíciu a veľkosť iba podľa svojho " +"rodiča." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Reset" -msgstr "" +msgstr "Resetovať Priblíženie" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Select Mode" -msgstr "" +msgstr "Vybrať Režim" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" -msgstr "" +msgstr "Potiahnutím: Otáčenie" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+Drag: Move" -msgstr "" +msgstr "Alt+Potiahnutie: Pohyb" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." msgstr "" +"Stačte 'v' pre Zmenu Pivot-a, 'Shift+v' pre hýbanie s Pivot-om (keď sa hýbe)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+RMB: Depth list selection" -msgstr "" +msgstr "Alt+RMB: Výber hĺbkového zoznamu" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Move Mode" -msgstr "" +msgstr "Move Mode" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Mode" -msgstr "" +msgstr "Rotačný Režim" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Mode" -msgstr "" +msgstr "Zmena Veľkosti" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5402,187 +5393,186 @@ msgid "" "Show a list of all objects at the position clicked\n" "(same as Alt+RMB in select mode)." msgstr "" +"Zobraziť list všetkých objektov na kliknutej pozícii\n" +"(rovnako ako Alt+RMB v výberovom režime)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Click to change object's rotation pivot." -msgstr "" +msgstr "Kliknite pre zmenu rotačného pivota objektu." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan Mode" -msgstr "" +msgstr "Pohyb Mód" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Ruler Mode" -msgstr "Režim Interpolácie" +msgstr "Pravítko" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle smart snapping." -msgstr "" +msgstr "Prepnúť smart prichytenie." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Smart Snap" -msgstr "" +msgstr "Použiť Smart Prichytenie" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle grid snapping." -msgstr "" +msgstr "Prepnúť Prichytenie Mriežky." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Grid Snap" -msgstr "" +msgstr "Použiť Príchyt Mriežky" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snapping Options" -msgstr "" +msgstr "Možnosti Prichytávania" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Rotation Snap" -msgstr "" +msgstr "Použiť Prichytávanie Rotácie" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Scale Snap" -msgstr "" +msgstr "Použiť Prichytávanie Veľkosti" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap Relative" -msgstr "" +msgstr "Prichytiť Relatívne" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Pixel Snap" -msgstr "" +msgstr "Použiť Pixelové Prichytenie" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Smart Snapping" -msgstr "" +msgstr "Smart Prichytávanie" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Configure Snap..." -msgstr "" +msgstr "Konfigurovať Prichytávanie..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Parent" -msgstr "" +msgstr "Prichytiť na Rodiča" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Anchor" -msgstr "" +msgstr "Prichytiť na Kovadlinu Node-u" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Sides" -msgstr "" +msgstr "Prichitiť na strany Node-u" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Node Center" -msgstr "" +msgstr "Prichytiť na Stred Node-u" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Snap to Other Nodes" -msgstr "Vložiť" +msgstr "Prichytiť na Ostatné Node-y" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Snap to Guides" -msgstr "" +msgstr "Prichytiť na Návody" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." -msgstr "" +msgstr "Zamknúť označený objekt na mieste (už sa s ním nebude dať hýbať)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." -msgstr "" +msgstr "Odomknúť označený objekt (dá sa s ním hýbať)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." -msgstr "" +msgstr "Uistite sa že sa nedá označiť dieťa objektu." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." -msgstr "" +msgstr "Aby ste označili dieťa objektu tak mu musíte obnoviť schopnosť." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Všetky vybrané" +msgstr "Nastavenia Kostry" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" -msgstr "" +msgstr "Zobraziť Kosti" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" -msgstr "" +msgstr "Vytvoriť Vlastnú Kosť(i) z Node-u(ou)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Custom Bones" -msgstr "" +msgstr "Zmazať Vlastné Kosti" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "" +msgstr "Zobrazenie" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Always Show Grid" -msgstr "" +msgstr "Vždy Zobraziť Mriežku" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Helpers" -msgstr "" +msgstr "Zobraziť Pomocníkov" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Rulers" -msgstr "" +msgstr "Zobraziť Pravítka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Guides" -msgstr "" +msgstr "Zobraziť Návody" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Origin" -msgstr "" +msgstr "Zobraziť Pôvod" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Viewport" -msgstr "" +msgstr "Zobraziť Výrez" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Zobraziť Skupinu a Zamknúť Ikony" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" -msgstr "" +msgstr "Výber Stredu" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Frame Selection" -msgstr "" +msgstr "Výber Frame-u" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Preview Canvas Scale" -msgstr "" +msgstr "Predzobraziť Veľkosť Plátna" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Prekladová maska na vkladanie kľúčov." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Rotačná maska na vkladanie kľúčov." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Veľkostná maska na vkladanie kľúčov." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert keys (based on mask)." -msgstr "" +msgstr "Vkladanie kľúčov (založené na maske)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5591,67 +5581,69 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Automaticky vložiť kľúče keď sú objekty preložené, rotované alebo zväčšené " +"(založené na maske).\n" +"Kľúče sú pridané iba do existujúcich track-ov, nebudú vytvorené žiadne nové " +"tracky.\n" +"Prvý krát musia byť kľúče vložené manuálne." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Animácia Vložiť Kľúč" +msgstr "Automaticky Vložiť Kľúč" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Animation Key and Pose Options" -msgstr "Dĺžka Času Animácie (v sekundách)" +msgstr "Animačný Kľúč a Možnosti Pozície" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" -msgstr "" +msgstr "Vložte Kľúč (Existujúce Tracky)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Copy Pose" -msgstr "" +msgstr "Kopírovať Pozíciu" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Pose" -msgstr "" +msgstr "Zmazať Pozíciu" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "" +msgstr "Zdvojnásobiť krok mriežky dvomi" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "" +msgstr "vydeliť krok mriežky dvomi" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan View" -msgstr "" +msgstr "Zobrazenie Pan" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" -msgstr "" +msgstr "Pridať %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Adding %s..." -msgstr "" +msgstr "Pridávanie %s..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Cannot instantiate multiple nodes without root." -msgstr "" +msgstr "Nie je možné vytvoriť inštanciu viacerých node-ov bez koreňa." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Create Node" -msgstr "" +msgstr "Vytvoriť Node" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Error instancing scene from %s" -msgstr "" +msgstr "Chyba pri inštalácovaní scény z %s" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Change Default Type" -msgstr "Zmeniť %s Typ" +msgstr "Zmeniť Predvolený Typ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5660,9 +5652,8 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -#, fuzzy msgid "Create Polygon3D" -msgstr "Vytvoriť adresár" +msgstr "Vytvoriť Polygon3D" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly" @@ -6529,11 +6520,11 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Snap" -msgstr "" +msgstr "Prichytiť" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Enable Snap" -msgstr "" +msgstr "Povoliť Prichytávanie" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid" @@ -7356,7 +7347,7 @@ msgstr "Filter:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Cinematic Preview" -msgstr "" +msgstr "Filmové Predzobrazenie" #: editor/plugins/spatial_editor_plugin.cpp msgid "Not available when using the GLES2 renderer." @@ -7419,11 +7410,11 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Nodes To Floor" -msgstr "" +msgstr "Prichytiť Node-y Na Zem" #: editor/plugins/spatial_editor_plugin.cpp msgid "Couldn't find a solid floor to snap the selection to." -msgstr "" +msgstr "Nepodarilo sa nájsť pevnú zem na prichytenie výberu." #: editor/plugins/spatial_editor_plugin.cpp msgid "" @@ -7438,7 +7429,7 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Use Snap" -msgstr "" +msgstr "Použiť Prichytávanie" #: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" @@ -7492,7 +7483,7 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Object to Floor" -msgstr "" +msgstr "Prichytiť Objekt na Zem" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -7541,19 +7532,19 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" -msgstr "" +msgstr "Nastavenie Prichytenia" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "" +msgstr "Preložiť Preloženie:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "" +msgstr "Prichytenie Rotácie (v stupňoch.):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" -msgstr "" +msgstr "Prichytenie Veľkosti (%):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" @@ -7610,7 +7601,7 @@ msgstr "Vytvoriť adresár" #: editor/plugins/sprite_editor_plugin.cpp msgid "Mesh2D Preview" -msgstr "" +msgstr "Predzobraziť Mash2D" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -7619,7 +7610,7 @@ msgstr "Vytvoriť adresár" #: editor/plugins/sprite_editor_plugin.cpp msgid "Polygon2D Preview" -msgstr "" +msgstr "Predzobraziť Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -7627,9 +7618,8 @@ msgid "Create CollisionPolygon2D" msgstr "Vytvoriť adresár" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "CollisionPolygon2D Preview" -msgstr "Vytvoriť adresár" +msgstr "Predzobraziť CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -7637,9 +7627,8 @@ msgid "Create LightOccluder2D" msgstr "Vytvoriť adresár" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "LightOccluder2D Preview" -msgstr "Vytvoriť adresár" +msgstr "Predzobraziť LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -7701,7 +7690,7 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Update Preview" -msgstr "" +msgstr "Predzobraziť Vylepšenie" #: editor/plugins/sprite_editor_plugin.cpp msgid "Settings:" @@ -7835,7 +7824,7 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" -msgstr "" +msgstr "Režim Prichytenia:" #: editor/plugins/texture_region_editor_plugin.cpp #: scene/resources/visual_shader.cpp @@ -7844,11 +7833,11 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" -msgstr "" +msgstr "Prichytenie Pixelov" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Grid Snap" -msgstr "" +msgstr "Prichytenie Mriežky" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Auto Slice" @@ -8274,6 +8263,7 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" +"Povoliť prichytávanie a zobraziť mriežku (konfigurovatelné cez inšpektor)." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Display Tile Names (Hold Alt Key)" @@ -8322,11 +8312,12 @@ msgid "Delete selected Rect." msgstr "Všetky vybrané" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "" "Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "Vytvoriť adresár" +msgstr "" +"Vybrať aktuálne upravený pod-nadpis.\n" +"Kliknite na ďalší Nadpis aby ste ho upravili." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -8334,13 +8325,16 @@ msgid "Delete polygon." msgstr "Všetky vybrané" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" "Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." -msgstr "Vytvoriť adresár" +msgstr "" +"LMB: Zapnúť bit.\n" +"RMB: Vypnúť bit.\n" +"Shift+LMB: Nastaviť wildcard bit.\n" +"Kliknite na ďalší Nadpis pre úpravu." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -8356,11 +8350,12 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "" "Select sub-tile to change its z index.\n" "Click on another Tile to edit it." -msgstr "Vytvoriť adresár" +msgstr "" +"Vybrať podnadpis aby ste zmenili jeho index.\n" +"Kliknite na ďalší Nadpis na úpravu." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Region" @@ -10488,14 +10483,12 @@ msgid "Make node as Root" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Všetky vybrané" +msgstr "Zmazať %d node-y a nejaké deti?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Všetky vybrané" +msgstr "Zmazať %d node-y?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -10506,9 +10499,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Všetky vybrané" +msgstr "Zmazať node \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." @@ -10711,9 +10703,8 @@ msgid "Button Group" msgstr "Tlačidlo" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "(Connecting From)" -msgstr "Pripojiť Signál: " +msgstr "(Pripájanie z)" #: editor/scene_tree_editor.cpp msgid "Node configuration warning:" @@ -10917,9 +10908,8 @@ msgid "Attach Node Script" msgstr "Popis:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Remote " -msgstr "Všetky vybrané" +msgstr "Diaľkový " #: editor/script_editor_debugger.cpp msgid "Bytes:" @@ -11312,7 +11302,7 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Snap View" -msgstr "" +msgstr "Prichytiť Zobrazenie" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Disabled" @@ -12361,13 +12351,12 @@ msgid "" msgstr "" #: scene/3d/collision_shape.cpp -#, fuzzy msgid "" "A shape must be provided for CollisionShape to function. Please create a " "shape resource for it." msgstr "" -"Musíte nastaviť tvar objektu CollisionShape2D aby fungoval. Prosím, vytvorte " -"preň tvarový objekt!" +"Aby CollisionShape fungoval musíte nastaviť tvar. Prosím, vytvorte preň " +"tvarový objekt." #: scene/3d/collision_shape.cpp msgid "" @@ -12625,9 +12614,8 @@ msgid "Viewport size must be greater than 0 to render anything." msgstr "" #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid source for preview." -msgstr "Nesprávna veľkosť písma." +msgstr "Neplatný zdroj pre predzobrazenie." #: scene/resources/visual_shader_nodes.cpp #, fuzzy diff --git a/editor/translations/sl.po b/editor/translations/sl.po index c40bc3b40f..4316ed06b1 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -1193,6 +1193,16 @@ msgid "Gold Sponsors" msgstr "Zlati Sponzorji" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Srebrni Donatorji" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronasti Donatorji" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Majhni Sponzorji" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 2df44bdd5b..7c6d2e2f74 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -1135,6 +1135,16 @@ msgid "Gold Sponsors" msgstr "Sponsorat Flori" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Dhuruesit Argjend" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Dhuruesit Bronz" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsorat" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 0bb67647f8..84536220b9 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -1250,6 +1250,16 @@ msgid "Gold Sponsors" msgstr "Златни спонзори" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Сребрни донатори" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Бронзани донатори" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Мали спонзори" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 4dece6c33c..b53b92a4e1 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -1137,6 +1137,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index d3cda1a61a..d6e91a34b3 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -17,12 +17,13 @@ # Kristoffer Grundström <swedishsailfishosuser@tutanota.com>, 2020. # Jonas Robertsson <jonas.robertsson@posteo.net>, 2020. # André Andersson <andre.eric.andersson@gmail.com>, 2020. +# Andreas Westrell <andreas.westrell@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-15 02:42+0000\n" -"Last-Translator: Jonas Robertsson <jonas.robertsson@posteo.net>\n" +"PO-Revision-Date: 2020-08-18 02:54+0000\n" +"Last-Translator: Andreas Westrell <andreas.westrell@gmail.com>\n" "Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/" "godot/sv/>\n" "Language: sv\n" @@ -1150,6 +1151,16 @@ msgid "Gold Sponsors" msgstr "Guldsponsorer" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Silverdonatorer" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronsdonatorer" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Minisponsorer" @@ -1231,9 +1242,8 @@ msgid "Success!" msgstr "Klart!" #: editor/editor_asset_installer.cpp -#, fuzzy msgid "Package Contents:" -msgstr "Innehåll:" +msgstr "Packet Innehåll:" #: editor/editor_asset_installer.cpp editor/editor_node.cpp msgid "Install" @@ -1256,9 +1266,8 @@ msgid "Rename Audio Bus" msgstr "Byt namn på Ljud-Buss" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Change Audio Bus Volume" -msgstr "Växla Ljud-Buss Solo" +msgstr "Växla Ljud-Buss Volum" #: editor/editor_audio_buses.cpp msgid "Toggle Audio Bus Solo" @@ -1385,9 +1394,8 @@ msgid "Add Bus" msgstr "Lägg till Buss" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add a new Audio Bus to this layout." -msgstr "Spara Ljud-Buss Layout Som..." +msgstr "Lägg till en ny Audio-Buss för detta layout" #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp diff --git a/editor/translations/ta.po b/editor/translations/ta.po index 01cbcc1881..cf057954a2 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -4,13 +4,14 @@ # This file is distributed under the same license as the Godot source code. # # Senthil Kumar K <logickumar@gmail.com>, 2017. -# +# Survesh VRL <123survesh@gmail.com>, 2020. +# Sridhar <sreeafmarketing@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:43+0100\n" -"Last-Translator: Senthil Kumar K <logickumar@gmail.com>\n" +"PO-Revision-Date: 2020-09-01 10:38+0000\n" +"Last-Translator: Sridhar <sreeafmarketing@gmail.com>\n" "Language-Team: Tamil <https://hosted.weblate.org/projects/godot-engine/godot/" "ta/>\n" "Language: ta\n" @@ -18,34 +19,37 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "" +msgstr "தவறான வகை வாதம் மாற்று(), TYPE_ * மாறிலிகளைப் பயன்படுத்தவும்." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "நீளமுள்ள சொல் (ஒரு எழுத்து) எதிர்பார்க்கப்படுகிறது." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "" +msgstr "டிகோடிங் போதுமான பைட்டுகள் இல்லை, அல்லது தவறான வடிவத்தில் உள்ளது." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "தவறான உள்ளீடு% i (அனுப்பப்படவில்லை) இல் வெளிப்பாட்டில்" #: core/math/expression.cpp +#, fuzzy msgid "self can't be used because instance is null (not passed)" msgstr "" +"சுயத்தை பயன்படுத்த முடியாது, ஏனெனில் உதாரணம்(instance) பூஜ்யமானது " +"(நிறைவேற்றப்படவில்லை)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "ஆபரேட்டர்% s,% s மற்றும்% s க்கு தவறான செயல்பாடுகள் உள்ளது." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" @@ -1129,6 +1133,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/te.po b/editor/translations/te.po index 3523306b0d..3ad5326ea6 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -1107,6 +1107,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index 279f8c08ba..673cca50b2 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -6,12 +6,13 @@ # Poommetee Ketson (Noshyaar) <poommetee@protonmail.com>, 2017-2018. # Thanachart Monpassorn <nunf_2539@hotmail.com>, 2020. # Anonymous <noreply@weblate.org>, 2020. +# Lon3r <mptube.p@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-05-26 13:41+0000\n" -"Last-Translator: Thanachart Monpassorn <nunf_2539@hotmail.com>\n" +"PO-Revision-Date: 2020-08-28 13:09+0000\n" +"Last-Translator: Lon3r <mptube.p@gmail.com>\n" "Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/" "th/>\n" "Language: th\n" @@ -19,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -744,9 +745,8 @@ msgid "Method in target node must be specified." msgstr "ต้องระบุเมธอดในโหนดเป้าหมาย" #: editor/connections_dialog.cpp -#, fuzzy msgid "Method name must be a valid identifier." -msgstr "ไม่สามารถใช้ชื่อนี้ได้:" +msgstr "ไม่สามารถใช้ชื่อนี้ได้." #: editor/connections_dialog.cpp msgid "" @@ -1122,6 +1122,16 @@ msgid "Gold Sponsors" msgstr "ผู้สนับสนุนระดับทอง" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "ผู้บริจาคระดับเงิน" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "ผู้บริจาคระดับทองแดง" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "ผู้สนับสนุน" @@ -1438,7 +1448,7 @@ msgstr "จัดลำดับออโต้โหลด" #: editor/editor_autoload_settings.cpp msgid "Can't add autoload:" -msgstr "" +msgstr "เพิ่มออโต้โหลดไม่ได้:" #: editor/editor_autoload_settings.cpp msgid "Add AutoLoad" @@ -1607,7 +1617,7 @@ msgstr "โหมดเคลื่อนย้าย" #: editor/editor_feature_profile.cpp #, fuzzy msgid "FileSystem and Import Docks" -msgstr "ระบบไฟล์" +msgstr "ระบบไฟล์ และ นำเข้า" #: editor/editor_feature_profile.cpp msgid "Erase profile '%s'? (no undo)" @@ -2051,7 +2061,7 @@ msgstr "กำหนด" #: editor/editor_inspector.cpp msgid "Set Multiple:" -msgstr "" +msgstr "กำหนด หลายอย่าง:" #: editor/editor_log.cpp msgid "Output:" @@ -2103,19 +2113,21 @@ msgstr "โหนด" #: editor/editor_network_profiler.cpp msgid "Incoming RPC" -msgstr "" +msgstr "RPC กำลังมา" #: editor/editor_network_profiler.cpp msgid "Incoming RSET" -msgstr "" +msgstr "RSET กำลังมา" #: editor/editor_network_profiler.cpp +#, fuzzy msgid "Outgoing RPC" -msgstr "" +msgstr "RPC กำลังออก" #: editor/editor_network_profiler.cpp +#, fuzzy msgid "Outgoing RSET" -msgstr "" +msgstr "RSET กำลังออก" #: editor/editor_node.cpp editor/project_manager.cpp msgid "New Window" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index edc01421d2..7710872d7b 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -50,12 +50,13 @@ # Vedat Günel <gunel15@itu.edu.tr>, 2020. # Ahmet Elgün <ahmetelgn@gmail.com>, 2020. # Efruz Yıldırır <efruzyildirir@gmail.com>, 2020. +# Hazar <duurkak@yandex.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-06 04:41+0000\n" -"Last-Translator: Efruz Yıldırır <efruzyildirir@gmail.com>\n" +"PO-Revision-Date: 2020-08-20 15:20+0000\n" +"Last-Translator: Hazar <duurkak@yandex.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -63,7 +64,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1181,6 +1182,16 @@ msgid "Gold Sponsors" msgstr "Altın Sponsorlar" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Gümüş Bağışçılar" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Bronz Bağışçılar" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Mini Sponsorlar" @@ -7431,6 +7442,11 @@ msgid "" "Closed eye: Gizmo is hidden.\n" "Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")." msgstr "" +"Görünürlük ifadelerini değiştirmek için tıklayın.\n" +"\n" +"Açık göz: Gizmo görünür.\n" +"Kapalı göz: Gizmo görünmez.\n" +"Yarı-açık göz: Gizmo aynı zamanda saydam yüzeylerden görünür (\"x-ray\")." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Nodes To Floor" @@ -10516,9 +10532,8 @@ msgid "Instance Child Scene" msgstr "Çocuk Sahnesini Örnekle" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Detach Script" -msgstr "Betik İliştir" +msgstr "Betiği Ayır" #: editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." @@ -10555,7 +10570,6 @@ msgid "Make node as Root" msgstr "Düğümü Kök düğüm yap" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" msgstr "\"%s\" düğümü ve alt düğümleri silinsin mi?" @@ -10693,6 +10707,8 @@ msgid "" "This is probably because this editor was built with all language modules " "disabled." msgstr "" +"Bir yazı eklenemiyor: kayıtlı dil yok.\n" +"Bu muhtemelen editor tüm dil modülleri kapalıyken kurulduğu için oldu." #: editor/scene_tree_dock.cpp msgid "Add Child Node" @@ -10743,14 +10759,12 @@ msgstr "" "alınmış bir sahne oluşturur." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Attach a new or existing script to the selected node." -msgstr "Seçili düğüm için yeni veya mevcut bir betik iliştir." +msgstr "Seçili düğüme yeni veya mevcut bir betik iliştir." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Detach the script from the selected node." -msgstr "Seçilen düğüm için betik temizle." +msgstr "Seçilen düğümden betiği ayır." #: editor/scene_tree_dock.cpp msgid "Remote" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index edab41c9b6..a35264b40d 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -14,11 +14,12 @@ # Богдан Матвіїв <bomtvv@gmail.com>, 2019. # Tymofij Lytvynenko <till.svit@gmail.com>, 2020. # Vladislav Glinsky <cl0ne@mithril.org.ua>, 2020. +# Микола Тимошенко <9081@ukr.net>, 2020. msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-06-25 08:40+0000\n" +"PO-Revision-Date: 2020-08-04 06:43+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -1156,6 +1157,16 @@ msgid "Gold Sponsors" msgstr "Золоті спонсори" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Срібні донори" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Бронзові донори" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Міні-спонсори" @@ -10564,9 +10575,8 @@ msgid "Make node as Root" msgstr "Зробити вузол кореневим" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Вилучити вузол «%s» і його дочірні записи?" +msgstr "Вилучити %d вузлів та усі їхні дочірні записи?" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" @@ -12015,7 +12025,7 @@ msgstr "" #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." -msgstr "Неокректний відкритий ключ для розгортання APK." +msgstr "Некоректний відкритий ключ для розгортання APK." #: platform/android/export/export.cpp msgid "Invalid package name:" @@ -12280,6 +12290,9 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"Засновані на багатокутниках форми не призначено для використання або " +"редагування з вузла CollisionShape2D. Будь ласка, скористайтеся замість " +"нього вузлом CollisionPolygon2D." #: scene/2d/cpu_particles_2d.cpp msgid "" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 4f4dccd8bb..6b152e43b3 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -1125,6 +1125,14 @@ msgid "Gold Sponsors" msgstr "" #: editor/editor_about.cpp +msgid "Silver Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Sponsors" +msgstr "" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 8db07bf4b0..eb260d535e 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -13,12 +13,15 @@ # Peter Anh <peteranh3105@gmail.com>, 2019. # Dũng Đinh <dqdthanhthanh@gmail.com>, 2019. # Steve Dang <bynguu@outlook.com>, 2020. +# Harry Mitchell <minhyh0987@gmail.com>, 2020. +# HSGamer <huynhqtienvtag@gmail.com>, 2020. +# LetterC67 <hoangdeptoong@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-28 09:51+0000\n" -"Last-Translator: Steve Dang <bynguu@outlook.com>\n" +"PO-Revision-Date: 2020-08-11 14:04+0000\n" +"Last-Translator: LetterC67 <hoangdeptoong@gmail.com>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/" "godot/vi/>\n" "Language: vi\n" @@ -73,31 +76,31 @@ msgstr "Khi cuộc gọi đến '%s':" #: core/ustring.cpp msgid "B" -msgstr "" +msgstr "B" #: core/ustring.cpp msgid "KiB" -msgstr "" +msgstr "KiB" #: core/ustring.cpp msgid "MiB" -msgstr "" +msgstr "MiB" #: core/ustring.cpp msgid "GiB" -msgstr "" +msgstr "GiB" #: core/ustring.cpp msgid "TiB" -msgstr "" +msgstr "TiB" #: core/ustring.cpp msgid "PiB" -msgstr "" +msgstr "PiB" #: core/ustring.cpp msgid "EiB" -msgstr "" +msgstr "EiB" #: editor/animation_bezier_editor.cpp msgid "Free" @@ -121,7 +124,7 @@ msgstr "Giá trị:" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" -msgstr "Thêm Khoá Tại Đây" +msgstr "Chèn Khóa Tại Đây" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" @@ -137,23 +140,23 @@ msgstr "Thêm điểm Bezier" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" -msgstr "Di chuyển điểm Bezier" +msgstr "Di chuyển các điểm Bezier" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" -msgstr "Nhân đôi Các Key của Animation" +msgstr "Nhân đôi các Animation Key" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Delete Keys" -msgstr "Xóa phím Anim" +msgstr "Xóa các Animation Key" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Time" -msgstr "Đổi thời gian khung hình" +msgstr "Đổi thời gian khung hình Animation" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "Đổi Transition Animation" +msgstr "Đổi Animation Chuyển tiếp" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" @@ -161,7 +164,7 @@ msgstr "Đổi Transform Animation" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" -msgstr "Đổi giá trị khung hình" +msgstr "Đổi giá trị khung hình Animation" #: editor/animation_track_editor.cpp msgid "Anim Change Call" @@ -1146,6 +1149,16 @@ msgid "Gold Sponsors" msgstr "Nhà tài trợ Vàng" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "Người ủng hộ Bạc" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "Người ủng hộ Đồng" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "Nhà tài trợ Nhỏ" @@ -12597,7 +12610,7 @@ msgstr "" #: scene/gui/color_picker.cpp msgid "Pick a color from the editor window." -msgstr "" +msgstr "Chọn một màu từ cửa sổ biên tập" #: scene/gui/color_picker.cpp msgid "HSV" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index e344be12e9..5d2787f995 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -68,12 +68,15 @@ # 无双流 <1257678024@qq.com>, 2020. # ZhangXinyu <zhang2xinyu@outlook.com>, 2020. # Silence Tai <silence.m@hotmail.com>, 2020. +# MintSoda <lionlxh@qq.com>, 2020. +# Gardner Belgrade <hapenia@sina.com>, 2020. +# godhidden <z2zz2zz@yahoo.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2020-07-26 15:41+0000\n" -"Last-Translator: yzt <834950797@qq.com>\n" +"PO-Revision-Date: 2020-08-24 13:17+0000\n" +"Last-Translator: UnluckyNinja <unluckyninja1994@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" "Language: zh_CN\n" @@ -81,7 +84,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -100,7 +103,7 @@ msgstr "没有足够的字节来解码,或格式无效。" #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "表达式中包含得%i无效(未传递)" +msgstr "表达式中包含的%i无效(未传递)" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -1187,6 +1190,16 @@ msgid "Gold Sponsors" msgstr "黄金赞助" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "白银捐赠者" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "青铜捐赠者" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "迷你赞助" @@ -3756,7 +3769,7 @@ msgstr "创建脚本" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" -msgstr "在文件中查找" +msgstr "跨文件查找" #: editor/find_in_files.cpp msgid "Find:" @@ -5317,7 +5330,7 @@ msgstr "重置缩放" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Select Mode" -msgstr "选择模式" +msgstr "鼠标模式" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Drag: Rotate" @@ -7012,7 +7025,7 @@ msgstr "转到行..." #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Toggle Breakpoint" -msgstr "设置断点" +msgstr "切换断点" #: editor/plugins/script_text_editor.cpp msgid "Remove All Breakpoints" @@ -7400,7 +7413,7 @@ msgstr "插入动画帧" #: editor/plugins/spatial_editor_plugin.cpp msgid "Focus Origin" -msgstr "显示原点" +msgstr "聚焦原点" #: editor/plugins/spatial_editor_plugin.cpp msgid "Focus Selection" @@ -9400,7 +9413,7 @@ msgstr "包文件" #: editor/project_export.cpp msgid "Features" -msgstr "功能" +msgstr "特性" #: editor/project_export.cpp msgid "Custom (comma-separated):" @@ -10399,7 +10412,6 @@ msgid "Make node as Root" msgstr "将节点设置为根节点" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" msgstr "是否删除节点“%s”及其子节点?" @@ -12048,6 +12060,8 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"基于多边形的形状不应该被 CollisionShape2D 节点直接使用或编辑。请使用 " +"CollisionPolygon2D 节点。" #: scene/2d/cpu_particles_2d.cpp msgid "" @@ -12258,7 +12272,7 @@ msgstr "平面形状无法正常工作,未来版本将被删除。请勿使用 #: scene/3d/collision_shape.cpp msgid "" "ConcavePolygonShape doesn't support RigidBody in another mode than static." -msgstr "ConcavePolygonShape仅支持静态RigidBody。" +msgstr "ConcavePolygonShape 只支持静态模式下的 RigidBody。" #: scene/3d/cpu_particles.cpp msgid "Nothing is visible because no mesh has been assigned." diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index d4e1bf62dd..3fdbcd4f76 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -1179,6 +1179,16 @@ msgid "Gold Sponsors" msgstr "黃金級贊助人" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "白銀級捐款人" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "青銅級捐款人" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "迷你贊助人" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index 73b99ee161..b1cf13ad94 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -24,12 +24,13 @@ # Allen H. <w84miracle@gmail.com>, 2020. # BinotaLIU <binota@protonmail.ch>, 2020. # BinotaLIU <me@binota.org>, 2020. +# MintSoda <lionlxh@qq.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-07-07 15:56+0000\n" -"Last-Translator: BinotaLIU <me@binota.org>\n" +"PO-Revision-Date: 2020-07-31 03:47+0000\n" +"Last-Translator: MintSoda <lionlxh@qq.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\n" @@ -1144,6 +1145,16 @@ msgid "Gold Sponsors" msgstr "黃金贊助" #: editor/editor_about.cpp +#, fuzzy +msgid "Silver Sponsors" +msgstr "白銀捐贈者" + +#: editor/editor_about.cpp +#, fuzzy +msgid "Bronze Sponsors" +msgstr "紅銅捐贈者" + +#: editor/editor_about.cpp msgid "Mini Sponsors" msgstr "迷你贊助" @@ -10361,7 +10372,6 @@ msgid "Make node as Root" msgstr "將節點設為根節點" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" msgstr "確定要刪除節點「%s」與其子節點嗎?" @@ -12017,6 +12027,8 @@ msgid "" "Polygon-based shapes are not meant be used nor edited directly through the " "CollisionShape2D node. Please use the CollisionPolygon2D node instead." msgstr "" +"基於多邊形的形狀不應該被 CollisionShape2D 節點直接使用或編輯。請使用 " +"CollisionPolygon2D 節點。" #: scene/2d/cpu_particles_2d.cpp msgid "" |