diff options
Diffstat (limited to 'editor')
220 files changed, 23194 insertions, 4716 deletions
diff --git a/editor/SCsub b/editor/SCsub index 87153f3b2b..35c215b663 100644 --- a/editor/SCsub +++ b/editor/SCsub @@ -76,7 +76,7 @@ if env["tools"]: # Editor translations to_include = ( - "ar,bg,bn,ca,cs,de,el,eo,es_AR,es,fi,fr,gl,he,hu,id,it,ja,ko,lv,ms,nb,nl,pl,pt_BR,pt,ro,ru,sk,sv,th,tr,uk,vi,zh_CN,zh_TW" + "ar,bg,bn,ca,cs,de,el,eo,es_AR,es,fi,fr,gl,he,hu,id,it,ja,ko,lv,ms,nb,nl,pl,pt_BR,pt,ro,ru,sk,sv,th,tl,tr,uk,vi,zh_CN,zh_TW" ).split(",") tlist = [env.Dir("#editor/translations").abspath + "/" + f + ".po" for f in to_include] env.Depends("#editor/editor_translations.gen.h", tlist) diff --git a/editor/action_map_editor.cpp b/editor/action_map_editor.cpp index 3eab494761..aab9743c43 100644 --- a/editor/action_map_editor.cpp +++ b/editor/action_map_editor.cpp @@ -611,7 +611,7 @@ InputEventConfigurationDialog::InputEventConfigurationDialog() { add_child(main_vbox); tab_container = memnew(TabContainer); - tab_container->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tab_container->set_tab_alignment(TabBar::ALIGNMENT_LEFT); tab_container->set_use_hidden_tabs_for_min_size(true); tab_container->set_v_size_flags(Control::SIZE_EXPAND_FILL); tab_container->connect("tab_selected", callable_mp(this, &InputEventConfigurationDialog::_tab_selected)); @@ -1122,8 +1122,6 @@ void ActionMapEditor::use_external_search_box(LineEdit *p_searchbox) { } ActionMapEditor::ActionMapEditor() { - show_builtin_actions = false; - // Main Vbox Container VBoxContainer *main_vbox = memnew(VBoxContainer); main_vbox->set_anchors_and_offsets_preset(PRESET_WIDE); diff --git a/editor/action_map_editor.h b/editor/action_map_editor.h index de24d3ee1f..34c70c942e 100644 --- a/editor/action_map_editor.h +++ b/editor/action_map_editor.h @@ -164,7 +164,7 @@ private: // Filtering and Adding actions - bool show_builtin_actions; + bool show_builtin_actions = false; CheckButton *show_builtin_actions_checkbutton; LineEdit *action_list_search; diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp index c8c8c7d891..0dbe230699 100644 --- a/editor/animation_bezier_editor.cpp +++ b/editor/animation_bezier_editor.cpp @@ -946,7 +946,7 @@ void AnimationBezierTrackEdit::gui_input(const Ref<InputEvent> &p_event) { } if (menu->get_item_count()) { - menu->set_as_minsize(); + menu->reset_size(); menu->set_position(popup_pos); menu->popup(); } diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 53f585d06b..e61a1aae9c 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -606,8 +606,7 @@ public: } break; case Animation::TYPE_METHOD: { p_list->push_back(PropertyInfo(Variant::STRING_NAME, "name")); - static_assert(VARIANT_ARG_MAX == 8, "PROPERTY_HINT_RANGE needs to be updated if VARIANT_ARG_MAX != 8"); - p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,8,1")); + p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,32,1,or_greater")); Dictionary d = animation->track_get_key_value(track, key); ERR_FAIL_COND(!d.has("args")); @@ -1287,8 +1286,8 @@ public: } break; case Animation::TYPE_METHOD: { p_list->push_back(PropertyInfo(Variant::STRING_NAME, "name")); - static_assert(VARIANT_ARG_MAX == 8, "PROPERTY_HINT_RANGE needs to be updated if VARIANT_ARG_MAX != 8"); - p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,8,1")); + + p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,32,1,or_greater")); Dictionary d = animation->track_get_key_value(first_track, first_key); ERR_FAIL_COND(!d.has("args")); @@ -1459,7 +1458,8 @@ int AnimationTimelineEdit::get_name_limit() const { void AnimationTimelineEdit::_notification(int p_what) { switch (p_what) { - case NOTIFICATION_ENTER_TREE: { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { panner->setup((ViewPanner::ControlScheme)EDITOR_GET("editors/panning/animation_editors_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EditorSettings::get_singleton()->get("editors/panning/simple_panning"))); add_track->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); loop->set_icon(get_theme_icon(SNAME("Loop"), SNAME("EditorIcons"))); @@ -1814,13 +1814,6 @@ void AnimationTimelineEdit::gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - if (hsize_rect.has_point(mm->get_position())) { - // Change the cursor to indicate that the track name column's width can be adjusted - set_default_cursor_shape(Control::CURSOR_HSIZE); - } else { - set_default_cursor_shape(Control::CURSOR_ARROW); - } - if (dragging_hsize) { int ofs = mm->get_position().x - dragging_hsize_from; name_limit = dragging_hsize_at + ofs; @@ -1836,6 +1829,15 @@ void AnimationTimelineEdit::gui_input(const Ref<InputEvent> &p_event) { } } +Control::CursorShape AnimationTimelineEdit::get_cursor_shape(const Point2 &p_pos) const { + if (dragging_hsize || hsize_rect.has_point(p_pos)) { + // Indicate that the track name column's width can be adjusted + return Control::CURSOR_HSIZE; + } else { + return get_default_cursor_shape(); + } +} + void AnimationTimelineEdit::_scroll_callback(Vector2 p_scroll_vec, bool p_alt) { // Timeline has no vertical scroll, so we change it to horizontal. p_scroll_vec.x += p_scroll_vec.y; @@ -1884,8 +1886,6 @@ void AnimationTimelineEdit::_bind_methods() { } AnimationTimelineEdit::AnimationTimelineEdit() { - use_fps = false; - editing = false; name_limit = 150 * EDSCALE; zoom = nullptr; track_edit = nullptr; @@ -1933,9 +1933,6 @@ AnimationTimelineEdit::AnimationTimelineEdit() { add_track->get_popup()->connect("index_pressed", callable_mp(this, &AnimationTimelineEdit::_track_added)); len_hb->hide(); - dragging_timeline = false; - dragging_hsize = false; - panner.instantiate(); panner->set_callbacks(callable_mp(this, &AnimationTimelineEdit::_scroll_callback), callable_mp(this, &AnimationTimelineEdit::_pan_callback), callable_mp(this, &AnimationTimelineEdit::_zoom_callback)); @@ -1946,6 +1943,16 @@ AnimationTimelineEdit::AnimationTimelineEdit() { void AnimationTrackEdit::_notification(int p_what) { switch (p_what) { + case NOTIFICATION_THEME_CHANGED: { + if (animation.is_null()) { + return; + } + ERR_FAIL_INDEX(track, animation->get_track_count()); + + type_icon = _get_key_type_icon(); + selected_icon = get_theme_icon(SNAME("KeySelected"), SNAME("EditorIcons")); + } break; + case NOTIFICATION_DRAW: { if (animation.is_null()) { return; @@ -1964,17 +1971,6 @@ void AnimationTrackEdit::_notification(int p_what) { Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); Color color = get_theme_color(SNAME("font_color"), SNAME("Label")); - Ref<Texture2D> type_icons[9] = { - get_theme_icon(SNAME("KeyValue"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyTrackPosition"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyTrackRotation"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyTrackScale"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyTrackBlendShape"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyCall"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyBezier"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyAudio"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyAnimation"), SNAME("EditorIcons")) - }; int hsep = get_theme_constant(SNAME("hseparation"), SNAME("ItemList")); Color linecolor = color; linecolor.a = 0.2; @@ -1990,7 +1986,7 @@ void AnimationTrackEdit::_notification(int p_what) { draw_texture(check, check_rect.position); ofs += check->get_width() + hsep; - Ref<Texture2D> type_icon = type_icons[animation->track_get_type(track)]; + Ref<Texture2D> type_icon = _get_key_type_icon(); draw_texture(type_icon, Point2(ofs, int(get_size().height - type_icon->get_height()) / 2)); ofs += type_icon->get_width() + hsep; @@ -2426,22 +2422,10 @@ void AnimationTrackEdit::set_animation_and_track(const Ref<Animation> &p_animati track = p_track; update(); - Ref<Texture2D> type_icons[9] = { - get_theme_icon(SNAME("KeyValue"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyXPosition"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyXRotation"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyXScale"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyBlendShape"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyCall"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyBezier"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyAudio"), SNAME("EditorIcons")), - get_theme_icon(SNAME("KeyAnimation"), SNAME("EditorIcons")) - }; - ERR_FAIL_INDEX(track, animation->get_track_count()); node_path = animation->track_get_path(p_track); - type_icon = type_icons[animation->track_get_type(track)]; + type_icon = _get_key_type_icon(); selected_icon = get_theme_icon(SNAME("KeySelected"), SNAME("EditorIcons")); } @@ -2542,6 +2526,21 @@ bool AnimationTrackEdit::_is_value_key_valid(const Variant &p_key_value, Variant return (!prop_exists || Variant::can_convert(p_key_value.get_type(), r_valid_type)); } +Ref<Texture2D> AnimationTrackEdit::_get_key_type_icon() const { + Ref<Texture2D> type_icons[9] = { + get_theme_icon(SNAME("KeyValue"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyTrackPosition"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyTrackRotation"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyTrackScale"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyTrackBlendShape"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyCall"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyBezier"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyAudio"), SNAME("EditorIcons")), + get_theme_icon(SNAME("KeyAnimation"), SNAME("EditorIcons")) + }; + return type_icons[animation->track_get_type(track)]; +} + String AnimationTrackEdit::get_tooltip(const Point2 &p_pos) const { if (check_rect.has_point(p_pos)) { return TTR("Toggle this track on/off."); @@ -2748,7 +2747,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) { menu->add_icon_item(get_theme_icon(SNAME("TrackDiscrete"), SNAME("EditorIcons")), TTR("Discrete"), MENU_CALL_MODE_DISCRETE); menu->add_icon_item(get_theme_icon(SNAME("TrackTrigger"), SNAME("EditorIcons")), TTR("Trigger"), MENU_CALL_MODE_TRIGGER); menu->add_icon_item(get_theme_icon(SNAME("TrackCapture"), SNAME("EditorIcons")), TTR("Capture"), MENU_CALL_MODE_CAPTURE); - menu->set_as_minsize(); + menu->reset_size(); Vector2 popup_pos = get_screen_position() + update_mode_rect.position + Vector2(0, update_mode_rect.size.height); menu->set_position(popup_pos); @@ -2766,7 +2765,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) { menu->add_icon_item(get_theme_icon(SNAME("InterpRaw"), SNAME("EditorIcons")), TTR("Nearest"), MENU_INTERPOLATION_NEAREST); menu->add_icon_item(get_theme_icon(SNAME("InterpLinear"), SNAME("EditorIcons")), TTR("Linear"), MENU_INTERPOLATION_LINEAR); menu->add_icon_item(get_theme_icon(SNAME("InterpCubic"), SNAME("EditorIcons")), TTR("Cubic"), MENU_INTERPOLATION_CUBIC); - menu->set_as_minsize(); + menu->reset_size(); Vector2 popup_pos = get_screen_position() + interp_mode_rect.position + Vector2(0, interp_mode_rect.size.height); menu->set_position(popup_pos); @@ -2783,7 +2782,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) { menu->clear(); menu->add_icon_item(get_theme_icon(SNAME("InterpWrapClamp"), SNAME("EditorIcons")), TTR("Clamp Loop Interp"), MENU_LOOP_CLAMP); menu->add_icon_item(get_theme_icon(SNAME("InterpWrapLoop"), SNAME("EditorIcons")), TTR("Wrap Loop Interp"), MENU_LOOP_WRAP); - menu->set_as_minsize(); + menu->reset_size(); Vector2 popup_pos = get_screen_position() + loop_wrap_rect.position + Vector2(0, loop_wrap_rect.size.height); menu->set_position(popup_pos); @@ -2885,7 +2884,7 @@ void AnimationTrackEdit::gui_input(const Ref<InputEvent> &p_event) { menu->add_separator(); menu->add_icon_item(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), TTR("Delete Key(s)"), MENU_KEY_DELETE); } - menu->set_as_minsize(); + menu->reset_size(); menu->set_position(get_screen_position() + get_local_mouse_position()); menu->popup(); @@ -3147,13 +3146,8 @@ AnimationTrackEdit::AnimationTrackEdit() { path = nullptr; path_popup = nullptr; menu = nullptr; - clicking_on_name = false; dropping_at = 0; - in_group = false; - - moving_selection_attempt = false; - moving_selection = false; select_single_attempt = -1; play_position_pos = 0; @@ -3189,7 +3183,7 @@ AnimationTrackEdit *AnimationTrackEditPlugin::create_value_track_edit(Object *p_ }; Callable::CallError ce; - return Object::cast_to<AnimationTrackEdit>(get_script_instance()->call("create_value_track_edit", (const Variant **)&argptrs, 6, ce).operator Object *()); + return Object::cast_to<AnimationTrackEdit>(get_script_instance()->callp("create_value_track_edit", (const Variant **)&argptrs, 6, ce).operator Object *()); } return nullptr; } @@ -3588,7 +3582,7 @@ void AnimationTrackEditor::commit_insert_queue() { } } - if (bool(EDITOR_DEF("editors/animation/confirm_insert_track", true)) && num_tracks > 0) { + if (bool(EDITOR_GET("editors/animation/confirm_insert_track")) && num_tracks > 0) { // Potentially a new key, does not exist. if (num_tracks == 1) { // TRANSLATORS: %s will be replaced by a phrase describing the target of track. @@ -5554,31 +5548,35 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) { } } + String track_type; switch (animation->track_get_type(i)) { case Animation::TYPE_POSITION_3D: - text += " (Position)"; + track_type = TTR("Position"); break; case Animation::TYPE_ROTATION_3D: - text += " (Rotation)"; + track_type = TTR("Rotation"); break; case Animation::TYPE_SCALE_3D: - text += " (Scale)"; + track_type = TTR("Scale"); break; case Animation::TYPE_BLEND_SHAPE: - text += " (BlendShape)"; + track_type = TTR("BlendShape"); break; case Animation::TYPE_METHOD: - text += " (Methods)"; + track_type = TTR("Methods"); break; case Animation::TYPE_BEZIER: - text += " (Bezier)"; + track_type = TTR("Bezier"); break; case Animation::TYPE_AUDIO: - text += " (Audio)"; + track_type = TTR("Audio"); break; default: { }; } + if (!track_type.is_empty()) { + text += vformat(" (%s)", track_type); + } TreeItem *it = track_copy_select->create_item(troot); it->set_editable(0, true); @@ -6308,8 +6306,6 @@ AnimationTrackEditor::AnimationTrackEditor() { add_child(method_selector); method_selector->connect("selected", callable_mp(this, &AnimationTrackEditor::_add_method_key)); - insert_queue = false; - insert_confirm = memnew(ConfirmationDialog); add_child(insert_confirm); insert_confirm->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_confirm_insert_list)); @@ -6327,8 +6323,6 @@ AnimationTrackEditor::AnimationTrackEditor() { insert_confirm_reset->set_text(TTR("Create RESET Track(s)", "")); insert_confirm_reset->set_pressed(EDITOR_GET("editors/animation/default_create_reset_tracks")); ichb->add_child(insert_confirm_reset); - keying = false; - moving_selection = false; key_edit = nullptr; multi_key_edit = nullptr; @@ -6338,7 +6332,6 @@ AnimationTrackEditor::AnimationTrackEditor() { box_selection->set_mouse_filter(MOUSE_FILTER_IGNORE); box_selection->hide(); box_selection->connect("draw", callable_mp(this, &AnimationTrackEditor::_box_selection_draw)); - box_selecting = false; // Default Plugins. @@ -6435,7 +6428,6 @@ AnimationTrackEditor::AnimationTrackEditor() { track_copy_select->set_hide_root(true); track_vbox->add_child(track_copy_select); track_copy_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed), varray(EDIT_COPY_TRACKS_CONFIRM)); - animation_changing_awaiting_update = false; } AnimationTrackEditor::~AnimationTrackEditor() { diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h index d0029ff80f..1baebc469e 100644 --- a/editor/animation_track_editor.h +++ b/editor/animation_track_editor.h @@ -77,16 +77,16 @@ class AnimationTimelineEdit : public Range { UndoRedo *undo_redo; Rect2 hsize_rect; - bool editing; - bool use_fps; + bool editing = false; + bool use_fps = false; Ref<ViewPanner> panner; void _scroll_callback(Vector2 p_scroll_vec, bool p_alt); void _pan_callback(Vector2 p_scroll_vec); void _zoom_callback(Vector2 p_scroll_vec, Vector2 p_origin, bool p_alt); - bool dragging_timeline; - bool dragging_hsize; + bool dragging_timeline = false; + bool dragging_hsize = false; float dragging_hsize_from; float dragging_hsize_at; @@ -121,6 +121,8 @@ public: void set_hscroll(HScrollBar *p_hscroll); + virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override; + AnimationTimelineEdit(); }; @@ -169,7 +171,7 @@ class AnimationTrackEdit : public Control { PopupMenu *menu; - bool clicking_on_name; + bool clicking_on_name = false; void _zoom_changed(); @@ -182,14 +184,16 @@ class AnimationTrackEdit : public Control { void _play_position_draw(); bool _is_value_key_valid(const Variant &p_key_value, Variant::Type &r_valid_type) const; + Ref<Texture2D> _get_key_type_icon() const; + mutable int dropping_at; float insert_at_pos; - bool moving_selection_attempt; + bool moving_selection_attempt = false; int select_single_attempt; - bool moving_selection; + bool moving_selection = false; float moving_selection_from_ofs; - bool in_group; + bool in_group = false; AnimationTrackEditor *editor; protected: @@ -308,7 +312,7 @@ class AnimationTrackEditor : public VBoxContainer { Vector<AnimationTrackEdit *> track_edits; Vector<AnimationTrackEditGroup *> groups; - bool animation_changing_awaiting_update; + bool animation_changing_awaiting_update = false; void _animation_update(); int _get_track_selected(); void _animation_changed(); @@ -338,7 +342,7 @@ class AnimationTrackEditor : public VBoxContainer { int adding_track_type; NodePath adding_track_path; - bool keying; + bool keying = false; struct InsertData { Animation::TrackType type; @@ -353,7 +357,7 @@ class AnimationTrackEditor : public VBoxContainer { CheckBox *insert_confirm_bezier; CheckBox *insert_confirm_reset; ConfirmationDialog *insert_confirm; - bool insert_queue; + bool insert_queue = false; List<InsertData> insert_data; void _query_insert(const InsertData &p_id); @@ -408,7 +412,7 @@ class AnimationTrackEditor : public VBoxContainer { void _key_selected(int p_key, bool p_single, int p_track); void _key_deselected(int p_key, int p_track); - bool moving_selection; + bool moving_selection = false; float moving_selection_offset; void _move_selection_begin(); void _move_selection(float p_offset); @@ -423,7 +427,7 @@ class AnimationTrackEditor : public VBoxContainer { Control *box_selection; void _box_selection_draw(); - bool box_selecting; + bool box_selecting = false; Vector2 box_selecting_from; Rect2 box_select_rect; void _scroll_input(const Ref<InputEvent> &p_event); diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp index e87678a51b..2ad8b2d2a4 100644 --- a/editor/animation_track_editor_plugins.cpp +++ b/editor/animation_track_editor_plugins.cpp @@ -1080,12 +1080,7 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) { len_resizing_index = i; } } - - if (use_hsize_cursor) { - set_default_cursor_shape(CURSOR_HSIZE); - } else { - set_default_cursor_shape(CURSOR_ARROW); - } + over_drag_position = use_hsize_cursor; } if (len_resizing && mm.is_valid()) { @@ -1097,7 +1092,7 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) { } Ref<InputEventMouseButton> mb = p_event; - if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT && get_default_cursor_shape() == CURSOR_HSIZE) { + if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT && over_drag_position) { len_resizing = true; len_resizing_start = mb->is_shift_pressed(); len_resizing_from_px = mb->get_position().x; @@ -1124,7 +1119,6 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) { get_undo_redo()->commit_action(); } - len_resizing = false; len_resizing_index = -1; update(); accept_event(); @@ -1134,6 +1128,14 @@ void AnimationTrackEditTypeAudio::gui_input(const Ref<InputEvent> &p_event) { AnimationTrackEdit::gui_input(p_event); } +Control::CursorShape AnimationTrackEditTypeAudio::get_cursor_shape(const Point2 &p_pos) const { + if (over_drag_position || len_resizing) { + return Control::CURSOR_HSIZE; + } else { + return get_default_cursor_shape(); + } +} + //////////////////// /// SUB ANIMATION /// diff --git a/editor/animation_track_editor_plugins.h b/editor/animation_track_editor_plugins.h index 271c1a000b..adfe517356 100644 --- a/editor/animation_track_editor_plugins.h +++ b/editor/animation_track_editor_plugins.h @@ -81,7 +81,7 @@ class AnimationTrackEditSpriteFrame : public AnimationTrackEdit { GDCLASS(AnimationTrackEditSpriteFrame, AnimationTrackEdit); ObjectID id; - bool is_coords; + bool is_coords = false; public: virtual int get_key_height() const override; @@ -92,7 +92,7 @@ public: void set_node(Object *p_object); void set_as_coords(); - AnimationTrackEditSpriteFrame() { is_coords = false; } + AnimationTrackEditSpriteFrame() {} }; class AnimationTrackEditSubAnim : public AnimationTrackEdit { @@ -114,11 +114,12 @@ class AnimationTrackEditTypeAudio : public AnimationTrackEdit { void _preview_changed(ObjectID p_which); - bool len_resizing; + bool len_resizing = false; bool len_resizing_start; int len_resizing_index; float len_resizing_from_px; float len_resizing_rel; + bool over_drag_position = false; protected: static void _bind_methods(); @@ -134,6 +135,8 @@ public: virtual bool is_key_selectable_by_distance() const override; virtual void draw_key(int p_index, float p_pixels_sec, int p_x, bool p_selected, int p_clip_left, int p_clip_right) override; + virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override; + AnimationTrackEditTypeAudio(); }; diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 22d3155159..2896fda2d2 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -618,8 +618,6 @@ void FindReplaceBar::_bind_methods() { FindReplaceBar::FindReplaceBar() { results_count = -1; - replace_all_mode = false; - preserve_cursor = false; vbc_lineedit = memnew(VBoxContainer); add_child(vbc_lineedit); @@ -1887,8 +1885,6 @@ CodeTextEditor::CodeTextEditor() { error_button->set_default_cursor_shape(CURSOR_POINTING_HAND); error_button->connect("pressed", callable_mp(this, &CodeTextEditor::_error_button_pressed)); error_button->set_tooltip(TTR("Errors")); - - is_errors_panel_opened = false; set_error_count(0); // Warnings @@ -1899,8 +1895,6 @@ CodeTextEditor::CodeTextEditor() { warning_button->set_default_cursor_shape(CURSOR_POINTING_HAND); warning_button->connect("pressed", callable_mp(this, &CodeTextEditor::_warning_button_pressed)); warning_button->set_tooltip(TTR("Warnings")); - - is_warnings_panel_opened = false; set_warning_count(0); // Line and column diff --git a/editor/code_editor.h b/editor/code_editor.h index 24316bf8b0..d7025e7fd9 100644 --- a/editor/code_editor.h +++ b/editor/code_editor.h @@ -86,8 +86,8 @@ class FindReplaceBar : public HBoxContainer { int result_col; int results_count; - bool replace_all_mode; - bool preserve_cursor; + bool replace_all_mode = false; + bool preserve_cursor = false; void _get_search_from(int &r_line, int &r_col); void _update_results_count(); @@ -206,8 +206,8 @@ protected: void _notification(int); static void _bind_methods(); - bool is_warnings_panel_opened; - bool is_errors_panel_opened; + bool is_warnings_panel_opened = false; + bool is_errors_panel_opened = false; public: void trim_trailing_whitespace(); diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index df2a66f182..0f8667f81a 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -180,9 +180,6 @@ void ConnectDialog::_unbind_count_changed(double p_count) { * Adds a new parameter bind to connection. */ void ConnectDialog::_add_bind() { - if (cdbinds->params.size() >= VARIANT_ARG_MAX) { - return; - } Variant::Type vt = (Variant::Type)type_list->get_item_id(type_list->get_selected()); Variant value; diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index 7e59fc31c4..f9858aa514 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -130,8 +130,8 @@ bool CreateDialog::_should_hide_type(const String &p_type) const { } if (ClassDB::class_exists(p_type)) { - if (!ClassDB::can_instantiate(p_type)) { - return true; // Can't create abstract class. + if (!ClassDB::can_instantiate(p_type) || ClassDB::is_virtual(p_type)) { + return true; // Can't create abstract or virtual class. } if (!ClassDB::is_parent_class(p_type, base_type)) { diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp index 7c9a984b6a..1a7b11d888 100644 --- a/editor/debugger/editor_debugger_node.cpp +++ b/editor/debugger/editor_debugger_node.cpp @@ -39,6 +39,7 @@ #include "editor/scene_tree_dock.h" #include "scene/gui/menu_button.h" #include "scene/gui/tab_container.h" +#include "scene/resources/packed_scene.h" template <typename Func> void _for_all(TabContainer *p_node, const Func &p_func) { @@ -60,7 +61,7 @@ EditorDebuggerNode::EditorDebuggerNode() { add_theme_constant_override("margin_right", -EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("BottomPanelDebuggerOverride"), SNAME("EditorStyles"))->get_margin(SIDE_RIGHT)); tabs = memnew(TabContainer); - tabs->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tabs->set_tab_alignment(TabBar::ALIGNMENT_LEFT); tabs->set_tabs_visible(false); tabs->connect("tab_changed", callable_mp(this, &EditorDebuggerNode::_debugger_changed)); add_child(tabs); @@ -141,11 +142,22 @@ void EditorDebuggerNode::_error_selected(const String &p_file, int p_line, int p } void EditorDebuggerNode::_text_editor_stack_goto(const ScriptEditorDebugger *p_debugger) { - const String file = p_debugger->get_stack_script_file(); + String file = p_debugger->get_stack_script_file(); if (file.is_empty()) { return; } - stack_script = ResourceLoader::load(file); + if (file.is_resource_file()) { + stack_script = ResourceLoader::load(file); + } else { + // If the script is built-in, it can be opened only if the scene is loaded in memory. + int i = file.find("::"); + int j = file.rfind("(", i); + if (j > -1) { // If the script is named, the string is "name (file)", so we need to extract the path. + file = file.substr(j + 1, file.find(")", i) - j - 1); + } + Ref<PackedScene> ps = ResourceLoader::load(file.get_slice("::", 0)); + stack_script = ResourceLoader::load(file); + } const int line = p_debugger->get_stack_script_line() - 1; emit_signal(SNAME("goto_script_line"), stack_script, line); emit_signal(SNAME("set_execution"), stack_script, line); @@ -598,12 +610,12 @@ void EditorDebuggerNode::_save_node_requested(ObjectID p_id, const String &p_fil } // Remote inspector/edit. -void EditorDebuggerNode::_method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE) { +void EditorDebuggerNode::_method_changeds(void *p_ud, Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount) { if (!singleton) { return; } _for_all(singleton->tabs, [&](ScriptEditorDebugger *dbg) { - dbg->_method_changed(p_base, p_name, VARIANT_ARG_PASS); + dbg->_method_changed(p_base, p_name, p_args, p_argcount); }); } diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h index 6fcdbf5f73..36f99113ad 100644 --- a/editor/debugger/editor_debugger_node.h +++ b/editor/debugger/editor_debugger_node.h @@ -171,7 +171,7 @@ public: // Remote inspector/edit. void request_remote_tree(); - static void _method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE); + static void _method_changeds(void *p_ud, Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount); static void _property_changeds(void *p_ud, Object *p_base, const StringName &p_property, const Variant &p_value); // LiveDebug diff --git a/editor/debugger/editor_profiler.cpp b/editor/debugger/editor_profiler.cpp index 4b263e5152..4e2e8634e5 100644 --- a/editor/debugger/editor_profiler.cpp +++ b/editor/debugger/editor_profiler.cpp @@ -396,6 +396,7 @@ void EditorProfiler::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: case NOTIFICATION_LAYOUT_DIRECTION_CHANGED: + case NOTIFICATION_THEME_CHANGED: case NOTIFICATION_TRANSLATION_CHANGED: { activate->set_icon(get_theme_icon(SNAME("Play"), SNAME("EditorIcons"))); clear_button->set_icon(get_theme_icon(SNAME("Clear"), SNAME("EditorIcons"))); @@ -659,7 +660,7 @@ EditorProfiler::EditorProfiler() { h_split->add_child(graph); graph->set_h_size_flags(SIZE_EXPAND_FILL); - int metric_size = CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size", 600)), 60, 1024); + int metric_size = CLAMP(int(EDITOR_GET("debugger/profiler_frame_history_size")), 60, 1024); frame_metrics.resize(metric_size); total_metrics = 0; last_metric = -1; diff --git a/editor/debugger/editor_visual_profiler.cpp b/editor/debugger/editor_visual_profiler.cpp index 2a1b0029d4..2f33a0bc31 100644 --- a/editor/debugger/editor_visual_profiler.cpp +++ b/editor/debugger/editor_visual_profiler.cpp @@ -67,7 +67,7 @@ void EditorVisualProfiler::add_frame_metric(const Metric &p_metric) { updating_frame = true; cursor_metric_edit->set_max(frame_metrics[last_metric].frame_number); - cursor_metric_edit->set_min(MAX(frame_metrics[last_metric].frame_number - frame_metrics.size(), 0)); + cursor_metric_edit->set_min(MAX(frame_metrics[last_metric].frame_number - frame_metrics.size(), 0u)); if (!seeking) { cursor_metric_edit->set_value(frame_metrics[last_metric].frame_number); @@ -143,12 +143,12 @@ void EditorVisualProfiler::_item_selected() { } void EditorVisualProfiler::_update_plot() { - int w = graph->get_size().width; - int h = graph->get_size().height; + const int w = graph->get_size().width; + const int h = graph->get_size().height; bool reset_texture = false; - int desired_len = w * h * 4; + const int desired_len = w * h * 4; if (graph_image.size() != desired_len) { reset_texture = true; @@ -156,12 +156,13 @@ void EditorVisualProfiler::_update_plot() { } uint8_t *wr = graph_image.ptrw(); + const Color background_color = get_theme_color("dark_color_2", "Editor"); - //clear + // Clear the previous frame and set the background color. for (int i = 0; i < desired_len; i += 4) { - wr[i + 0] = 0; - wr[i + 1] = 0; - wr[i + 2] = 0; + wr[i + 0] = Math::fast_ftoi(background_color.r * 255); + wr[i + 1] = Math::fast_ftoi(background_color.g * 255); + wr[i + 2] = Math::fast_ftoi(background_color.b * 255); wr[i + 3] = 255; } @@ -259,9 +260,9 @@ void EditorVisualProfiler::_update_plot() { uint8_t r, g, b; if (column_cpu[j].a == 0) { - r = 0; - g = 0; - b = 0; + r = Math::fast_ftoi(background_color.r * 255); + g = Math::fast_ftoi(background_color.g * 255); + b = Math::fast_ftoi(background_color.b * 255); } else { r = CLAMP((column_cpu[j].r / column_cpu[j].a) * 255.0, 0, 255); g = CLAMP((column_cpu[j].g / column_cpu[j].a) * 255.0, 0, 255); @@ -279,9 +280,9 @@ void EditorVisualProfiler::_update_plot() { uint8_t r, g, b; if (column_gpu[j].a == 0) { - r = 0; - g = 0; - b = 0; + r = Math::fast_ftoi(background_color.r * 255); + g = Math::fast_ftoi(background_color.g * 255); + b = Math::fast_ftoi(background_color.b * 255); } else { r = CLAMP((column_gpu[j].r / column_gpu[j].a) * 255.0, 0, 255); g = CLAMP((column_gpu[j].g / column_gpu[j].a) * 255.0, 0, 255); @@ -425,6 +426,7 @@ void EditorVisualProfiler::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: case NOTIFICATION_LAYOUT_DIRECTION_CHANGED: + case NOTIFICATION_THEME_CHANGED: case NOTIFICATION_TRANSLATION_CHANGED: { if (is_layout_rtl()) { activate->set_icon(get_theme_icon(SNAME("PlayBackwards"), SNAME("EditorIcons"))); @@ -440,8 +442,11 @@ void EditorVisualProfiler::_graph_tex_draw() { if (last_metric < 0) { return; } + Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label")); int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label")); + const Color color = get_theme_color(SNAME("font_color"), SNAME("Editor")); + if (seeking) { int max_frames = frame_metrics.size(); int frame = cursor_metric_edit->get_value() - (frame_metrics[last_metric].frame_number - max_frames + 1); @@ -451,10 +456,9 @@ void EditorVisualProfiler::_graph_tex_draw() { int half_width = graph->get_size().x / 2; int cur_x = frame * half_width / max_frames; - //cur_x /= 2.0; - graph->draw_line(Vector2(cur_x, 0), Vector2(cur_x, graph->get_size().y), Color(1, 1, 1, 0.8)); - graph->draw_line(Vector2(cur_x + half_width, 0), Vector2(cur_x + half_width, graph->get_size().y), Color(1, 1, 1, 0.8)); + graph->draw_line(Vector2(cur_x, 0), Vector2(cur_x, graph->get_size().y), color * Color(1, 1, 1)); + graph->draw_line(Vector2(cur_x + half_width, 0), Vector2(cur_x + half_width, graph->get_size().y), color * Color(1, 1, 1)); } if (graph_height_cpu > 0) { @@ -462,10 +466,10 @@ void EditorVisualProfiler::_graph_tex_draw() { int half_width = graph->get_size().x / 2; - graph->draw_line(Vector2(0, frame_y), Vector2(half_width, frame_y), Color(1, 1, 1, 0.3)); + graph->draw_line(Vector2(0, frame_y), Vector2(half_width, frame_y), color * Color(1, 1, 1, 0.5)); - String limit_str = String::num(graph_limit, 2); - graph->draw_string(font, Vector2(half_width - font->get_string_size(limit_str, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1, 1, 1, 0.6)); + const String limit_str = String::num(graph_limit, 2) + " ms"; + graph->draw_string(font, Vector2(half_width - font->get_string_size(limit_str, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75)); } if (graph_height_gpu > 0) { @@ -473,14 +477,14 @@ void EditorVisualProfiler::_graph_tex_draw() { int half_width = graph->get_size().x / 2; - graph->draw_line(Vector2(half_width, frame_y), Vector2(graph->get_size().x, frame_y), Color(1, 1, 1, 0.3)); + graph->draw_line(Vector2(half_width, frame_y), Vector2(graph->get_size().x, frame_y), color * Color(1, 1, 1, 0.5)); - String limit_str = String::num(graph_limit, 2); - graph->draw_string(font, Vector2(half_width * 2 - font->get_string_size(limit_str, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1, 1, 1, 0.6)); + const String limit_str = String::num(graph_limit, 2) + " ms"; + graph->draw_string(font, Vector2(half_width * 2 - font->get_string_size(limit_str, font_size).x - 2, frame_y - 2), limit_str, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1, 0.75)); } - graph->draw_string(font, Vector2(font->get_string_size("X", font_size).x, font->get_ascent(font_size) + 2), "CPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1, 1, 1, 0.8)); - graph->draw_string(font, Vector2(font->get_string_size("X", font_size).x + graph->get_size().width / 2, font->get_ascent(font_size) + 2), "GPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1, 1, 1, 0.8)); + graph->draw_string(font, Vector2(font->get_string_size("X", font_size).x, font->get_ascent(font_size) + 2), "CPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1)); + graph->draw_string(font, Vector2(font->get_string_size("X", font_size).x + graph->get_size().width / 2, font->get_ascent(font_size) + 2), "GPU:", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, color * Color(1, 1, 1)); } void EditorVisualProfiler::_graph_tex_mouse_exit() { @@ -724,7 +728,7 @@ EditorVisualProfiler::EditorVisualProfiler() { hb->add_child(memnew(Label(TTR("Measure:")))); display_mode = memnew(OptionButton); - display_mode->add_item(TTR("Frame Time (msec)")); + display_mode->add_item(TTR("Frame Time (ms)")); display_mode->add_item(TTR("Frame %")); display_mode->connect("item_selected", callable_mp(this, &EditorVisualProfiler::_combo_changed)); @@ -786,7 +790,7 @@ EditorVisualProfiler::EditorVisualProfiler() { h_split->add_child(graph); graph->set_h_size_flags(SIZE_EXPAND_FILL); - int metric_size = CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size", 600)), 60, 1024); + int metric_size = CLAMP(int(EDITOR_GET("debugger/profiler_frame_history_size")), 60, 1024); frame_metrics.resize(metric_size); last_metric = -1; //cursor_metric=-1; diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp index 645d7608f3..f6fdd5fc57 100644 --- a/editor/debugger/script_editor_debugger.cpp +++ b/editor/debugger/script_editor_debugger.cpp @@ -135,15 +135,15 @@ void ScriptEditorDebugger::debug_continue() { void ScriptEditorDebugger::update_tabs() { if (error_count == 0 && warning_count == 0) { errors_tab->set_name(TTR("Errors")); - tabs->set_tab_icon(errors_tab->get_index(), Ref<Texture2D>()); + tabs->set_tab_icon(tabs->get_tab_idx_from_control(errors_tab), Ref<Texture2D>()); } else { errors_tab->set_name(TTR("Errors") + " (" + itos(error_count + warning_count) + ")"); if (error_count >= 1 && warning_count >= 1) { - tabs->set_tab_icon(errors_tab->get_index(), get_theme_icon(SNAME("ErrorWarning"), SNAME("EditorIcons"))); + tabs->set_tab_icon(tabs->get_tab_idx_from_control(errors_tab), get_theme_icon(SNAME("ErrorWarning"), SNAME("EditorIcons"))); } else if (error_count >= 1) { - tabs->set_tab_icon(errors_tab->get_index(), get_theme_icon(SNAME("Error"), SNAME("EditorIcons"))); + tabs->set_tab_icon(tabs->get_tab_idx_from_control(errors_tab), get_theme_icon(SNAME("Error"), SNAME("EditorIcons"))); } else { - tabs->set_tab_icon(errors_tab->get_index(), get_theme_icon(SNAME("Warning"), SNAME("EditorIcons"))); + tabs->set_tab_icon(tabs->get_tab_idx_from_control(errors_tab), get_theme_icon(SNAME("Warning"), SNAME("EditorIcons"))); } } } @@ -779,18 +779,20 @@ void ScriptEditorDebugger::_set_reason_text(const String &p_reason, MessageType void ScriptEditorDebugger::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - skip_breakpoints->set_icon(get_theme_icon(SNAME("DebugSkipBreakpointsOff"), SNAME("EditorIcons"))); - copy->set_icon(get_theme_icon(SNAME("ActionCopy"), SNAME("EditorIcons"))); - - step->set_icon(get_theme_icon(SNAME("DebugStep"), SNAME("EditorIcons"))); - next->set_icon(get_theme_icon(SNAME("DebugNext"), SNAME("EditorIcons"))); - dobreak->set_icon(get_theme_icon(SNAME("Pause"), SNAME("EditorIcons"))); - docontinue->set_icon(get_theme_icon(SNAME("DebugContinue"), SNAME("EditorIcons"))); le_set->connect("pressed", callable_mp(this, &ScriptEditorDebugger::_live_edit_set)); le_clear->connect("pressed", callable_mp(this, &ScriptEditorDebugger::_live_edit_clear)); error_tree->connect("item_selected", callable_mp(this, &ScriptEditorDebugger::_error_selected)); error_tree->connect("item_activated", callable_mp(this, &ScriptEditorDebugger::_error_activated)); breakpoints_tree->connect("item_activated", callable_mp(this, &ScriptEditorDebugger::_breakpoint_tree_clicked)); + [[fallthrough]]; + } + case NOTIFICATION_THEME_CHANGED: { + skip_breakpoints->set_icon(get_theme_icon(skip_breakpoints_value ? SNAME("DebugSkipBreakpointsOn") : SNAME("DebugSkipBreakpointsOff"), SNAME("EditorIcons"))); + copy->set_icon(get_theme_icon(SNAME("ActionCopy"), SNAME("EditorIcons"))); + step->set_icon(get_theme_icon(SNAME("DebugStep"), SNAME("EditorIcons"))); + next->set_icon(get_theme_icon(SNAME("DebugNext"), SNAME("EditorIcons"))); + dobreak->set_icon(get_theme_icon(SNAME("Pause"), SNAME("EditorIcons"))); + docontinue->set_icon(get_theme_icon(SNAME("DebugContinue"), SNAME("EditorIcons"))); vmem_refresh->set_icon(get_theme_icon(SNAME("Reload"), SNAME("EditorIcons"))); vmem_export->set_icon(get_theme_icon(SNAME("Save"), SNAME("EditorIcons"))); search->set_right_icon(get_theme_icon(SNAME("Search"), SNAME("EditorIcons"))); @@ -1064,18 +1066,16 @@ int ScriptEditorDebugger::_get_res_path_cache(const String &p_path) { return last_path_id; } -void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE) { +void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount) { if (!p_base || !live_debug || !is_session_active() || !EditorNode::get_singleton()->get_edited_scene()) { return; } Node *node = Object::cast_to<Node>(p_base); - VARIANT_ARGPTRS - - for (int i = 0; i < VARIANT_ARG_MAX; i++) { + for (int i = 0; i < p_argcount; i++) { //no pointers, sorry - if (argptr[i] && (argptr[i]->get_type() == Variant::OBJECT || argptr[i]->get_type() == Variant::RID)) { + if (p_args[i]->get_type() == Variant::OBJECT || p_args[i]->get_type() == Variant::RID) { return; } } @@ -1087,9 +1087,9 @@ void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_n Array msg; msg.push_back(pathid); msg.push_back(p_name); - for (int i = 0; i < VARIANT_ARG_MAX; i++) { + for (int i = 0; i < p_argcount; i++) { //no pointers, sorry - msg.push_back(*argptr[i]); + msg.push_back(*p_args[i]); } _put_msg("scene:live_node_call", msg); @@ -1105,9 +1105,9 @@ void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_n Array msg; msg.push_back(pathid); msg.push_back(p_name); - for (int i = 0; i < VARIANT_ARG_MAX; i++) { + for (int i = 0; i < p_argcount; i++) { //no pointers, sorry - msg.push_back(*argptr[i]); + msg.push_back(*p_args[i]); } _put_msg("scene:live_res_call", msg); @@ -1658,7 +1658,7 @@ bool ScriptEditorDebugger::has_capture(const StringName &p_name) { ScriptEditorDebugger::ScriptEditorDebugger() { tabs = memnew(TabContainer); - tabs->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tabs->set_tab_alignment(TabBar::ALIGNMENT_LEFT); tabs->add_theme_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("DebuggerPanel"), SNAME("EditorStyles"))); tabs->connect("tab_changed", callable_mp(this, &ScriptEditorDebugger::_tab_changed)); diff --git a/editor/debugger/script_editor_debugger.h b/editor/debugger/script_editor_debugger.h index e4d3a2fa09..486ac26ef7 100644 --- a/editor/debugger/script_editor_debugger.h +++ b/editor/debugger/script_editor_debugger.h @@ -187,7 +187,7 @@ private: void _live_edit_set(); void _live_edit_clear(); - void _method_changed(Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE); + void _method_changed(Object *p_base, const StringName &p_name, const Variant **p_args, int p_argcount); void _property_changed(Object *p_base, const StringName &p_property, const Variant &p_value); void _error_activated(); diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index 1802bdec93..95b3a02631 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -749,12 +749,11 @@ void OrphanResourcesDialog::_find_to_delete(TreeItem *p_item, List<String> &path } void OrphanResourcesDialog::_delete_confirm() { - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); for (const String &E : paths) { da->remove(E); EditorFileSystem::get_singleton()->update_file(E); } - memdelete(da); refresh(); } diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp index a9d18e9dcc..adad8fdba8 100644 --- a/editor/doc_tools.cpp +++ b/editor/doc_tools.cpp @@ -685,6 +685,11 @@ void DocTools::generate(bool p_basic_types) { for (int j = 0; j < Variant::OP_AND; j++) { // Showing above 'and' is pretty confusing and there are a lot of variations. for (int k = 0; k < Variant::VARIANT_MAX; k++) { + // Prevent generating for comparison with null. + if (Variant::Type(k) == Variant::NIL && (Variant::Operator(j) == Variant::OP_EQUAL || Variant::Operator(j) == Variant::OP_NOT_EQUAL)) { + continue; + } + Variant::Type rt = Variant::get_operator_return_type(Variant::Operator(j), Variant::Type(i), Variant::Type(k)); if (rt != Variant::NIL) { // Has operator. // Skip String % operator as it's registered separately for each Variant arg type, diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp index 3835399c99..f1674c47c5 100644 --- a/editor/editor_asset_installer.cpp +++ b/editor/editor_asset_installer.cpp @@ -277,10 +277,8 @@ void EditorAssetInstaller::ok_pressed() { dirpath = dirpath.substr(0, dirpath.length() - 1); } - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); da->make_dir(dirpath); - memdelete(da); - } else { Vector<uint8_t> data; data.resize(info.uncompressed_size); @@ -358,7 +356,5 @@ EditorAssetInstaller::EditorAssetInstaller() { get_ok_button()->set_text(TTR("Install")); set_title(TTR("Asset Installer")); - updating = false; - set_hide_on_ok(true); } diff --git a/editor/editor_asset_installer.h b/editor/editor_asset_installer.h index f5993f73e7..58c232f351 100644 --- a/editor/editor_asset_installer.h +++ b/editor/editor_asset_installer.h @@ -42,7 +42,7 @@ class EditorAssetInstaller : public ConfirmationDialog { String asset_name; AcceptDialog *error; Map<String, TreeItem *> status_map; - bool updating; + bool updating = false; void _item_edited(); void _check_propagated_to_item(Object *p_obj, int column); virtual void ok_pressed() override; diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 9685ff4b70..4474d6893a 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -92,6 +92,12 @@ void EditorAudioBus::_notification(int p_what) { audio_value_preview_label->add_theme_color_override("font_color", get_theme_color(SNAME("font_color"), SNAME("TooltipLabel"))); audio_value_preview_label->add_theme_color_override("font_shadow_color", get_theme_color(SNAME("font_shadow_color"), SNAME("TooltipLabel"))); audio_value_preview_box->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), SNAME("TooltipPanel"))); + + for (int i = 0; i < effect_options->get_item_count(); i++) { + String class_name = effect_options->get_item_metadata(i); + Ref<Texture> icon = EditorNode::get_singleton()->get_class_icon(class_name); + effect_options->set_item_icon(i, icon); + } } break; case NOTIFICATION_READY: { @@ -765,9 +771,7 @@ void EditorAudioBus::_bind_methods() { EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { buses = p_buses; - updating_bus = false; is_master = p_is_master; - hovering_drop = false; set_tooltip(TTR("Drag & drop to rearrange.")); @@ -913,15 +917,13 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { ClassDB::get_inheriters_from_class("AudioEffect", &effects); effects.sort_custom<StringName::AlphCompare>(); for (const StringName &E : effects) { - if (!ClassDB::can_instantiate(E)) { + if (!ClassDB::can_instantiate(E) || ClassDB::is_virtual(E)) { continue; } - Ref<Texture2D> icon = EditorNode::get_singleton()->get_class_icon(E); String name = E.operator String().replace("AudioEffect", ""); effect_options->add_item(name); - effect_options->set_item_metadata(effect_options->get_item_count() - 1, E); - effect_options->set_item_icon(effect_options->get_item_count() - 1, icon); + effect_options->set_item_metadata(-1, E); } bus_options = memnew(MenuButton); @@ -988,7 +990,6 @@ void EditorAudioBusDrop::_bind_methods() { } EditorAudioBusDrop::EditorAudioBusDrop() { - hovering_drop = false; } void EditorAudioBuses::_update_buses() { @@ -1328,7 +1329,7 @@ EditorAudioBuses::EditorAudioBuses() { List<String> ext; ResourceLoader::get_recognized_extensions_for_type("AudioBusLayout", &ext); for (const String &E : ext) { - file_dialog->add_filter("*." + E + "; Audio Bus Layout"); + file_dialog->add_filter(vformat("*.%s; %s", E, TTR("Audio Bus Layout"))); } add_child(file_dialog); file_dialog->connect("file_selected", callable_mp(this, &EditorAudioBuses::_file_dialog_callback)); diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h index a830a2719d..0020b61370 100644 --- a/editor/editor_audio_buses.h +++ b/editor/editor_audio_buses.h @@ -85,9 +85,9 @@ class EditorAudioBus : public PanelContainer { Tree *effects; - bool updating_bus; + bool updating_bus = false; bool is_master; - mutable bool hovering_drop; + mutable bool hovering_drop = false; virtual void gui_input(const Ref<InputEvent> &p_event) override; void _effects_gui_input(Ref<InputEvent> p_event); @@ -140,7 +140,7 @@ class EditorAudioBusDrop : public Control { virtual bool can_drop_data(const Point2 &p_point, const Variant &p_data) const override; virtual void drop_data(const Point2 &p_point, const Variant &p_data) override; - mutable bool hovering_drop; + mutable bool hovering_drop = false; protected: static void _bind_methods(); diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index 281d614ea9..b37b06748d 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -35,6 +35,7 @@ #include "editor/editor_file_dialog.h" #include "editor/editor_node.h" #include "editor/editor_scale.h" +#include "editor/filesystem_dock.h" #include "project_settings_editor.h" #include "scene/main/window.h" #include "scene/resources/packed_scene.h" @@ -52,7 +53,7 @@ void EditorAutoloadSettings::_notification(int p_what) { file_dialog->add_filter("*." + E); } - for (const AutoLoadInfo &info : autoload_cache) { + for (const AutoloadInfo &info : autoload_cache) { if (info.node && info.in_editor) { get_tree()->get_root()->call_deferred(SNAME("add_child"), info.node); } @@ -63,6 +64,28 @@ void EditorAutoloadSettings::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { browse_button->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons"))); } break; + + case NOTIFICATION_VISIBILITY_CHANGED: { + FileSystemDock *dock = FileSystemDock::get_singleton(); + + if (dock != nullptr) { + ScriptCreateDialog *dialog = dock->get_script_create_dialog(); + + if (dialog != nullptr) { + Callable script_created = callable_mp(this, &EditorAutoloadSettings::_script_created); + + if (is_visible_in_tree()) { + if (!dialog->is_connected(SNAME("script_created"), script_created)) { + dialog->connect("script_created", script_created); + } + } else { + if (dialog->is_connected(SNAME("script_created"), script_created)) { + dialog->disconnect("script_created", script_created); + } + } + } + } + } break; } } @@ -122,7 +145,7 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin for (const String &E : keywords) { if (E == p_name) { if (r_error) { - *r_error = TTR("Invalid name.") + " " + TTR("Keyword cannot be used as an AutoLoad name."); + *r_error = TTR("Invalid name.") + " " + TTR("Keyword cannot be used as an Autoload name."); } return false; @@ -134,12 +157,22 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin } void EditorAutoloadSettings::_autoload_add() { - if (autoload_add(autoload_add_name->get_text(), autoload_add_path->get_text())) { - autoload_add_path->set_text(""); - } + if (autoload_add_path->get_text().is_empty()) { + ScriptCreateDialog *dialog = FileSystemDock::get_singleton()->get_script_create_dialog(); + String fpath = path; + if (!fpath.ends_with("/")) { + fpath = fpath.get_base_dir(); + } + dialog->config("Node", fpath.plus_file(vformat("%s.gd", autoload_add_name->get_text().camelcase_to_underscore())), false, false); + dialog->popup_centered(); + } else { + if (autoload_add(autoload_add_name->get_text(), autoload_add_path->get_text())) { + autoload_add_path->set_text(""); + } - autoload_add_name->set_text(""); - add_autoload->set_disabled(true); + autoload_add_name->set_text(""); + add_autoload->set_disabled(true); + } } void EditorAutoloadSettings::_autoload_selected() { @@ -227,7 +260,7 @@ void EditorAutoloadSettings::_autoload_edited() { path = "*" + path; } - undo_redo->create_action(TTR("Toggle AutoLoad Globals")); + undo_redo->create_action(TTR("Toggle Autoload Globals")); undo_redo->add_do_property(ProjectSettings::get_singleton(), base, path); undo_redo->add_undo_property(ProjectSettings::get_singleton(), base, ProjectSettings::get_singleton()->get(base)); @@ -351,14 +384,13 @@ void EditorAutoloadSettings::_autoload_text_submitted(const String p_name) { } void EditorAutoloadSettings::_autoload_path_text_changed(const String p_path) { - add_autoload->set_disabled( - p_path.is_empty() || !_autoload_name_is_valid(autoload_add_name->get_text(), nullptr)); + add_autoload->set_disabled(!_autoload_name_is_valid(autoload_add_name->get_text(), nullptr)); } void EditorAutoloadSettings::_autoload_text_changed(const String p_name) { String error_string; bool is_name_valid = _autoload_name_is_valid(p_name, &error_string); - add_autoload->set_disabled(autoload_add_path->get_text().is_empty() || !is_name_valid); + add_autoload->set_disabled(!is_name_valid); error_message->set_text(error_string); error_message->set_visible(!autoload_add_name->get_text().is_empty() && !is_name_valid); } @@ -378,13 +410,13 @@ Node *EditorAutoloadSettings::_create_autoload(const String &p_path) { Object *obj = ClassDB::instantiate(ibt); - ERR_FAIL_COND_V_MSG(!obj, nullptr, "Cannot instance script for AutoLoad, expected 'Node' inheritance, got: " + String(ibt) + "."); + ERR_FAIL_COND_V_MSG(!obj, nullptr, "Cannot instance script for Autoload, expected 'Node' inheritance, got: " + String(ibt) + "."); n = Object::cast_to<Node>(obj); n->set_script(script); } - ERR_FAIL_COND_V_MSG(!n, nullptr, "Path in AutoLoad not a node or script: " + p_path + "."); + ERR_FAIL_COND_V_MSG(!n, nullptr, "Path in Autoload not a node or script: " + p_path + "."); return n; } @@ -396,10 +428,10 @@ void EditorAutoloadSettings::update_autoload() { updating_autoload = true; - Map<String, AutoLoadInfo> to_remove; - List<AutoLoadInfo *> to_add; + Map<String, AutoloadInfo> to_remove; + List<AutoloadInfo *> to_add; - for (const AutoLoadInfo &info : autoload_cache) { + for (const AutoloadInfo &info : autoload_cache) { to_remove.insert(info.name, info); } @@ -423,7 +455,7 @@ void EditorAutoloadSettings::update_autoload() { continue; } - AutoLoadInfo info; + AutoloadInfo info; info.is_singleton = path.begins_with("*"); if (info.is_singleton) { @@ -436,7 +468,7 @@ void EditorAutoloadSettings::update_autoload() { bool need_to_add = true; if (to_remove.has(name)) { - AutoLoadInfo &old_info = to_remove[name]; + AutoloadInfo &old_info = to_remove[name]; if (old_info.path == info.path) { // Still the same resource, check status info.node = old_info.node; @@ -478,8 +510,8 @@ void EditorAutoloadSettings::update_autoload() { } // Remove deleted/changed autoloads - for (KeyValue<String, AutoLoadInfo> &E : to_remove) { - AutoLoadInfo &info = E.value; + for (KeyValue<String, AutoloadInfo> &E : to_remove) { + AutoloadInfo &info = E.value; if (info.is_singleton) { for (int i = 0; i < ScriptServer::get_language_count(); i++) { ScriptServer::get_language(i)->remove_named_global_constant(info.name); @@ -500,7 +532,7 @@ void EditorAutoloadSettings::update_autoload() { // Load new/changed autoloads List<Node *> nodes_to_add; - for (AutoLoadInfo *info : to_add) { + for (AutoloadInfo *info : to_add) { info->node = _create_autoload(info->path); ERR_CONTINUE(!info->node); @@ -540,6 +572,14 @@ void EditorAutoloadSettings::update_autoload() { updating_autoload = false; } +void EditorAutoloadSettings::_script_created(Ref<Script> p_script) { + FileSystemDock::get_singleton()->get_script_create_dialog()->hide(); + path = p_script->get_path().get_base_dir(); + autoload_add_path->set_text(p_script->get_path()); + autoload_add_name->set_text(p_script->get_path().get_file().get_basename().capitalize().replace(" ", "")); + _autoload_add(); +} + Variant EditorAutoloadSettings::get_drag_data_fw(const Point2 &p_point, Control *p_control) { if (autoload_cache.size() <= 1) { return false; @@ -632,8 +672,8 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant & int order = ProjectSettings::get_singleton()->get_order("autoload/" + name); - AutoLoadInfo aux; - List<AutoLoadInfo>::Element *E = nullptr; + AutoloadInfo aux; + List<AutoloadInfo>::Element *E = nullptr; if (!move_to_back) { aux.order = order; @@ -649,7 +689,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant & for (int i = 0; i < autoloads.size(); i++) { aux.order = ProjectSettings::get_singleton()->get_order("autoload/" + autoloads[i]); - List<AutoLoadInfo>::Element *I = autoload_cache.find(aux); + List<AutoloadInfo>::Element *I = autoload_cache.find(aux); if (move_to_back) { autoload_cache.move_to_back(I); @@ -664,7 +704,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant & int i = 0; - for (const AutoLoadInfo &F : autoload_cache) { + for (const AutoloadInfo &F : autoload_cache) { orders.write[i++] = F.order; } @@ -676,7 +716,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant & i = 0; - for (const AutoLoadInfo &F : autoload_cache) { + for (const AutoloadInfo &F : autoload_cache) { undo_redo->add_do_method(ProjectSettings::get_singleton(), "set_order", "autoload/" + F.name, orders[i++]); undo_redo->add_undo_method(ProjectSettings::get_singleton(), "set_order", "autoload/" + F.name, F.order); } @@ -697,18 +737,18 @@ bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_ String error; if (!_autoload_name_is_valid(name, &error)) { - EditorNode::get_singleton()->show_warning(TTR("Can't add AutoLoad:") + "\n" + error); + EditorNode::get_singleton()->show_warning(TTR("Can't add Autoload:") + "\n" + error); return false; } const String &path = p_path; if (!FileAccess::exists(path)) { - EditorNode::get_singleton()->show_warning(TTR("Can't add AutoLoad:") + "\n" + vformat(TTR("%s is an invalid path. File does not exist."), path)); + EditorNode::get_singleton()->show_warning(TTR("Can't add Autoload:") + "\n" + vformat(TTR("%s is an invalid path. File does not exist."), path)); return false; } if (!path.begins_with("res://")) { - EditorNode::get_singleton()->show_warning(TTR("Can't add AutoLoad:") + "\n" + vformat(TTR("%s is an invalid path. Not in resource path (res://)."), path)); + EditorNode::get_singleton()->show_warning(TTR("Can't add Autoload:") + "\n" + vformat(TTR("%s is an invalid path. Not in resource path (res://)."), path)); return false; } @@ -716,7 +756,7 @@ bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_ UndoRedo *undo_redo = EditorNode::get_undo_redo(); - undo_redo->create_action(TTR("Add AutoLoad")); + undo_redo->create_action(TTR("Add Autoload")); // Singleton autoloads are represented with a leading "*" in their path. undo_redo->add_do_property(ProjectSettings::get_singleton(), name, "*" + path); @@ -791,7 +831,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() { continue; } - AutoLoadInfo info; + AutoloadInfo info; info.is_singleton = path.begins_with("*"); if (info.is_singleton) { @@ -812,7 +852,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() { autoload_cache.push_back(info); } - for (AutoLoadInfo &info : autoload_cache) { + for (AutoloadInfo &info : autoload_cache) { info.node = _create_autoload(info.path); if (info.node) { @@ -833,11 +873,6 @@ EditorAutoloadSettings::EditorAutoloadSettings() { } } - autoload_changed = "autoload_changed"; - - updating_autoload = false; - selected_autoload = ""; - HBoxContainer *hbc = memnew(HBoxContainer); add_child(hbc); @@ -854,6 +889,8 @@ EditorAutoloadSettings::EditorAutoloadSettings() { autoload_add_path = memnew(LineEdit); hbc->add_child(autoload_add_path); autoload_add_path->set_h_size_flags(Control::SIZE_EXPAND_FILL); + autoload_add_path->set_clear_button_enabled(true); + autoload_add_path->set_placeholder(vformat(TTR(R"(Set path or press "%s" to create a script.)"), TTR("Add"))); autoload_add_path->connect("text_changed", callable_mp(this, &EditorAutoloadSettings::_autoload_path_text_changed)); browse_button = memnew(Button); @@ -921,7 +958,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() { } EditorAutoloadSettings::~EditorAutoloadSettings() { - for (const AutoLoadInfo &info : autoload_cache) { + for (const AutoloadInfo &info : autoload_cache) { if (info.node && !info.in_editor) { memdelete(info.node); } diff --git a/editor/editor_autoload_settings.h b/editor/editor_autoload_settings.h index 135ff48a0c..380cadbebb 100644 --- a/editor/editor_autoload_settings.h +++ b/editor/editor_autoload_settings.h @@ -47,9 +47,10 @@ class EditorAutoloadSettings : public VBoxContainer { BUTTON_DELETE }; - String autoload_changed; + String path = "res://"; + String autoload_changed = "autoload_changed"; - struct AutoLoadInfo { + struct AutoloadInfo { String name; String path; bool is_singleton = false; @@ -57,24 +58,23 @@ class EditorAutoloadSettings : public VBoxContainer { int order = 0; Node *node = nullptr; - bool operator==(const AutoLoadInfo &p_info) const { + bool operator==(const AutoloadInfo &p_info) const { return order == p_info.order; } }; - List<AutoLoadInfo> autoload_cache; + List<AutoloadInfo> autoload_cache; - bool updating_autoload; - int number_of_autoloads; + bool updating_autoload = false; String selected_autoload; - Tree *tree; - LineEdit *autoload_add_name; - Button *add_autoload; - LineEdit *autoload_add_path; - Label *error_message; - Button *browse_button; - EditorFileDialog *file_dialog; + Tree *tree = nullptr; + LineEdit *autoload_add_name = nullptr; + Button *add_autoload = nullptr; + LineEdit *autoload_add_path = nullptr; + Label *error_message = nullptr; + Button *browse_button = nullptr; + EditorFileDialog *file_dialog = nullptr; bool _autoload_name_is_valid(const String &p_name, String *r_error = nullptr); @@ -90,6 +90,8 @@ class EditorAutoloadSettings : public VBoxContainer { void _autoload_file_callback(const String &p_path); Node *_create_autoload(const String &p_path); + void _script_created(Ref<Script> p_script); + Variant get_drag_data_fw(const Point2 &p_point, Control *p_control); bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control) const; void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_control); diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 69c7e9d52c..c16451f3c6 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -1206,9 +1206,6 @@ void EditorSelection::clear() { } EditorSelection::EditorSelection() { - emitted = false; - changed = false; - nl_changed = false; } EditorSelection::~EditorSelection() { diff --git a/editor/editor_data.h b/editor/editor_data.h index 0d1efc9b62..79f8227e5c 100644 --- a/editor/editor_data.h +++ b/editor/editor_data.h @@ -239,9 +239,9 @@ class EditorSelection : public Object { private: Map<Node *, Object *> selection; - bool emitted; - bool changed; - bool nl_changed; + bool emitted = false; + bool changed = false; + bool nl_changed = false; void _node_removed(Node *p_node); diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp index f181c04004..32ef87a4ab 100644 --- a/editor/editor_dir_dialog.cpp +++ b/editor/editor_dir_dialog.cpp @@ -175,8 +175,6 @@ void EditorDirDialog::_bind_methods() { } EditorDirDialog::EditorDirDialog() { - updating = false; - set_title(TTR("Choose a Directory")); set_hide_on_ok(false); @@ -206,6 +204,4 @@ EditorDirDialog::EditorDirDialog() { add_child(mkdirerr); get_ok_button()->set_text(TTR("Choose")); - - must_reload = false; } diff --git a/editor/editor_dir_dialog.h b/editor/editor_dir_dialog.h index 053c1f5503..e97b5ce8af 100644 --- a/editor/editor_dir_dialog.h +++ b/editor/editor_dir_dialog.h @@ -47,7 +47,7 @@ class EditorDirDialog : public ConfirmationDialog { Set<String> opened_paths; Tree *tree; - bool updating; + bool updating = false; void _item_collapsed(Object *p_item); void _item_activated(); @@ -58,7 +58,7 @@ class EditorDirDialog : public ConfirmationDialog { void ok_pressed() override; - bool must_reload; + bool must_reload = false; protected: void _notification(int p_what); diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 295b477080..c3c8f40164 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -542,7 +542,7 @@ void EditorExportPlatform::_edit_filter_list(Set<String> &r_list, const String & filters.push_back(f); } - DirAccess *da = DirAccess::open("res://"); + DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); ERR_FAIL_NULL(da); _edit_files_with_filter(da, filters, r_list, exclude); memdelete(da); @@ -678,7 +678,6 @@ void EditorExportPlugin::_bind_methods() { } EditorExportPlugin::EditorExportPlugin() { - skipped = false; } EditorExportPlatform::FeatureContainers EditorExportPlatform::get_feature_containers(const Ref<EditorExportPreset> &p_preset) { @@ -1722,7 +1721,6 @@ EditorExport::EditorExport() { save_timer->set_wait_time(0.8); save_timer->set_one_shot(true); save_timer->connect("timeout", callable_mp(this, &EditorExport::_save)); - block_save = false; _export_presets_updated = "export_presets_updated"; @@ -1831,10 +1829,6 @@ List<String> EditorExportPlatformPC::get_binary_extensions(const Ref<EditorExpor Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags); - if (!DirAccess::exists(p_path.get_base_dir())) { - return ERR_FILE_BAD_PATH; - } - String custom_debug = p_preset->get("custom_template/debug"); String custom_release = p_preset->get("custom_template/release"); @@ -1863,9 +1857,9 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr return ERR_FILE_NOT_FOUND; } - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + da->make_dir_recursive(p_path.get_base_dir()); Error err = da->copy(template_path, p_path, get_chmod_flags()); - memdelete(da); if (err == OK) { String pck_path; @@ -1901,7 +1895,6 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr err = sign_shared_object(p_preset, p_debug, p_path.get_base_dir().plus_file(so_files[i].path.get_file())); } } - memdelete(da); } } diff --git a/editor/editor_export.h b/editor/editor_export.h index 796fb12793..182312b18f 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -297,7 +297,7 @@ class EditorExportPlugin : public RefCounted { bool remap = false; }; Vector<ExtraFile> extra_files; - bool skipped; + bool skipped = false; Vector<String> ios_frameworks; Vector<String> ios_embedded_frameworks; @@ -379,7 +379,7 @@ class EditorExport : public Node { StringName _export_presets_updated; Timer *save_timer; - bool block_save; + bool block_save = false; static EditorExport *singleton; diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp index 008c42b3a7..3d5ca7de42 100644 --- a/editor/editor_feature_profile.cpp +++ b/editor/editor_feature_profile.cpp @@ -34,6 +34,7 @@ #include "core/io/json.h" #include "editor/editor_file_dialog.h" #include "editor/editor_node.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" @@ -617,7 +618,8 @@ void EditorFeatureProfileManager::_class_list_item_selected() { property->set_editable(0, true); property->set_selectable(0, true); property->set_checked(0, !edited->is_class_property_disabled(class_name, name)); - property->set_text(0, name.capitalize()); + property->set_text(0, EditorPropertyNameProcessor::get_singleton()->process_name(name)); + property->set_tooltip(0, EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(name)); property->set_metadata(0, name); String icon_type = Variant::get_type_name(E.type); property->set_icon(0, EditorNode::get_singleton()->get_class_icon(icon_type)); @@ -1008,7 +1010,5 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { update_timer->connect("timeout", callable_mp(this, &EditorFeatureProfileManager::_emit_current_profile_changed)); update_timer->set_one_shot(true); - updating_features = false; - singleton = this; } diff --git a/editor/editor_feature_profile.h b/editor/editor_feature_profile.h index 7ea40502a6..881f14638f 100644 --- a/editor/editor_feature_profile.h +++ b/editor/editor_feature_profile.h @@ -155,7 +155,7 @@ class EditorFeatureProfileManager : public AcceptDialog { void _import_profiles(const Vector<String> &p_paths); void _export_profile(const String &p_path); - bool updating_features; + bool updating_features = false; void _class_list_item_selected(); void _class_list_item_edited(); diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index e6343100df..31f2f24066 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -214,7 +214,7 @@ void EditorFileDialog::update_dir() { if (dir_access->get_current_dir().is_network_share_path()) { _update_drives(false); drives->add_item(RTR("Network")); - drives->set_item_disabled(drives->get_item_count() - 1, true); + drives->set_item_disabled(-1, true); drives->select(drives->get_item_count() - 1); } else { drives->select(dir_access->get_current_drive()); @@ -314,8 +314,8 @@ void EditorFileDialog::_post_popup() { recentd.remove_at(i--); } else { recent->add_item(name, folder); - recent->set_item_metadata(recent->get_item_count() - 1, recentd[i]); - recent->set_item_icon_modulate(recent->get_item_count() - 1, folder_color); + recent->set_item_metadata(-1, recentd[i]); + recent->set_item_icon_modulate(-1, folder_color); } } EditorSettings::get_singleton()->set_recent_dirs(recentd); @@ -394,7 +394,8 @@ void EditorFileDialog::_action_pressed() { return; } - String f = dir_access->get_current_dir().plus_file(file->get_text()); + String file_text = file->get_text(); + String f = file_text.is_absolute_path() ? file_text : dir_access->get_current_dir().plus_file(file_text); if ((mode == FILE_MODE_OPEN_ANY || mode == FILE_MODE_OPEN_FILE) && dir_access->file_exists(f)) { _save_to_recent(); @@ -799,9 +800,9 @@ void EditorFileDialog::update_file_list() { item_list->add_item(dir_name); if (display_mode == DISPLAY_THUMBNAILS) { - item_list->set_item_icon(item_list->get_item_count() - 1, folder_thumbnail); + item_list->set_item_icon(-1, folder_thumbnail); } else { - item_list->set_item_icon(item_list->get_item_count() - 1, folder); + item_list->set_item_icon(-1, folder); } Dictionary d; @@ -809,8 +810,8 @@ void EditorFileDialog::update_file_list() { d["path"] = cdir.plus_file(dir_name); d["dir"] = true; - item_list->set_item_metadata(item_list->get_item_count() - 1, d); - item_list->set_item_icon_modulate(item_list->get_item_count() - 1, folder_color); + item_list->set_item_metadata(-1, d); + item_list->set_item_icon_modulate(-1, folder_color); dirs.pop_front(); } @@ -857,10 +858,10 @@ void EditorFileDialog::update_file_list() { if (get_icon_func) { Ref<Texture2D> icon = get_icon_func(cdir.plus_file(files.front()->get())); if (display_mode == DISPLAY_THUMBNAILS) { - item_list->set_item_icon(item_list->get_item_count() - 1, file_thumbnail); - item_list->set_item_tag_icon(item_list->get_item_count() - 1, icon); + item_list->set_item_icon(-1, file_thumbnail); + item_list->set_item_tag_icon(-1, icon); } else { - item_list->set_item_icon(item_list->get_item_count() - 1, icon); + item_list->set_item_icon(-1, icon); } } @@ -869,7 +870,7 @@ void EditorFileDialog::update_file_list() { d["dir"] = false; String fullpath = cdir.plus_file(files.front()->get()); d["path"] = fullpath; - item_list->set_item_metadata(item_list->get_item_count() - 1, d); + item_list->set_item_metadata(-1, d); if (display_mode == DISPLAY_THUMBNAILS && previews_enabled) { EditorResourcePreview::get_singleton()->queue_resource_preview(fullpath, this, "_thumbnail_result", fullpath); @@ -1320,8 +1321,8 @@ void EditorFileDialog::_update_favorites() { continue; // We don't handle favorite files here. } - favorites->set_item_metadata(favorites->get_item_count() - 1, favorited[i]); - favorites->set_item_icon_modulate(favorites->get_item_count() - 1, folder_color); + favorites->set_item_metadata(-1, favorited[i]); + favorites->set_item_icon_modulate(-1, folder_color); if (setthis) { favorite->set_pressed(true); @@ -1470,9 +1471,9 @@ void EditorFileDialog::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "access", PROPERTY_HINT_ENUM, "Resources,User data,File system"), "set_access", "get_access"); ADD_PROPERTY(PropertyInfo(Variant::INT, "display_mode", PROPERTY_HINT_ENUM, "Thumbnails,List"), "set_display_mode", "get_display_mode"); ADD_PROPERTY(PropertyInfo(Variant::INT, "file_mode", PROPERTY_HINT_ENUM, "Open one,Open many,Open folder,Open any,Save"), "set_file_mode", "get_file_mode"); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_dir", PROPERTY_HINT_DIR), "set_current_dir", "get_current_dir"); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_file", PROPERTY_HINT_FILE, "*"), "set_current_file", "get_current_file"); - ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_path"), "set_current_path", "get_current_path"); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_dir", PROPERTY_HINT_DIR, "", PROPERTY_USAGE_NONE), "set_current_dir", "get_current_dir"); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_file", PROPERTY_HINT_FILE, "*", PROPERTY_USAGE_NONE), "set_current_file", "get_current_file"); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "current_path", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_current_path", "get_current_path"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "show_hidden_files"), "set_show_hidden_files", "is_showing_hidden_files"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "disable_overwrite_warning"), "set_disable_overwrite_warning", "is_overwrite_warning_disabled"); @@ -1556,7 +1557,6 @@ EditorFileDialog::EditorFileDialog() { show_hidden_files = default_show_hidden_files; display_mode = default_display_mode; local_history_pos = 0; - disable_overwrite_warning = false; VBoxContainer *vbc = memnew(VBoxContainer); add_child(vbc); @@ -1813,15 +1813,12 @@ EditorFileDialog::EditorFileDialog() { set_hide_on_ok(false); vbox = vbc; - invalidated = true; if (register_func) { register_func(this); } - previews_enabled = true; preview_wheel_timeout = 0; preview_wheel_index = 0; - preview_waiting = false; } EditorFileDialog::~EditorFileDialog() { diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h index 65a4c9e544..a747255ce8 100644 --- a/editor/editor_file_dialog.h +++ b/editor/editor_file_dialog.h @@ -135,8 +135,8 @@ private: Vector<String> filters; - bool previews_enabled; - bool preview_waiting; + bool previews_enabled = true; + bool preview_waiting = false; int preview_wheel_index; float preview_wheel_timeout; @@ -145,8 +145,8 @@ private: bool show_hidden_files; DisplayMode display_mode; - bool disable_overwrite_warning; - bool invalidated; + bool disable_overwrite_warning = false; + bool invalidated = true; void update_dir(); void update_file_name(); diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 0c46cebec0..98ba3ae3d8 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -194,7 +194,6 @@ void EditorFileSystemDirectory::_bind_methods() { EditorFileSystemDirectory::EditorFileSystemDirectory() { modified_time = 0; parent = nullptr; - verified = false; } EditorFileSystemDirectory::~EditorFileSystemDirectory() { @@ -1094,12 +1093,11 @@ void EditorFileSystem::_delete_internal_files(String p_file) { if (FileAccess::exists(p_file + ".import")) { List<String> paths; ResourceFormatImporter::get_singleton()->get_internal_resource_path_list(p_file, &paths); - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); for (const String &E : paths) { da->remove(E); } da->remove(p_file + ".import"); - memdelete(da); } } @@ -2384,24 +2382,14 @@ EditorFileSystem::EditorFileSystem() { filesystem = memnew(EditorFileSystemDirectory); //like, empty filesystem->parent = nullptr; - scanning = false; - importing = false; - use_threads = true; new_filesystem = nullptr; - abort_scan = false; - scanning_changes = false; - scanning_changes_done = false; - // This should probably also work on Unix and use the string it returns for FAT32 or exFAT DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); using_fat32_or_exfat = (da->get_filesystem_type() == "FAT32" || da->get_filesystem_type() == "exFAT"); scan_total = 0; update_script_classes_queued.clear(); - first_scan = true; - scan_changes_pending = false; - revalidate_import_files = false; import_threads.init(); ResourceUID::get_singleton()->clear(); //will be updated on scan ResourceSaver::set_get_resource_id_for_path(_resource_saver_get_resource_id_for_path); diff --git a/editor/editor_file_system.h b/editor/editor_file_system.h index 0c1bfbca47..0ec0094030 100644 --- a/editor/editor_file_system.h +++ b/editor/editor_file_system.h @@ -47,7 +47,7 @@ class EditorFileSystemDirectory : public Object { String name; uint64_t modified_time; - bool verified; //used for checking changes + bool verified = false; //used for checking changes EditorFileSystemDirectory *parent; Vector<EditorFileSystemDirectory *> subdirs; @@ -132,20 +132,20 @@ class EditorFileSystem : public Node { EditorFileSystemDirectory::FileInfo *new_file = nullptr; }; - bool use_threads; + bool use_threads = true; Thread thread; static void _thread_func(void *_userdata); EditorFileSystemDirectory *new_filesystem; - bool abort_scan; - bool scanning; - bool importing; - bool first_scan; - bool scan_changes_pending; + bool abort_scan = false; + bool scanning = false; + bool importing = false; + bool first_scan = true; + bool scan_changes_pending = false; float scan_total; String filesystem_settings_version_for_import; - bool revalidate_import_files; + bool revalidate_import_files = false; void _scan_filesystem(); @@ -197,8 +197,8 @@ class EditorFileSystem : public Node { void _scan_new_dir(EditorFileSystemDirectory *p_dir, DirAccess *da, const ScanProgress &p_progress); Thread thread_sources; - bool scanning_changes; - bool scanning_changes_done; + bool scanning_changes = false; + bool scanning_changes_done = false; static void _thread_func_sources(void *_userdata); diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp index d80ee1d569..7b72e09bd7 100644 --- a/editor/editor_fonts.cpp +++ b/editor/editor_fonts.cpp @@ -64,8 +64,8 @@ m_name->add_data(FontTamilBold); \ m_name->add_data(FontTeluguBold); \ m_name->add_data(FontThaiBold); \ - m_name->add_data(FontJapanese); \ - m_name->add_data(FontFallback); + m_name->add_data(FontJapaneseBold); \ + m_name->add_data(FontFallbackBold); #define MAKE_DEFAULT_FONT(m_name, m_variations) \ Ref<Font> m_name; \ @@ -174,7 +174,7 @@ Ref<FontData> load_cached_internal_font(const uint8_t *p_data, size_t p_size, Te } void editor_register_fonts(Ref<Theme> p_theme) { - DirAccess *dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); /* Custom font */ @@ -206,7 +206,8 @@ void editor_register_fonts(Ref<Theme> p_theme) { break; } - int default_font_size = int(EDITOR_GET("interface/editor/main_font_size")) * EDSCALE; + const int default_font_size = int(EDITOR_GET("interface/editor/main_font_size")) * EDSCALE; + const float embolden_strength = 0.6; String custom_font_path = EditorSettings::get_singleton()->get("interface/editor/main_font"); Ref<FontData> CustomFont; @@ -226,6 +227,11 @@ void editor_register_fonts(Ref<Theme> p_theme) { EditorSettings::get_singleton()->set_manually("interface/editor/main_font_bold", ""); } + if (CustomFont.is_valid() && !CustomFontBold.is_valid()) { + CustomFontBold = CustomFont->duplicate(); + CustomFontBold->set_embolden(embolden_strength); + } + /* Custom source code font */ String custom_font_path_source = EditorSettings::get_singleton()->get("interface/editor/code_font"); @@ -236,8 +242,6 @@ void editor_register_fonts(Ref<Theme> p_theme) { EditorSettings::get_singleton()->set_manually("interface/editor/code_font", ""); } - memdelete(dir); - /* Noto Sans */ Ref<FontData> DefaultFont = load_cached_internal_font(_font_NotoSans_Regular, _font_NotoSans_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); @@ -270,6 +274,11 @@ void editor_register_fonts(Ref<Theme> p_theme) { Ref<FontData> FontFallback = load_cached_internal_font(_font_DroidSansFallback, _font_DroidSansFallback_size, font_hinting, font_antialiased, true, font_subpixel_positioning); Ref<FontData> FontJapanese = load_cached_internal_font(_font_DroidSansJapanese, _font_DroidSansJapanese_size, font_hinting, font_antialiased, true, font_subpixel_positioning); + Ref<FontData> FontFallbackBold = FontFallback->duplicate(); + FontFallbackBold->set_embolden(embolden_strength); + Ref<FontData> FontJapaneseBold = FontJapanese->duplicate(); + FontJapaneseBold->set_embolden(embolden_strength); + /* Hack */ Ref<FontData> dfmono = load_cached_internal_font(_font_JetBrainsMono_Regular, _font_JetBrainsMono_Regular_size, font_hinting, font_antialiased, true, font_subpixel_positioning); diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index fe39f7acc9..622547f0a8 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -477,9 +477,9 @@ void EditorHelp::_update_method_descriptions(const DocData::ClassDoc p_classdoc, class_desc->add_text(" "); class_desc->push_color(comment_color); if (p_classdoc.is_script_doc) { - class_desc->append_text(TTR("There is currently no description for this " + p_method_type + ".")); + class_desc->append_text(vformat(TTR("There is currently no description for this %s."), p_method_type)); } else { - class_desc->append_text(TTR("There is currently no description for this " + p_method_type + ". Please help us by [color=$color][url=$url]contributing one[/url][/color]!").replace("$url", CONTRIBUTE_URL).replace("$color", link_color_text)); + class_desc->append_text(vformat(TTR("There is currently no description for this %s. Please help us by [color=$color][url=$url]contributing one[/url][/color]!"), p_method_type).replace("$url", CONTRIBUTE_URL).replace("$color", link_color_text)); } class_desc->pop(); } @@ -1897,8 +1897,6 @@ EditorHelp::EditorHelp() { class_desc->set_selection_enabled(true); - scroll_locked = false; - select_locked = false; class_desc->hide(); } diff --git a/editor/editor_help.h b/editor/editor_help.h index 10281a764c..b40d1709b6 100644 --- a/editor/editor_help.h +++ b/editor/editor_help.h @@ -98,7 +98,7 @@ class EditorHelp : public VBoxContainer { }; - bool select_locked; + bool select_locked = false; String prev_search; @@ -144,7 +144,7 @@ class EditorHelp : public VBoxContainer { void _help_callback(const String &p_topic); void _add_text(const String &p_bbcode); - bool scroll_locked; + bool scroll_locked = false; //void _button_pressed(int p_idx); void _add_type(const String &p_type, const String &p_enum = String()); diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index dd4969cdd2..8e03c55712 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -180,8 +180,6 @@ void EditorHelpSearch::popup_dialog(const String &p_term) { } EditorHelpSearch::EditorHelpSearch() { - old_search = false; - set_hide_on_ok(false); set_title(TTR("Search Help")); @@ -536,7 +534,7 @@ TreeItem *EditorHelpSearch::Runner::_create_class_item(TreeItem *p_parent, const } else if (ClassDB::class_exists(p_doc->name) && ClassDB::is_parent_class(p_doc->name, "Object")) { icon = ui_service->get_theme_icon(SNAME("Object"), SNAME("EditorIcons")); } - String tooltip = p_doc->brief_description.strip_edges(); + String tooltip = DTR(p_doc->brief_description.strip_edges()); TreeItem *item = results_tree->create_item(p_parent); item->set_icon(0, icon); diff --git a/editor/editor_help_search.h b/editor/editor_help_search.h index 7d918d0c68..bf69fe1693 100644 --- a/editor/editor_help_search.h +++ b/editor/editor_help_search.h @@ -60,7 +60,7 @@ class EditorHelpSearch : public ConfirmationDialog { Button *hierarchy_button; OptionButton *filter_combo; Tree *results_tree; - bool old_search; + bool old_search = false; String old_term; class Runner; diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 675ef808e1..9efd942a51 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -36,6 +36,7 @@ #include "editor/doc_tools.h" #include "editor/editor_feature_profile.h" #include "editor/editor_node.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "multi_node_edit.h" @@ -99,7 +100,7 @@ void EditorProperty::emit_changed(const StringName &p_property, const Variant &p const Variant *argptrs[4] = { &args[0], &args[1], &args[2], &args[3] }; cache[p_property] = p_value; - emit_signal(SNAME("property_changed"), (const Variant **)argptrs, 4); + emit_signalp(SNAME("property_changed"), (const Variant **)argptrs, 4); } void EditorProperty::_notification(int p_what) { @@ -691,15 +692,11 @@ void EditorProperty::unhandled_key_input(const Ref<InputEvent> &p_event) { } const Color *EditorProperty::_get_property_colors() { - const Color base = get_theme_color(SNAME("accent_color"), SNAME("Editor")); - const float saturation = base.get_s() * 0.75; - const float value = base.get_v(); - static Color c[4]; - c[0].set_hsv(0.0 / 3.0 + 0.05, saturation, value); - c[1].set_hsv(1.0 / 3.0 + 0.05, saturation, value); - c[2].set_hsv(2.0 / 3.0 + 0.05, saturation, value); - c[3].set_hsv(1.5 / 3.0 + 0.05, saturation, value); + c[0] = get_theme_color(SNAME("property_color_x"), SNAME("Editor")); + c[1] = get_theme_color(SNAME("property_color_y"), SNAME("Editor")); + c[2] = get_theme_color(SNAME("property_color_z"), SNAME("Editor")); + c[3] = get_theme_color(SNAME("property_color_w"), SNAME("Editor")); return c; } @@ -885,7 +882,7 @@ void EditorProperty::menu_option(int p_option) { emit_changed(property, InspectorDock::get_inspector_singleton()->get_property_clipboard()); } break; case MENU_COPY_PROPERTY_PATH: { - DisplayServer::get_singleton()->clipboard_set(property); + DisplayServer::get_singleton()->clipboard_set(property_path); } break; case MENU_PIN_VALUE: { emit_signal(SNAME("property_pinned"), property, !pinned); @@ -951,31 +948,13 @@ void EditorProperty::_bind_methods() { } EditorProperty::EditorProperty() { - draw_top_bg = true; object = nullptr; split_ratio = 0.5; - selectable = true; text_size = 0; - read_only = false; - checkable = false; - checked = false; - draw_warning = false; - keying = false; - deletable = false; - keying_hover = false; - revert_hover = false; - check_hover = false; - can_revert = false; - can_pin = false; - pin_hidden = false; - pinned = false; - use_folding = false; property_usage = 0; - selected = false; selected_focusable = -1; label_reference = nullptr; bottom_editor = nullptr; - delete_hover = false; menu = nullptr; set_process_unhandled_key_input(true); } @@ -2335,6 +2314,7 @@ void EditorInspector::_parse_added_editors(VBoxContainer *current_vbox, Ref<Edit if (F.properties.size() == 1) { //since it's one, associate: ep->property = F.properties[0]; + ep->property_path = property_prefix + F.properties[0]; ep->property_usage = 0; } @@ -2684,10 +2664,10 @@ void EditorInspector::update_tree() { if (dot != -1) { String ov = property_label_string.substr(dot); property_label_string = property_label_string.substr(0, dot); - property_label_string = property_label_string.capitalize(); + property_label_string = EditorPropertyNameProcessor::get_singleton()->process_name(property_label_string); property_label_string += ov; } else { - property_label_string = property_label_string.capitalize(); + property_label_string = EditorPropertyNameProcessor::get_singleton()->process_name(property_label_string); } } @@ -2738,13 +2718,15 @@ void EditorInspector::update_tree() { current_vbox->add_child(section); sections.push_back(section); + String label = component; if (capitalize_paths) { - component = component.capitalize(); + label = EditorPropertyNameProcessor::get_singleton()->process_name(label); } Color c = sscolor; c.a /= level; - section->setup(acc_path, component, object, c, use_folding, section_depth); + section->setup(acc_path, label, object, c, use_folding, section_depth); + section->set_tooltip(EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(component)); // Add editors at the start of a group. for (Ref<EditorInspectorPlugin> &ped : valid_plugins) { @@ -2776,7 +2758,7 @@ void EditorInspector::update_tree() { editor_inspector_array = memnew(EditorInspectorArray); String array_label = path.contains("/") ? path.substr(path.rfind("/") + 1) : path; - array_label = property_label_string.capitalize(); + array_label = EditorPropertyNameProcessor::get_singleton()->process_name(property_label_string); int page = per_array_page.has(array_element_prefix) ? per_array_page[array_element_prefix] : 0; editor_inspector_array->setup_with_move_element_function(object, array_label, array_element_prefix, page, c, use_folding); editor_inspector_array->connect("page_change_request", callable_mp(this, &EditorInspector::_page_change_request), varray(array_element_prefix)); @@ -2893,6 +2875,7 @@ void EditorInspector::update_tree() { if (F.properties.size() == 1) { //since it's one, associate: ep->property = F.properties[0]; + ep->property_path = property_prefix + F.properties[0]; ep->property_usage = p.usage; //and set label? } @@ -3318,7 +3301,7 @@ void EditorInspector::_property_keyed(const String &p_path, bool p_advance) { // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it. const Variant args[3] = { p_path, object->get(p_path), p_advance }; const Variant *argp[3] = { &args[0], &args[1], &args[2] }; - emit_signal(SNAME("property_keyed"), argp, 3); + emit_signalp(SNAME("property_keyed"), argp, 3); } void EditorInspector::_property_deleted(const String &p_path) { @@ -3337,7 +3320,7 @@ void EditorInspector::_property_keyed_with_value(const String &p_path, const Var // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it. const Variant args[3] = { p_path, p_value, p_advance }; const Variant *argp[3] = { &args[0], &args[1], &args[2] }; - emit_signal(SNAME("property_keyed"), argp, 3); + emit_signalp(SNAME("property_keyed"), argp, 3); } void EditorInspector::_property_checked(const String &p_path, bool p_checked) { @@ -3514,7 +3497,9 @@ void EditorInspector::_notification(int p_what) { case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { _update_inspector_bg(); - update_tree(); + if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/inspector")) { + update_tree(); + } } break; } } @@ -3674,25 +3659,11 @@ EditorInspector::EditorInspector() { add_child(main_vbox); set_horizontal_scroll_mode(SCROLL_MODE_DISABLED); - wide_editors = false; - show_categories = false; - hide_script = true; - use_doc_hints = false; - capitalize_paths = true; - use_filter = false; - autoclear = false; changing = 0; - use_folding = false; - update_all_pending = false; - update_tree_pending = false; - read_only = false; search_box = nullptr; - keying = false; _prop_edited = "property_edited"; set_process(false); property_focusable = -1; - sub_inspector = false; - deletable_properties = false; property_clipboard = Variant(); get_v_scroll_bar()->connect("value_changed", callable_mp(this, &EditorInspector::_vscroll_changed)); diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h index 43f71740e3..3c482a07e7 100644 --- a/editor/editor_inspector.h +++ b/editor/editor_inspector.h @@ -68,15 +68,16 @@ private: friend class EditorInspector; Object *object; StringName property; + String property_path; int property_usage; - bool read_only; - bool checkable; - bool checked; - bool draw_warning; - bool keying; - bool deletable; + bool read_only = false; + bool checkable = false; + bool checked = false; + bool draw_warning = false; + bool keying = false; + bool deletable = false; Rect2 right_child_rect; Rect2 bottom_child_rect; @@ -90,19 +91,19 @@ private: Rect2 delete_rect; bool delete_hover = false; - bool can_revert; - bool can_pin; - bool pin_hidden; - bool pinned; + bool can_revert = false; + bool can_pin = false; + bool pin_hidden = false; + bool pinned = false; - bool use_folding; - bool draw_top_bg; + bool use_folding = false; + bool draw_top_bg = true; void _update_popup(); void _focusable_focused(int p_index); - bool selectable; - bool selected; + bool selectable = true; + bool selected = false; int selected_focusable; float split_ratio; @@ -442,23 +443,23 @@ class EditorInspector : public ScrollContainer { // LineEdit *search_box; - bool show_categories; - bool hide_script; - bool use_doc_hints; - bool capitalize_paths; - bool use_filter; - bool autoclear; - bool use_folding; + bool show_categories = false; + bool hide_script = true; + bool use_doc_hints = false; + bool capitalize_paths = true; + bool use_filter = false; + bool autoclear = false; + bool use_folding = false; int changing; - bool update_all_pending; - bool read_only; - bool keying; - bool sub_inspector; - bool wide_editors; - bool deletable_properties; + bool update_all_pending = false; + bool read_only = false; + bool keying = false; + bool sub_inspector = false; + bool wide_editors = false; + bool deletable_properties = false; float refresh_countdown; - bool update_tree_pending; + bool update_tree_pending = false; StringName _prop_edited; StringName property_selected; int property_focusable; diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp index d9ba4139c2..54a55286e9 100644 --- a/editor/editor_log.cpp +++ b/editor/editor_log.cpp @@ -80,6 +80,11 @@ void EditorLog::_update_theme() { type_filter_map[MSG_TYPE_WARNING]->toggle_button->set_icon(get_theme_icon(SNAME("StatusWarning"), SNAME("EditorIcons"))); type_filter_map[MSG_TYPE_EDITOR]->toggle_button->set_icon(get_theme_icon(SNAME("Edit"), SNAME("EditorIcons"))); + type_filter_map[MSG_TYPE_STD]->toggle_button->set_theme_type_variation("EditorLogFilterButton"); + type_filter_map[MSG_TYPE_ERROR]->toggle_button->set_theme_type_variation("EditorLogFilterButton"); + type_filter_map[MSG_TYPE_WARNING]->toggle_button->set_theme_type_variation("EditorLogFilterButton"); + type_filter_map[MSG_TYPE_EDITOR]->toggle_button->set_theme_type_variation("EditorLogFilterButton"); + clear_button->set_icon(get_theme_icon(SNAME("Clear"), SNAME("EditorIcons"))); copy_button->set_icon(get_theme_icon(SNAME("ActionCopy"), SNAME("EditorIcons"))); collapse_button->set_icon(get_theme_icon(SNAME("CombineLines"), SNAME("EditorIcons"))); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index cda5e6b537..7251530fdc 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -90,6 +90,7 @@ #include "editor/editor_paths.h" #include "editor/editor_plugin.h" #include "editor/editor_properties.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_resource_picker.h" #include "editor/editor_resource_preview.h" #include "editor/editor_run.h" @@ -313,6 +314,7 @@ void EditorNode::disambiguate_filenames(const Vector<String> p_full_paths, Vecto } } +// TODO: This REALLY should be done in a better way than replacing all tabs after almost EVERY action. void EditorNode::_update_scene_tabs() { bool show_rb = EditorSettings::get_singleton()->get("interface/scene_tabs/show_script_button"); @@ -330,6 +332,9 @@ void EditorNode::_update_scene_tabs() { disambiguate_filenames(full_path_names, disambiguated_scene_names); + // Workaround to ignore the tab_changed signal from the first added tab. + scene_tabs->disconnect("tab_changed", callable_mp(this, &EditorNode::_scene_tab_changed)); + scene_tabs->clear_tabs(); Ref<Texture2D> script_icon = gui_base->get_theme_icon(SNAME("Script"), SNAME("EditorIcons")); for (int i = 0; i < editor_data.get_edited_scene_count(); i++) { @@ -388,6 +393,9 @@ void EditorNode::_update_scene_tabs() { scene_tab_add->set_position(Point2(last_tab.position.x + last_tab.size.width + hsep, last_tab.position.y)); } } + + // Reconnect after everything is done. + scene_tabs->connect("tab_changed", callable_mp(this, &EditorNode::_scene_tab_changed)); } void EditorNode::_version_control_menu_option(int p_idx) { @@ -693,32 +701,35 @@ void EditorNode::_notification(int p_what) { } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { - scene_tabs->set_tab_close_display_policy((bool(EDITOR_GET("interface/scene_tabs/always_show_close_button")) ? TabBar::CLOSE_BUTTON_SHOW_ALWAYS : TabBar::CLOSE_BUTTON_SHOW_ACTIVE_ONLY)); - theme = create_custom_theme(theme_base->get_theme()); + scene_tabs->set_tab_close_display_policy((TabBar::CloseButtonDisplayPolicy)EDITOR_GET("interface/scene_tabs/display_close_button").operator int()); - theme_base->set_theme(theme); - gui_base->set_theme(theme); + bool theme_changed = + EditorSettings::get_singleton()->check_changed_settings_in_group("interface/theme") || + EditorSettings::get_singleton()->check_changed_settings_in_group("text_editor/theme"); - gui_base->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("Background"), SNAME("EditorStyles"))); - scene_root_parent->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("Content"), SNAME("EditorStyles"))); - bottom_panel->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("panel"), SNAME("TabContainer"))); - scene_tabs->add_theme_style_override("tab_selected", gui_base->get_theme_stylebox(SNAME("SceneTabFG"), SNAME("EditorStyles"))); - scene_tabs->add_theme_style_override("tab_unselected", gui_base->get_theme_stylebox(SNAME("SceneTabBG"), SNAME("EditorStyles"))); + if (theme_changed) { + theme = create_custom_theme(theme_base->get_theme()); - file_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); - project_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); - debug_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); - settings_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); - help_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); + theme_base->set_theme(theme); + gui_base->set_theme(theme); - if (EDITOR_GET("interface/scene_tabs/resize_if_many_tabs")) { - scene_tabs->set_min_width(int(EDITOR_GET("interface/scene_tabs/minimum_width")) * EDSCALE); - } else { - scene_tabs->set_min_width(0); + gui_base->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("Background"), SNAME("EditorStyles"))); + scene_root_parent->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("Content"), SNAME("EditorStyles"))); + bottom_panel->add_theme_style_override("panel", gui_base->get_theme_stylebox(SNAME("panel"), SNAME("TabContainer"))); + scene_tabs->add_theme_style_override("tab_selected", gui_base->get_theme_stylebox(SNAME("SceneTabFG"), SNAME("EditorStyles"))); + scene_tabs->add_theme_style_override("tab_unselected", gui_base->get_theme_stylebox(SNAME("SceneTabBG"), SNAME("EditorStyles"))); + + file_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); + project_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); + debug_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); + settings_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); + help_menu->add_theme_style_override("hover", gui_base->get_theme_stylebox(SNAME("MenuHover"), SNAME("EditorStyles"))); } + + scene_tabs->set_max_tab_width(int(EDITOR_GET("interface/scene_tabs/maximum_width")) * EDSCALE); _update_scene_tabs(); - recent_scenes->set_as_minsize(); + recent_scenes->reset_size(); // debugger area if (EditorDebuggerNode::get_singleton()->is_visible()) { @@ -793,10 +804,6 @@ void EditorNode::_notification(int p_what) { _update_update_spinner(); } break; - - case Control::NOTIFICATION_RESIZED: { - _update_scene_tabs(); - } break; } } @@ -3777,7 +3784,7 @@ void EditorNode::_update_recent_scenes() { recent_scenes->add_separator(); recent_scenes->add_shortcut(ED_SHORTCUT("editor/clear_recent", TTR("Clear Recent Scenes"))); - recent_scenes->set_as_minsize(); + recent_scenes->reset_size(); } void EditorNode::_quick_opened() { @@ -3852,18 +3859,18 @@ void EditorNode::register_editor_types() { GDREGISTER_CLASS(EditorScript); GDREGISTER_CLASS(EditorSelection); GDREGISTER_CLASS(EditorFileDialog); - GDREGISTER_VIRTUAL_CLASS(EditorSettings); + GDREGISTER_ABSTRACT_CLASS(EditorSettings); GDREGISTER_CLASS(EditorNode3DGizmo); GDREGISTER_CLASS(EditorNode3DGizmoPlugin); - GDREGISTER_VIRTUAL_CLASS(EditorResourcePreview); + GDREGISTER_ABSTRACT_CLASS(EditorResourcePreview); GDREGISTER_CLASS(EditorResourcePreviewGenerator); - GDREGISTER_VIRTUAL_CLASS(EditorFileSystem); + GDREGISTER_ABSTRACT_CLASS(EditorFileSystem); GDREGISTER_CLASS(EditorFileSystemDirectory); GDREGISTER_CLASS(EditorVCSInterface); - GDREGISTER_VIRTUAL_CLASS(ScriptEditor); - GDREGISTER_VIRTUAL_CLASS(ScriptEditorBase); + GDREGISTER_ABSTRACT_CLASS(ScriptEditor); + GDREGISTER_ABSTRACT_CLASS(ScriptEditorBase); GDREGISTER_CLASS(EditorSyntaxHighlighter); - GDREGISTER_VIRTUAL_CLASS(EditorInterface); + GDREGISTER_ABSTRACT_CLASS(EditorInterface); GDREGISTER_CLASS(EditorExportPlugin); GDREGISTER_CLASS(EditorResourceConversionPlugin); GDREGISTER_CLASS(EditorSceneFormatImporter); @@ -3878,7 +3885,7 @@ void EditorNode::register_editor_types() { GDREGISTER_CLASS(EditorResourcePicker); GDREGISTER_CLASS(EditorScriptPicker); - GDREGISTER_VIRTUAL_CLASS(FileSystemDock); + GDREGISTER_ABSTRACT_CLASS(FileSystemDock); // FIXME: Is this stuff obsolete, or should it be ported to new APIs? GDREGISTER_CLASS(EditorScenePostImport); @@ -4226,7 +4233,7 @@ void EditorNode::_dock_floating_close_request(Control *p_control) { p_control->get_parent()->remove_child(p_control); dock_slot[window_slot]->add_child(p_control); - dock_slot[window_slot]->move_child(p_control, MIN((int)window->get_meta("dock_index"), dock_slot[window_slot]->get_child_count())); + dock_slot[window_slot]->move_child(p_control, MIN((int)window->get_meta("dock_index"), dock_slot[window_slot]->get_tab_count())); dock_slot[window_slot]->set_current_tab(window->get_meta("dock_index")); window->queue_delete(); @@ -4466,13 +4473,13 @@ void EditorNode::_dock_select_draw() { if (i == dock_select_rect_over) { dock_select->draw_rect(r, used_selected); - } else if (dock_slot[i]->get_child_count() == 0) { + } else if (dock_slot[i]->get_tab_count() == 0) { dock_select->draw_rect(r, unused); } else { dock_select->draw_rect(r, used); } - for (int j = 0; j < MIN(3, dock_slot[i]->get_child_count()); j++) { + for (int j = 0; j < MIN(3, dock_slot[i]->get_tab_count()); j++) { int xofs = (r.size.width / 3) * j; Color c = used; if (i == dock_popup_selected && (dock_slot[i]->get_current_tab() > 3 || dock_slot[i]->get_current_tab() == j)) { @@ -4584,7 +4591,7 @@ void EditorNode::_update_dock_slots_visibility() { for (int i = 0; i < DOCK_SLOT_MAX; i++) { int tabs_visible = 0; for (int j = 0; j < dock_slot[i]->get_tab_count(); j++) { - if (!dock_slot[i]->get_tab_hidden(j)) { + if (!dock_slot[i]->is_tab_hidden(j)) { tabs_visible++; } } @@ -5418,7 +5425,7 @@ void EditorNode::remove_tool_menu_item(const String &p_name) { memdelete(n); } tool_menu->remove_item(i); - tool_menu->set_as_minsize(); + tool_menu->reset_size(); return; } } @@ -5482,7 +5489,7 @@ void EditorNode::_add_dropped_files_recursive(const Vector<String> &p_files, Str } void EditorNode::_file_access_close_error_notify(const String &p_str) { - add_io_error("Unable to write to file '" + p_str + "', file in use, locked or lacking permissions."); + add_io_error(vformat(TTR("Unable to write to file '%s', file in use, locked or lacking permissions."), p_str)); } void EditorNode::reload_scene(const String &p_path) { @@ -5648,11 +5655,11 @@ void EditorNode::_feature_profile_changed() { TabContainer *node_tabs = cast_to<TabContainer>(NodeDock::get_singleton()->get_parent()); TabContainer *fs_tabs = cast_to<TabContainer>(FileSystemDock::get_singleton()->get_parent()); if (profile.is_valid()) { - node_tabs->set_tab_hidden(NodeDock::get_singleton()->get_index(), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_NODE_DOCK)); + node_tabs->set_tab_hidden(node_tabs->get_tab_idx_from_control(NodeDock::get_singleton()), profile->is_feature_disabled(EditorFeatureProfile::FEATURE_NODE_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(FileSystemDock::get_singleton()->get_index(), fs_dock_disabled); - import_tabs->set_tab_hidden(ImportDock::get_singleton()->get_index(), fs_dock_disabled || profile->is_feature_disabled(EditorFeatureProfile::FEATURE_IMPORT_DOCK)); + fs_tabs->set_tab_hidden(fs_tabs->get_tab_idx_from_control(FileSystemDock::get_singleton()), fs_dock_disabled); + import_tabs->set_tab_hidden(import_tabs->get_tab_idx_from_control(ImportDock::get_singleton()), 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)); @@ -5665,9 +5672,9 @@ void EditorNode::_feature_profile_changed() { _editor_select(EDITOR_2D); } } else { - import_tabs->set_tab_hidden(ImportDock::get_singleton()->get_index(), false); - node_tabs->set_tab_hidden(NodeDock::get_singleton()->get_index(), false); - fs_tabs->set_tab_hidden(FileSystemDock::get_singleton()->get_index(), false); + import_tabs->set_tab_hidden(import_tabs->get_tab_idx_from_control(ImportDock::get_singleton()), false); + node_tabs->set_tab_hidden(node_tabs->get_tab_idx_from_control(NodeDock::get_singleton()), false); + fs_tabs->set_tab_hidden(fs_tabs->get_tab_idx_from_control(FileSystemDock::get_singleton()), false); ImportDock::get_singleton()->set_visible(true); NodeDock::get_singleton()->set_visible(true); FileSystemDock::get_singleton()->set_visible(true); @@ -5797,6 +5804,9 @@ void EditorNode::notify_settings_changed() { } EditorNode::EditorNode() { + EditorPropertyNameProcessor *epnp = memnew(EditorPropertyNameProcessor); + add_child(epnp); + Input::get_singleton()->set_use_accumulated_input(true); Resource::_get_local_scene_func = _resource_get_edited_scene; @@ -5831,16 +5841,7 @@ EditorNode::EditorNode() { } singleton = this; - exiting = false; - dimmed = false; last_checked_version = 0; - changing_scene = false; - _initializing_addons = false; - docks_visible = true; - restoring_scenes = false; - cmdline_export_mode = false; - scene_distraction = false; - script_distraction = false; TranslationServer::get_singleton()->set_enabled(false); // load settings @@ -6015,19 +6016,11 @@ EditorNode::EditorNode() { ClassDB::set_class_enabled("RootMotionView", true); // defs here, use EDITOR_GET in logic - EDITOR_DEF_RST("interface/scene_tabs/always_show_close_button", false); - EDITOR_DEF_RST("interface/scene_tabs/resize_if_many_tabs", true); - EDITOR_DEF_RST("interface/scene_tabs/minimum_width", 50); - EDITOR_DEF("run/output/always_clear_output_on_play", true); - EDITOR_DEF("run/output/always_open_output_on_play", true); - EDITOR_DEF("run/output/always_close_output_on_stop", true); - EDITOR_DEF("run/auto_save/save_before_running", true); EDITOR_DEF("interface/editor/save_on_focus_loss", false); - EDITOR_DEF_RST("interface/editor/save_each_scene_on_quit", true); EDITOR_DEF("interface/editor/show_update_spinner", false); EDITOR_DEF("interface/editor/update_continuously", false); + EDITOR_DEF("interface/editor/translate_properties", true); EDITOR_DEF_RST("interface/scene_tabs/restore_scenes_on_load", true); - EDITOR_DEF_RST("interface/scene_tabs/show_thumbnail_on_hover", true); EDITOR_DEF_RST("interface/inspector/capitalize_properties", true); EDITOR_DEF_RST("interface/inspector/default_float_step", 0.001); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::FLOAT, "interface/inspector/default_float_step", PROPERTY_HINT_RANGE, "0,1,0")); @@ -6041,7 +6034,6 @@ EditorNode::EditorNode() { EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_mode", PROPERTY_HINT_ENUM, "RGB,HSV,RAW", PROPERTY_USAGE_DEFAULT)); EDITOR_DEF("interface/inspector/default_color_picker_shape", (int32_t)ColorPicker::SHAPE_VHS_CIRCLE); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "interface/inspector/default_color_picker_shape", PROPERTY_HINT_ENUM, "HSV Rectangle,HSV Rectangle Wheel,VHS Circle", PROPERTY_USAGE_DEFAULT)); - EDITOR_DEF("run/auto_save/save_before_running", true); ED_SHORTCUT("canvas_item_editor/pan_view", TTR("Pan View"), Key::SPACE); @@ -6197,7 +6189,7 @@ EditorNode::EditorNode() { dock_vb->add_child(dock_float); - dock_select_popup->set_as_minsize(); + dock_select_popup->reset_size(); dock_select_rect_over = -1; dock_popup_selected = -1; for (int i = 0; i < DOCK_SLOT_MAX; i++) { @@ -6205,7 +6197,7 @@ EditorNode::EditorNode() { dock_slot[i]->set_v_size_flags(Control::SIZE_EXPAND_FILL); dock_slot[i]->set_popup(dock_select_popup); dock_slot[i]->connect("pre_popup_pressed", callable_mp(this, &EditorNode::_dock_pre_popup), varray(i)); - dock_slot[i]->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + dock_slot[i]->set_tab_alignment(TabBar::ALIGNMENT_LEFT); dock_slot[i]->set_drag_to_rearrange_enabled(true); dock_slot[i]->set_tabs_rearrange_group(1); dock_slot[i]->connect("tab_changed", callable_mp(this, &EditorNode::_dock_tab_changed)); @@ -6249,8 +6241,8 @@ EditorNode::EditorNode() { scene_tabs->set_select_with_rmb(true); scene_tabs->add_tab("unsaved"); scene_tabs->set_tab_alignment(TabBar::ALIGNMENT_LEFT); - scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/scene_tabs/always_show_close_button", false)) ? TabBar::CLOSE_BUTTON_SHOW_ALWAYS : TabBar::CLOSE_BUTTON_SHOW_ACTIVE_ONLY)); - scene_tabs->set_min_width(int(EDITOR_DEF("interface/scene_tabs/minimum_width", 50)) * EDSCALE); + scene_tabs->set_tab_close_display_policy((TabBar::CloseButtonDisplayPolicy)EDITOR_GET("interface/scene_tabs/display_close_button").operator int()); + scene_tabs->set_max_tab_width(int(EDITOR_GET("interface/scene_tabs/maximum_width")) * EDSCALE); scene_tabs->set_drag_to_rearrange_enabled(true); scene_tabs->connect("tab_changed", callable_mp(this, &EditorNode::_scene_tab_changed)); scene_tabs->connect("tab_button_pressed", callable_mp(this, &EditorNode::_scene_tab_script_edited)); @@ -6299,7 +6291,7 @@ EditorNode::EditorNode() { scene_root_parent->set_v_size_flags(Control::SIZE_EXPAND_FILL); scene_root = memnew(SubViewport); - scene_root->set_embed_subwindows_hint(true); + scene_root->set_embedding_subwindows(true); scene_root->set_disable_3d(true); scene_root->set_disable_input(true); @@ -6514,7 +6506,7 @@ EditorNode::EditorNode() { ED_SHORTCUT_OVERRIDE("editor/take_screenshot", "macos", KeyModifierMask::CMD | Key::F12); p->add_shortcut(ED_GET_SHORTCUT("editor/take_screenshot"), EDITOR_SCREENSHOT); - p->set_item_tooltip(p->get_item_count() - 1, TTR("Screenshots are stored in the Editor Data/Settings Folder.")); + p->set_item_tooltip(-1, TTR("Screenshots are stored in the Editor Data/Settings Folder.")); ED_SHORTCUT_AND_COMMAND("editor/fullscreen_mode", TTR("Toggle Fullscreen"), KeyModifierMask::SHIFT | Key::F11); ED_SHORTCUT_OVERRIDE("editor/fullscreen_mode", "macos", KeyModifierMask::CMD | KeyModifierMask::CTRL | Key::F); @@ -6714,23 +6706,23 @@ EditorNode::EditorNode() { // Scene: Top left dock_slot[DOCK_SLOT_LEFT_UR]->add_child(SceneTreeDock::get_singleton()); - dock_slot[DOCK_SLOT_LEFT_UR]->set_tab_title(SceneTreeDock::get_singleton()->get_index(), TTR("Scene")); + dock_slot[DOCK_SLOT_LEFT_UR]->set_tab_title(dock_slot[DOCK_SLOT_LEFT_UR]->get_tab_idx_from_control(SceneTreeDock::get_singleton()), TTR("Scene")); // Import: Top left, behind Scene dock_slot[DOCK_SLOT_LEFT_UR]->add_child(ImportDock::get_singleton()); - dock_slot[DOCK_SLOT_LEFT_UR]->set_tab_title(ImportDock::get_singleton()->get_index(), TTR("Import")); + dock_slot[DOCK_SLOT_LEFT_UR]->set_tab_title(dock_slot[DOCK_SLOT_LEFT_UR]->get_tab_idx_from_control(ImportDock::get_singleton()), TTR("Import")); // FileSystem: Bottom left dock_slot[DOCK_SLOT_LEFT_BR]->add_child(FileSystemDock::get_singleton()); - dock_slot[DOCK_SLOT_LEFT_BR]->set_tab_title(FileSystemDock::get_singleton()->get_index(), TTR("FileSystem")); + dock_slot[DOCK_SLOT_LEFT_BR]->set_tab_title(dock_slot[DOCK_SLOT_LEFT_BR]->get_tab_idx_from_control(FileSystemDock::get_singleton()), TTR("FileSystem")); // Inspector: Full height right dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(InspectorDock::get_singleton()); - dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(InspectorDock::get_singleton()->get_index(), TTR("Inspector")); + dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(dock_slot[DOCK_SLOT_RIGHT_UL]->get_tab_idx_from_control(InspectorDock::get_singleton()), TTR("Inspector")); // Node: Full height right, behind Inspector dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(NodeDock::get_singleton()); - dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(NodeDock::get_singleton()->get_index(), TTR("Node")); + dock_slot[DOCK_SLOT_RIGHT_UL]->set_tab_title(dock_slot[DOCK_SLOT_RIGHT_UL]->get_tab_idx_from_control(NodeDock::get_singleton()), TTR("Node")); // Hide unused dock slots and vsplits dock_slot[DOCK_SLOT_LEFT_UL]->hide(); @@ -7110,9 +7102,6 @@ EditorNode::EditorNode() { current = nullptr; saving_resource = Ref<Resource>(); - reference_resource_mem = true; - save_external_resources_mem = true; - set_process(true); open_imported = memnew(ConfirmationDialog); @@ -7123,7 +7112,6 @@ EditorNode::EditorNode() { gui_base->add_child(open_imported); saved_version = 1; - unsaved_cache = true; _last_instantiated_scene = nullptr; quick_open = memnew(EditorQuickOpen); @@ -7137,10 +7125,7 @@ EditorNode::EditorNode() { _update_recent_scenes(); editor_data.restore_editor_global_states(); - convert_old = false; - opening_prev = false; set_process_unhandled_input(true); - _playing_edited = false; load_errors = memnew(RichTextLabel); load_error_dialog = memnew(AcceptDialog); @@ -7181,8 +7166,6 @@ EditorNode::EditorNode() { FileAccess::set_file_close_fail_notify_callback(_file_access_close_error_notify); - waiting_for_first_scan = true; - print_handler.printfunc = _print_handler; print_handler.userdata = this; add_print_handler(&print_handler); diff --git a/editor/editor_node.h b/editor/editor_node.h index c05e6cd281..0b6dbaec49 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -263,8 +263,8 @@ private: TextureRect *tab_preview; int tab_closing; - bool exiting; - bool dimmed; + bool exiting = false; + bool dimmed = false; int old_split_ofs; VSplitContainer *top_split; @@ -380,15 +380,15 @@ private: Button *dock_tab_move_right; int dock_popup_selected; Timer *dock_drag_timer; - bool docks_visible; + bool docks_visible = true; HBoxContainer *tabbar_container; Button *distraction_free; Button *scene_tab_add; Control *scene_tab_add_ph; - bool scene_distraction; - bool script_distraction; + bool scene_distraction = false; + bool script_distraction = false; String _tmp_import_path; @@ -397,18 +397,15 @@ private: Object *current; Ref<Resource> saving_resource; - bool _playing_edited; + bool _playing_edited = false; String run_custom_filename; - bool reference_resource_mem; - bool save_external_resources_mem; + bool reference_resource_mem = true; uint64_t saved_version; uint64_t last_checked_version; - bool unsaved_cache; + bool unsaved_cache = true; String open_navigate; - bool changing_scene; - bool waiting_for_first_scan; - - bool waiting_for_sources_changed; + bool changing_scene = false; + bool waiting_for_first_scan = true; uint64_t update_spinner_step_msec; uint64_t update_spinner_step_frame; @@ -457,7 +454,7 @@ private: String external_file; List<String> previous_scenes; - bool opening_prev; + bool opening_prev = false; void _dialog_action(String p_file); @@ -534,7 +531,7 @@ private: void _exit_editor(int p_exit_code); - bool convert_old; + bool convert_old = false; virtual void unhandled_input(const Ref<InputEvent> &p_event) override; @@ -551,7 +548,7 @@ private: Map<String, Ref<Texture2D>> icon_type_cache; void _build_icon_type_cache(); - bool _initializing_addons; + bool _initializing_addons = false; Map<String, EditorPlugin *> plugin_addons; static Ref<Texture2D> _file_dialog_get_icon(const String &p_path); @@ -587,7 +584,7 @@ private: bool pack_only = false; } export_defer; - bool cmdline_export_mode; + bool cmdline_export_mode = false; static EditorNode *singleton; @@ -627,7 +624,7 @@ private: void _update_dock_slots_visibility(); void _dock_tab_changed(int p_tab); - bool restoring_scenes; + bool restoring_scenes = false; void _save_open_scenes_to_config(Ref<ConfigFile> p_layout, const String &p_section); void _load_open_scenes_from_config(Ref<ConfigFile> p_layout, const String &p_section); diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp index 401414ae50..b6f48c7536 100644 --- a/editor/editor_plugin_settings.cpp +++ b/editor/editor_plugin_settings.cpp @@ -240,6 +240,4 @@ EditorPluginSettings::EditorPluginSettings() { mc->set_h_size_flags(SIZE_EXPAND_FILL); add_child(mc); - - updating = false; } diff --git a/editor/editor_plugin_settings.h b/editor/editor_plugin_settings.h index 4648d105f7..c239b735de 100644 --- a/editor/editor_plugin_settings.h +++ b/editor/editor_plugin_settings.h @@ -48,7 +48,7 @@ class EditorPluginSettings : public VBoxContainer { Button *create_plugin; Button *update_list; Tree *plugin_list; - bool updating; + bool updating = false; void _plugin_activity_changed(); void _create_clicked(); diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 68a3fabe1e..b495d29911 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -110,9 +110,6 @@ EditorPropertyText::EditorPropertyText() { add_focusable(text); text->connect("text_changed", callable_mp(this, &EditorPropertyText::_text_changed)); text->connect("text_submitted", callable_mp(this, &EditorPropertyText::_text_submitted)); - - string_name = false; - updating = false; } ///////////////////// MULTILINE TEXT ///////////////////////// @@ -500,9 +497,6 @@ EditorPropertyPath::EditorPropertyPath() { add_focusable(path); dialog = nullptr; path_edit->connect("pressed", callable_mp(this, &EditorPropertyPath::_path_pressed)); - folder = false; - global = false; - save_mode = false; } ///////////////////// CLASS NAME ///////////////////////// @@ -1185,7 +1179,7 @@ void EditorPropertyLayers::_button_pressed() { } Rect2 gp = button->get_screen_rect(); - layers->set_as_minsize(); + layers->reset_size(); Vector2 popup_pos = gp.position - Vector2(layers->get_contents_minimum_size().x, 0); layers->set_position(popup_pos); layers->popup(); @@ -1278,7 +1272,6 @@ EditorPropertyInteger::EditorPropertyInteger() { add_child(spin); add_focusable(spin); spin->connect("value_changed", callable_mp(this, &EditorPropertyInteger::_value_changed)); - setting = false; } ///////////////////// OBJECT ID ///////////////////////// @@ -1587,10 +1580,6 @@ EditorPropertyEasing::EditorPropertyEasing() { spin->get_line_edit()->connect("focus_exited", callable_mp(this, &EditorPropertyEasing::_spin_focus_exited)); spin->hide(); add_child(spin); - - dragging = false; - flip = false; - full = false; } ///////////////////// VECTOR2 ///////////////////////// @@ -1626,7 +1615,7 @@ void EditorPropertyVector2::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 2; i++) { - spin[i]->set_custom_label_color(true, colors[i]); + spin[i]->add_theme_color_override("label_color", colors[i]); } } break; } @@ -1680,7 +1669,6 @@ EditorPropertyVector2::EditorPropertyVector2(bool p_force_wide) { if (!horizontal) { set_label_reference(spin[0]); //show text and buttons around this } - setting = false; } ///////////////////// RECT2 ///////////////////////// @@ -1720,7 +1708,7 @@ void EditorPropertyRect2::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 4; i++) { - spin[i]->set_custom_label_color(true, colors[i % 2]); + spin[i]->add_theme_color_override("label_color", colors[i % 2]); } } break; } @@ -1784,7 +1772,6 @@ EditorPropertyRect2::EditorPropertyRect2(bool p_force_wide) { if (!horizontal) { set_label_reference(spin[0]); //show text and buttons around this } - setting = false; } ///////////////////// VECTOR3 ///////////////////////// @@ -1849,7 +1836,7 @@ void EditorPropertyVector3::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 3; i++) { - spin[i]->set_custom_label_color(true, colors[i]); + spin[i]->add_theme_color_override("label_color", colors[i]); } } break; } @@ -1939,7 +1926,7 @@ void EditorPropertyVector2i::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 2; i++) { - spin[i]->set_custom_label_color(true, colors[i]); + spin[i]->add_theme_color_override("label_color", colors[i]); } } break; } @@ -1993,7 +1980,6 @@ EditorPropertyVector2i::EditorPropertyVector2i(bool p_force_wide) { if (!horizontal) { set_label_reference(spin[0]); //show text and buttons around this } - setting = false; } ///////////////////// RECT2i ///////////////////////// @@ -2033,7 +2019,7 @@ void EditorPropertyRect2i::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 4; i++) { - spin[i]->set_custom_label_color(true, colors[i % 2]); + spin[i]->add_theme_color_override("label_color", colors[i % 2]); } } break; } @@ -2097,7 +2083,6 @@ EditorPropertyRect2i::EditorPropertyRect2i(bool p_force_wide) { if (!horizontal) { set_label_reference(spin[0]); //show text and buttons around this } - setting = false; } ///////////////////// VECTOR3i ///////////////////////// @@ -2135,7 +2120,7 @@ void EditorPropertyVector3i::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 3; i++) { - spin[i]->set_custom_label_color(true, colors[i]); + spin[i]->add_theme_color_override("label_color", colors[i]); } } break; } @@ -2188,7 +2173,6 @@ EditorPropertyVector3i::EditorPropertyVector3i(bool p_force_wide) { if (!horizontal) { set_label_reference(spin[0]); //show text and buttons around this } - setting = false; } ///////////////////// PLANE ///////////////////////// @@ -2228,7 +2212,7 @@ void EditorPropertyPlane::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 4; i++) { - spin[i]->set_custom_label_color(true, colors[i]); + spin[i]->add_theme_color_override("label_color", colors[i]); } } break; } @@ -2282,7 +2266,6 @@ EditorPropertyPlane::EditorPropertyPlane(bool p_force_wide) { if (!horizontal) { set_label_reference(spin[0]); //show text and buttons around this } - setting = false; } ///////////////////// QUATERNION ///////////////////////// @@ -2322,7 +2305,7 @@ void EditorPropertyQuaternion::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 4; i++) { - spin[i]->set_custom_label_color(true, colors[i]); + spin[i]->add_theme_color_override("label_color", colors[i]); } } break; } @@ -2373,7 +2356,6 @@ EditorPropertyQuaternion::EditorPropertyQuaternion() { if (!horizontal) { set_label_reference(spin[0]); //show text and buttons around this } - setting = false; } ///////////////////// AABB ///////////////////////// @@ -2419,7 +2401,7 @@ void EditorPropertyAABB::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 6; i++) { - spin[i]->set_custom_label_color(true, colors[i % 3]); + spin[i]->add_theme_color_override("label_color", colors[i % 3]); } } break; } @@ -2457,7 +2439,6 @@ EditorPropertyAABB::EditorPropertyAABB() { spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyAABB::_value_changed), varray(desc[i])); } set_bottom_editor(g); - setting = false; } ///////////////////// TRANSFORM2D ///////////////////////// @@ -2505,9 +2486,9 @@ void EditorPropertyTransform2D::_notification(int p_what) { for (int i = 0; i < 6; i++) { // For Transform2D, use the 4th color (cyan) for the origin vector. if (i % 3 == 2) { - spin[i]->set_custom_label_color(true, colors[3]); + spin[i]->add_theme_color_override("label_color", colors[3]); } else { - spin[i]->set_custom_label_color(true, colors[i % 3]); + spin[i]->add_theme_color_override("label_color", colors[i % 3]); } } } break; @@ -2547,7 +2528,6 @@ EditorPropertyTransform2D::EditorPropertyTransform2D(bool p_include_origin) { spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyTransform2D::_value_changed), varray(desc[i])); } set_bottom_editor(g); - setting = false; } ///////////////////// BASIS ///////////////////////// @@ -2599,7 +2579,7 @@ void EditorPropertyBasis::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 9; i++) { - spin[i]->set_custom_label_color(true, colors[i % 3]); + spin[i]->add_theme_color_override("label_color", colors[i % 3]); } } break; } @@ -2636,7 +2616,6 @@ EditorPropertyBasis::EditorPropertyBasis() { spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyBasis::_value_changed), varray(desc[i])); } set_bottom_editor(g); - setting = false; } ///////////////////// TRANSFORM ///////////////////////// @@ -2696,7 +2675,7 @@ void EditorPropertyTransform3D::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { const Color *colors = _get_property_colors(); for (int i = 0; i < 12; i++) { - spin[i]->set_custom_label_color(true, colors[i % 4]); + spin[i]->add_theme_color_override("label_color", colors[i % 4]); } } break; } @@ -2733,7 +2712,6 @@ EditorPropertyTransform3D::EditorPropertyTransform3D() { spin[i]->connect("value_changed", callable_mp(this, &EditorPropertyTransform3D::_value_changed), varray(desc[i])); } set_bottom_editor(g); - setting = false; } ////////////// COLOR PICKER ////////////////////// @@ -2969,7 +2947,6 @@ EditorPropertyNodePath::EditorPropertyNodePath() { clear->set_flat(true); clear->connect("pressed", callable_mp(this, &EditorPropertyNodePath::_node_clear)); hbc->add_child(clear); - use_path_from_scene_root = false; scene_tree = nullptr; //do not allocate unnecessarily } @@ -3059,7 +3036,7 @@ void EditorPropertyResource::_sub_inspector_property_keyed(const String &p_prope // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it. const Variant args[3] = { String(get_edited_property()) + ":" + p_property, p_value, p_advance }; const Variant *argp[3] = { &args[0], &args[1], &args[2] }; - emit_signal(SNAME("property_keyed_with_value"), argp, 3); + emit_signalp(SNAME("property_keyed_with_value"), argp, 3); } void EditorPropertyResource::_sub_inspector_resource_selected(const RES &p_resource, const String &p_property) { @@ -3738,8 +3715,13 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_ } break; case Variant::DICTIONARY: { - EditorPropertyDictionary *editor = memnew(EditorPropertyDictionary); - return editor; + if (p_hint == PROPERTY_HINT_LOCALIZABLE_STRING) { + EditorPropertyLocalizableString *editor = memnew(EditorPropertyLocalizableString); + return editor; + } else { + EditorPropertyDictionary *editor = memnew(EditorPropertyDictionary); + return editor; + } } break; case Variant::ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); diff --git a/editor/editor_properties.h b/editor/editor_properties.h index 9a16a78ff8..c21e0e0b4d 100644 --- a/editor/editor_properties.h +++ b/editor/editor_properties.h @@ -54,8 +54,8 @@ class EditorPropertyText : public EditorProperty { GDCLASS(EditorPropertyText, EditorProperty); LineEdit *text; - bool updating; - bool string_name; + bool updating = false; + bool string_name = false; void _text_changed(const String &p_string); void _text_submitted(const String &p_string); @@ -131,9 +131,9 @@ public: class EditorPropertyPath : public EditorProperty { GDCLASS(EditorPropertyPath, EditorProperty); Vector<String> extensions; - bool folder; - bool global; - bool save_mode; + bool folder = false; + bool global = false; + bool save_mode = false; EditorFileDialog *dialog; LineEdit *path; Button *path_edit; @@ -359,7 +359,7 @@ public: class EditorPropertyInteger : public EditorProperty { GDCLASS(EditorPropertyInteger, EditorProperty); EditorSpinSlider *spin; - bool setting; + bool setting = false; void _value_changed(int64_t p_val); protected: @@ -410,11 +410,11 @@ class EditorPropertyEasing : public EditorProperty { Control *easing_draw; PopupMenu *preset; EditorSpinSlider *spin; - bool setting; + bool setting = false; - bool dragging; - bool full; - bool flip; + bool dragging = false; + bool full = false; + bool flip = false; enum { EASING_ZERO, @@ -450,7 +450,7 @@ public: class EditorPropertyVector2 : public EditorProperty { GDCLASS(EditorPropertyVector2, EditorProperty); EditorSpinSlider *spin[2]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -467,7 +467,7 @@ public: class EditorPropertyRect2 : public EditorProperty { GDCLASS(EditorPropertyRect2, EditorProperty); EditorSpinSlider *spin[4]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -504,7 +504,7 @@ public: class EditorPropertyVector2i : public EditorProperty { GDCLASS(EditorPropertyVector2i, EditorProperty); EditorSpinSlider *spin[2]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -521,7 +521,7 @@ public: class EditorPropertyRect2i : public EditorProperty { GDCLASS(EditorPropertyRect2i, EditorProperty); EditorSpinSlider *spin[4]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -538,7 +538,7 @@ public: class EditorPropertyVector3i : public EditorProperty { GDCLASS(EditorPropertyVector3i, EditorProperty); EditorSpinSlider *spin[3]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -555,7 +555,7 @@ public: class EditorPropertyPlane : public EditorProperty { GDCLASS(EditorPropertyPlane, EditorProperty); EditorSpinSlider *spin[4]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -572,7 +572,7 @@ public: class EditorPropertyQuaternion : public EditorProperty { GDCLASS(EditorPropertyQuaternion, EditorProperty); EditorSpinSlider *spin[4]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -589,7 +589,7 @@ public: class EditorPropertyAABB : public EditorProperty { GDCLASS(EditorPropertyAABB, EditorProperty); EditorSpinSlider *spin[6]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -606,7 +606,7 @@ public: class EditorPropertyTransform2D : public EditorProperty { GDCLASS(EditorPropertyTransform2D, EditorProperty); EditorSpinSlider *spin[6]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -623,7 +623,7 @@ public: class EditorPropertyBasis : public EditorProperty { GDCLASS(EditorPropertyBasis, EditorProperty); EditorSpinSlider *spin[9]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -640,7 +640,7 @@ public: class EditorPropertyTransform3D : public EditorProperty { GDCLASS(EditorPropertyTransform3D, EditorProperty); EditorSpinSlider *spin[12]; - bool setting; + bool setting = false; void _value_changed(double p_val, const String &p_name); protected: @@ -681,7 +681,7 @@ class EditorPropertyNodePath : public EditorProperty { Button *clear; SceneTreeDialog *scene_tree; NodePath base_hint; - bool use_path_from_scene_root; + bool use_path_from_scene_root = false; Vector<StringName> valid_types; void _node_selected(const NodePath &p_path); diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 61261af608..f59ba66862 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -175,7 +175,7 @@ void EditorPropertyArray::_change_type(Object *p_button, int p_index) { Button *button = Object::cast_to<Button>(p_button); changing_type_index = p_index; Rect2 rect = button->get_screen_rect(); - change_type->set_as_minsize(); + change_type->reset_size(); change_type->set_position(rect.get_end() - Vector2(change_type->get_contents_minimum_size().x, 0)); change_type->popup(); } @@ -253,6 +253,7 @@ void EditorPropertyArray::update_property() { if (vbox) { set_bottom_editor(nullptr); memdelete(vbox); + button_add_item = nullptr; vbox = nullptr; } return; @@ -408,6 +409,7 @@ void EditorPropertyArray::update_property() { if (vbox) { set_bottom_editor(nullptr); memdelete(vbox); + button_add_item = nullptr; vbox = nullptr; } } @@ -714,7 +716,6 @@ EditorPropertyArray::EditorPropertyArray() { size_slider = nullptr; button_add_item = nullptr; paginator = nullptr; - updating = false; change_type = memnew(PopupMenu); add_child(change_type); change_type->connect("id_pressed", callable_mp(this, &EditorPropertyArray::_change_type_menu)); @@ -723,8 +724,6 @@ EditorPropertyArray::EditorPropertyArray() { subtype = Variant::NIL; subtype_hint = PROPERTY_HINT_NONE; subtype_hint_string = ""; - - dropping = false; } ///////////////////// DICTIONARY /////////////////////////// @@ -742,7 +741,7 @@ void EditorPropertyDictionary::_property_changed(const String &p_property, Varia emit_changed(get_edited_property(), dict, "", true); - dict = dict.duplicate(); // Duplicate, so undo/redo works better\. + dict = dict.duplicate(); // Duplicate, so undo/redo works better. object->set_dict(dict); } } @@ -751,7 +750,7 @@ void EditorPropertyDictionary::_change_type(Object *p_button, int p_index) { Button *button = Object::cast_to<Button>(p_button); Rect2 rect = button->get_screen_rect(); - change_type->set_as_minsize(); + change_type->reset_size(); change_type->set_position(rect.get_end() - Vector2(change_type->get_contents_minimum_size().x, 0)); change_type->popup(); changing_type_index = p_index; @@ -805,7 +804,7 @@ void EditorPropertyDictionary::_change_type_menu(int p_index) { emit_changed(get_edited_property(), dict, "", false); - dict = dict.duplicate(); // Duplicate, so undo/redo works better\. + dict = dict.duplicate(); // Duplicate, so undo/redo works better. object->set_dict(dict); update_property(); } @@ -814,11 +813,12 @@ void EditorPropertyDictionary::update_property() { Variant updated_val = get_edited_object()->get(get_edited_property()); if (updated_val.get_type() == Variant::NIL) { - edit->set_text("Dictionary (Nil)"); // This provides symmetry with the array property. + edit->set_text(TTR("Dictionary (Nil)")); // This provides symmetry with the array property. edit->set_pressed(false); if (vbox) { set_bottom_editor(nullptr); memdelete(vbox); + button_add_item = nullptr; vbox = nullptr; } return; @@ -826,7 +826,7 @@ void EditorPropertyDictionary::update_property() { Dictionary dict = updated_val; - edit->set_text("Dictionary (size " + itos(dict.size()) + ")"); + edit->set_text(vformat(TTR("Dictionary (size %d)"), dict.size())); bool unfolded = get_edited_object()->editor_is_section_unfolded(get_edited_property()); if (edit->is_pressed() != unfolded) { @@ -1144,6 +1144,7 @@ void EditorPropertyDictionary::update_property() { if (vbox) { set_bottom_editor(nullptr); memdelete(vbox); + button_add_item = nullptr; vbox = nullptr; } } @@ -1210,9 +1211,232 @@ EditorPropertyDictionary::EditorPropertyDictionary() { vbox = nullptr; button_add_item = nullptr; paginator = nullptr; - updating = false; change_type = memnew(PopupMenu); add_child(change_type); change_type->connect("id_pressed", callable_mp(this, &EditorPropertyDictionary::_change_type_menu)); changing_type_index = -1; } + +///////////////////// LOCALIZABLE STRING /////////////////////////// + +void EditorPropertyLocalizableString::_property_changed(const String &p_property, Variant p_value, const String &p_name, bool p_changing) { + if (p_property.begins_with("indices")) { + int index = p_property.get_slice("/", 1).to_int(); + Dictionary dict = object->get_dict(); + Variant key = dict.get_key_at_index(index); + dict[key] = p_value; + + emit_changed(get_edited_property(), dict, "", true); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + } +} + +void EditorPropertyLocalizableString::_add_locale_popup() { + locale_select->popup_locale_dialog(); +} + +void EditorPropertyLocalizableString::_add_locale(const String &p_locale) { + Dictionary dict = object->get_dict(); + + object->set_new_item_key(p_locale); + object->set_new_item_value(String()); + dict[object->get_new_item_key()] = object->get_new_item_value(); + + emit_changed(get_edited_property(), dict, "", false); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + update_property(); +} + +void EditorPropertyLocalizableString::_remove_item(Object *p_button, int p_index) { + Dictionary dict = object->get_dict(); + + Variant key = dict.get_key_at_index(p_index); + dict.erase(key); + + emit_changed(get_edited_property(), dict, "", false); + + dict = dict.duplicate(); // Duplicate, so undo/redo works better. + object->set_dict(dict); + update_property(); +} + +void EditorPropertyLocalizableString::update_property() { + Variant updated_val = get_edited_object()->get(get_edited_property()); + + if (updated_val.get_type() == Variant::NIL) { + edit->set_text(TTR("Localizable String (Nil)")); // This provides symmetry with the array property. + edit->set_pressed(false); + if (vbox) { + set_bottom_editor(nullptr); + memdelete(vbox); + button_add_item = nullptr; + vbox = nullptr; + } + return; + } + + Dictionary dict = updated_val; + + edit->set_text(vformat(TTR("Localizable String (size %d)"), dict.size())); + + bool unfolded = get_edited_object()->editor_is_section_unfolded(get_edited_property()); + if (edit->is_pressed() != unfolded) { + edit->set_pressed(unfolded); + } + + if (unfolded) { + updating = true; + + if (!vbox) { + vbox = memnew(VBoxContainer); + add_child(vbox); + set_bottom_editor(vbox); + + property_vbox = memnew(VBoxContainer); + property_vbox->set_h_size_flags(SIZE_EXPAND_FILL); + vbox->add_child(property_vbox); + + paginator = memnew(EditorPaginator); + paginator->connect("page_changed", callable_mp(this, &EditorPropertyLocalizableString::_page_changed)); + vbox->add_child(paginator); + } else { + // Queue children for deletion, deleting immediately might cause errors. + for (int i = property_vbox->get_child_count() - 1; i >= 0; i--) { + property_vbox->get_child(i)->queue_delete(); + } + } + + int size = dict.size(); + + int max_page = MAX(0, size - 1) / page_length; + page_index = MIN(page_index, max_page); + + paginator->update(page_index, max_page); + paginator->set_visible(max_page > 0); + + int offset = page_index * page_length; + + int amount = MIN(size - offset, page_length); + + dict = dict.duplicate(); + + object->set_dict(dict); + + for (int i = 0; i < amount; i++) { + String prop_name; + Variant key; + Variant value; + + prop_name = "indices/" + itos(i + offset); + key = dict.get_key_at_index(i + offset); + value = dict.get_value_at_index(i + offset); + + EditorProperty *prop = memnew(EditorPropertyText); + + prop->set_object_and_property(object.ptr(), prop_name); + int remove_index = 0; + + String cs = key.get_construct_string(); + prop->set_label(cs); + prop->set_tooltip(cs); + remove_index = i + offset; + + prop->set_selectable(false); + prop->connect("property_changed", callable_mp(this, &EditorPropertyLocalizableString::_property_changed)); + prop->connect("object_id_selected", callable_mp(this, &EditorPropertyLocalizableString::_object_id_selected)); + + HBoxContainer *hbox = memnew(HBoxContainer); + property_vbox->add_child(hbox); + hbox->add_child(prop); + prop->set_h_size_flags(SIZE_EXPAND_FILL); + Button *edit = memnew(Button); + edit->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))); + hbox->add_child(edit); + edit->connect("pressed", callable_mp(this, &EditorPropertyLocalizableString::_remove_item), varray(edit, remove_index)); + + prop->update_property(); + } + + if (page_index == max_page) { + button_add_item = memnew(Button); + button_add_item->set_text(TTR("Add Translation")); + button_add_item->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); + button_add_item->connect("pressed", callable_mp(this, &EditorPropertyLocalizableString::_add_locale_popup)); + property_vbox->add_child(button_add_item); + } + + updating = false; + + } else { + if (vbox) { + set_bottom_editor(nullptr); + memdelete(vbox); + button_add_item = nullptr; + vbox = nullptr; + } + } +} + +void EditorPropertyLocalizableString::_object_id_selected(const StringName &p_property, ObjectID p_id) { + emit_signal(SNAME("object_id_selected"), p_property, p_id); +} + +void EditorPropertyLocalizableString::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_THEME_CHANGED: + case NOTIFICATION_ENTER_TREE: { + if (Object::cast_to<Button>(button_add_item)) { + button_add_item->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); + } + } break; + } +} + +void EditorPropertyLocalizableString::_edit_pressed() { + Variant prop_val = get_edited_object()->get(get_edited_property()); + if (prop_val.get_type() == Variant::NIL) { + Callable::CallError ce; + Variant::construct(Variant::DICTIONARY, prop_val, nullptr, 0, ce); + get_edited_object()->set(get_edited_property(), prop_val); + } + + get_edited_object()->editor_set_section_unfold(get_edited_property(), edit->is_pressed()); + update_property(); +} + +void EditorPropertyLocalizableString::_page_changed(int p_page) { + if (updating) { + return; + } + page_index = p_page; + update_property(); +} + +void EditorPropertyLocalizableString::_bind_methods() { +} + +EditorPropertyLocalizableString::EditorPropertyLocalizableString() { + object.instantiate(); + page_length = int(EDITOR_GET("interface/inspector/max_array_dictionary_items_per_page")); + + edit = memnew(Button); + edit->set_h_size_flags(SIZE_EXPAND_FILL); + edit->set_clip_text(true); + edit->connect("pressed", callable_mp(this, &EditorPropertyLocalizableString::_edit_pressed)); + edit->set_toggle_mode(true); + add_child(edit); + add_focusable(edit); + + vbox = nullptr; + button_add_item = nullptr; + paginator = nullptr; + updating = false; + + locale_select = memnew(EditorLocaleDialog); + locale_select->connect("locale_selected", callable_mp(this, &EditorPropertyLocalizableString::_add_locale)); + add_child(locale_select); +} diff --git a/editor/editor_properties_array_dict.h b/editor/editor_properties_array_dict.h index 292de6d6db..3d9fe90b20 100644 --- a/editor/editor_properties_array_dict.h +++ b/editor/editor_properties_array_dict.h @@ -32,6 +32,7 @@ #define EDITOR_PROPERTIES_ARRAY_DICT_H #include "editor/editor_inspector.h" +#include "editor/editor_locale_dialog.h" #include "editor/editor_spin_slider.h" #include "editor/filesystem_dock.h" #include "scene/gui/button.h" @@ -80,8 +81,8 @@ class EditorPropertyArray : public EditorProperty { GDCLASS(EditorPropertyArray, EditorProperty); PopupMenu *change_type; - bool updating; - bool dropping; + bool updating = false; + bool dropping = false; Ref<EditorPropertyArrayObject> object; int page_length = 20; @@ -138,7 +139,7 @@ class EditorPropertyDictionary : public EditorProperty { GDCLASS(EditorPropertyDictionary, EditorProperty); PopupMenu *change_type; - bool updating; + bool updating = false; Ref<EditorPropertyDictionaryObject> object; int page_length = 20; @@ -169,4 +170,39 @@ public: EditorPropertyDictionary(); }; +class EditorPropertyLocalizableString : public EditorProperty { + GDCLASS(EditorPropertyLocalizableString, EditorProperty); + + EditorLocaleDialog *locale_select; + + bool updating; + + Ref<EditorPropertyDictionaryObject> object; + int page_length = 20; + int page_index = 0; + Button *edit; + VBoxContainer *vbox; + VBoxContainer *property_vbox; + EditorSpinSlider *size_slider; + Button *button_add_item; + EditorPaginator *paginator; + + void _page_changed(int p_page); + void _edit_pressed(); + void _remove_item(Object *p_button, int p_index); + void _property_changed(const String &p_property, Variant p_value, const String &p_name = "", bool p_changing = false); + + void _add_locale_popup(); + void _add_locale(const String &p_locale); + void _object_id_selected(const StringName &p_property, ObjectID p_id); + +protected: + static void _bind_methods(); + void _notification(int p_what); + +public: + virtual void update_property() override; + EditorPropertyLocalizableString(); +}; + #endif // EDITOR_PROPERTIES_ARRAY_DICT_H diff --git a/editor/editor_property_name_processor.cpp b/editor/editor_property_name_processor.cpp new file mode 100644 index 0000000000..20327cb867 --- /dev/null +++ b/editor/editor_property_name_processor.cpp @@ -0,0 +1,136 @@ +/*************************************************************************/ +/* editor_property_name_processor.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 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_property_name_processor.h" + +#include "editor_settings.h" + +EditorPropertyNameProcessor *EditorPropertyNameProcessor::singleton = nullptr; + +String EditorPropertyNameProcessor::_capitalize_name(const String &p_name) const { + String capitalized_string = p_name.capitalize(); + + // Fix the casing of a few strings commonly found in editor property/setting names. + for (Map<String, String>::Element *E = capitalize_string_remaps.front(); E; E = E->next()) { + capitalized_string = capitalized_string.replace(E->key(), E->value()); + } + + return capitalized_string; +} + +String EditorPropertyNameProcessor::process_name(const String &p_name) const { + const String capitalized_string = _capitalize_name(p_name); + if (EDITOR_GET("interface/editor/translate_properties")) { + return TTRGET(capitalized_string); + } + return capitalized_string; +} + +String EditorPropertyNameProcessor::make_tooltip_for_name(const String &p_name) const { + const String capitalized_string = _capitalize_name(p_name); + if (EDITOR_GET("interface/editor/translate_properties")) { + return capitalized_string; + } + return TTRGET(capitalized_string); +} + +EditorPropertyNameProcessor::EditorPropertyNameProcessor() { + ERR_FAIL_COND(singleton != nullptr); + singleton = this; + + // The following initialization is parsed in `editor/translations/extract.py` with a regex. + // The map name and value definition format should be kept synced with the regex. + capitalize_string_remaps["2d"] = "2D"; + capitalize_string_remaps["3d"] = "3D"; + capitalize_string_remaps["Aa"] = "AA"; + capitalize_string_remaps["Adb"] = "ADB"; + capitalize_string_remaps["Ao"] = "AO"; + capitalize_string_remaps["Bptc"] = "BPTC"; + capitalize_string_remaps["Bvh"] = "BVH"; + capitalize_string_remaps["Csg"] = "CSG"; + capitalize_string_remaps["Cpu"] = "CPU"; + capitalize_string_remaps["Db"] = "dB"; + capitalize_string_remaps["Dof"] = "DoF"; + capitalize_string_remaps["Dpi"] = "DPI"; + capitalize_string_remaps["Etc"] = "ETC"; + capitalize_string_remaps["Fbx"] = "FBX"; + capitalize_string_remaps["Fps"] = "FPS"; + capitalize_string_remaps["Fov"] = "FOV"; + capitalize_string_remaps["Fsr"] = "FSR"; + capitalize_string_remaps["Fs"] = "FS"; + capitalize_string_remaps["Fxaa"] = "FXAA"; + capitalize_string_remaps["Ggx"] = "GGX"; + capitalize_string_remaps["Gi"] = "GI"; + capitalize_string_remaps["Gdscript"] = "GDScript"; + capitalize_string_remaps["Gles 2"] = "GLES2"; + capitalize_string_remaps["Gles 3"] = "GLES3"; + capitalize_string_remaps["Gpu"] = "GPU"; + capitalize_string_remaps["Gui"] = "GUI"; + capitalize_string_remaps["Hdr"] = "HDR"; + capitalize_string_remaps["Hidpi"] = "hiDPI"; + capitalize_string_remaps["Http"] = "HTTP"; + capitalize_string_remaps["Ik"] = "IK"; + capitalize_string_remaps["Ios"] = "iOS"; + capitalize_string_remaps["Kb"] = "KB"; + capitalize_string_remaps["Lod"] = "LOD"; + capitalize_string_remaps["Msaa"] = "MSAA"; + capitalize_string_remaps["Macos"] = "macOS"; + capitalize_string_remaps["Opentype"] = "OpenType"; + capitalize_string_remaps["Openxr"] = "OpenXR"; + capitalize_string_remaps["Png"] = "PNG"; + capitalize_string_remaps["Pvs"] = "PVS"; + capitalize_string_remaps["Pvrtc"] = "PVRTC"; + capitalize_string_remaps["S 3 Tc"] = "S3TC"; + capitalize_string_remaps["Sdfgi"] = "SDFGI"; + capitalize_string_remaps["Srgb"] = "sRGB"; + capitalize_string_remaps["Ssao"] = "SSAO"; + capitalize_string_remaps["Ssl"] = "SSL"; + capitalize_string_remaps["Ssil"] = "SSIL"; + capitalize_string_remaps["Ssh"] = "SSH"; + capitalize_string_remaps["Sdf"] = "SDF"; + capitalize_string_remaps["Sdk"] = "SDK"; + capitalize_string_remaps["Tcp"] = "TCP"; + capitalize_string_remaps["Url"] = "URL"; + capitalize_string_remaps["Uv 1"] = "UV1"; + capitalize_string_remaps["Uv 2"] = "UV2"; + capitalize_string_remaps["Uv"] = "UV"; + capitalize_string_remaps["Uwp"] = "UWP"; + capitalize_string_remaps["Vram"] = "VRAM"; + capitalize_string_remaps["Vsync"] = "V-Sync"; + capitalize_string_remaps["Vector 2"] = "Vector2"; + capitalize_string_remaps["Webp"] = "WebP"; + capitalize_string_remaps["Webrtc"] = "WebRTC"; + capitalize_string_remaps["Websocket"] = "WebSocket"; + capitalize_string_remaps["Xr"] = "XR"; +} + +EditorPropertyNameProcessor::~EditorPropertyNameProcessor() { + singleton = nullptr; +} diff --git a/editor/editor_property_name_processor.h b/editor/editor_property_name_processor.h new file mode 100644 index 0000000000..efd7abced3 --- /dev/null +++ b/editor/editor_property_name_processor.h @@ -0,0 +1,58 @@ +/*************************************************************************/ +/* editor_property_name_processor.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2022 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_PROPERTY_NAME_PROCESSOR_H +#define EDITOR_PROPERTY_NAME_PROCESSOR_H + +#include "scene/main/node.h" + +class EditorPropertyNameProcessor : public Node { + GDCLASS(EditorPropertyNameProcessor, Node); + + static EditorPropertyNameProcessor *singleton; + + Map<String, String> capitalize_string_remaps; + + String _capitalize_name(const String &p_name) const; + +public: + static EditorPropertyNameProcessor *get_singleton() { return singleton; } + + // Capitalize & localize property path segments. + String process_name(const String &p_name) const; + + // Make tooltip string for names processed by process_name(). + String make_tooltip_for_name(const String &p_name) const; + + EditorPropertyNameProcessor(); + ~EditorPropertyNameProcessor(); +}; + +#endif // EDITOR_PROPERTY_NAME_PROCESSOR_H diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp index 2f14667fc0..a7b2a4cfa6 100644 --- a/editor/editor_resource_picker.cpp +++ b/editor/editor_resource_picker.cpp @@ -149,7 +149,7 @@ void EditorResourcePicker::_update_menu() { _update_menu_items(); Rect2 gt = edit_button->get_screen_rect(); - edit_menu->set_as_minsize(); + edit_menu->reset_size(); int ms = edit_menu->get_contents_minimum_size().width; Vector2 popup_pos = gt.get_end() - Vector2(ms, 0); edit_menu->set_position(popup_pos); @@ -337,7 +337,7 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) { // Ensure that the FileSystem dock is visible. TabContainer *tab_container = (TabContainer *)file_system_dock->get_parent_control(); - tab_container->set_current_tab(file_system_dock->get_index()); + tab_container->set_current_tab(tab_container->get_tab_idx_from_control(file_system_dock)); } break; default: { @@ -476,7 +476,7 @@ void EditorResourcePicker::_button_input(const Ref<InputEvent> &p_event) { _update_menu_items(); Vector2 pos = get_screen_position() + mb->get_position(); - edit_menu->set_as_minsize(); + edit_menu->reset_size(); edit_menu->set_position(pos); edit_menu->popup(); } @@ -905,7 +905,12 @@ void EditorScriptPicker::set_create_options(Object *p_menu_node) { } menu_node->add_icon_item(get_theme_icon(SNAME("ScriptCreate"), SNAME("EditorIcons")), TTR("New Script"), OBJ_MENU_NEW_SCRIPT); - menu_node->add_icon_item(get_theme_icon(SNAME("ScriptExtend"), SNAME("EditorIcons")), TTR("Extend Script"), OBJ_MENU_EXTEND_SCRIPT); + if (script_owner) { + Ref<Script> script = script_owner->get_script(); + if (script.is_valid()) { + menu_node->add_icon_item(get_theme_icon(SNAME("ScriptExtend"), SNAME("EditorIcons")), TTR("Extend Script"), OBJ_MENU_EXTEND_SCRIPT); + } + } menu_node->add_separator(); } diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index 85d304ec5d..5db7b8673f 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -83,7 +83,7 @@ void EditorRunNative::_notification(int p_what) { mb->set_tooltip(eep->get_options_tooltip()); for (int i = 0; i < dc; i++) { mb->get_popup()->add_icon_item(eep->get_option_icon(i), eep->get_option_label(i)); - mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() - 1, eep->get_option_tooltip(i)); + mb->get_popup()->set_item_tooltip(-1, eep->get_option_tooltip(i)); } } } @@ -168,7 +168,6 @@ bool EditorRunNative::is_deploy_debug_remote_enabled() const { EditorRunNative::EditorRunNative() { set_process(true); - first = true; resume_idx = 0; resume_platform = 0; } diff --git a/editor/editor_run_native.h b/editor/editor_run_native.h index 199d094e55..4cb5779350 100644 --- a/editor/editor_run_native.h +++ b/editor/editor_run_native.h @@ -38,7 +38,7 @@ class EditorRunNative : public HBoxContainer { GDCLASS(EditorRunNative, HBoxContainer); Map<int, MenuButton *> menus; - bool first; + bool first = true; int resume_idx; int resume_platform; diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp index 19374f826a..a44cf20771 100644 --- a/editor/editor_sectioned_inspector.cpp +++ b/editor/editor_sectioned_inspector.cpp @@ -30,6 +30,7 @@ #include "editor_sectioned_inspector.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" class SectionedInspectorFilter : public Object { @@ -259,7 +260,8 @@ void SectionedInspector::update_category_list() { if (!section_map.has(metasection)) { TreeItem *ms = sections->create_item(parent); section_map[metasection] = ms; - ms->set_text(0, sectionarr[i].capitalize()); + ms->set_text(0, EditorPropertyNameProcessor::get_singleton()->process_name(sectionarr[i])); + ms->set_tooltip(0, EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(sectionarr[i])); ms->set_metadata(0, metasection); ms->set_selectable(0, false); } diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 6bd11fcdd6..2d80fe85f8 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -63,6 +63,7 @@ bool EditorSettings::_set(const StringName &p_name, const Variant &p_value) { bool changed = _set_only(p_name, p_value); if (changed) { + changed_settings.insert(p_name); emit_signal(SNAME("settings_changed")); } return true; @@ -459,9 +460,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { EDITOR_SETTING_USAGE(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "interface/theme/custom_theme", "", "*.res,*.tres,*.theme", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) // Scene tabs + EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/scene_tabs/display_close_button", 1, "Never,If Tab Active,Always"); // TabBar::CloseButtonDisplayPolicy _initial_set("interface/scene_tabs/show_thumbnail_on_hover", true); - _initial_set("interface/scene_tabs/resize_if_many_tabs", true); - EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/scene_tabs/minimum_width", 50, "50,500,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) + EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_RANGE, "interface/scene_tabs/maximum_width", 350, "0,9999,1", PROPERTY_USAGE_DEFAULT) _initial_set("interface/scene_tabs/show_script_button", false); /* Filesystem */ @@ -553,6 +554,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("text_editor/behavior/files/autosave_interval_secs", 0); _initial_set("text_editor/behavior/files/restore_scripts_on_load", true); _initial_set("text_editor/behavior/files/convert_indent_on_save", true); + _initial_set("text_editor/behavior/files/auto_reload_scripts_on_external_change", false); // Script list _initial_set("text_editor/script_list/show_members_overview", true); @@ -585,6 +587,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // Use a similar color to the 2D editor selection. EDITOR_SETTING_USAGE(Variant::COLOR, PROPERTY_HINT_NONE, "editors/3d/selection_box_color", Color(1.0, 0.5, 0), "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) + _initial_set("editors/3d_gizmos/gizmo_colors/instantiated", Color(0.7, 0.7, 0.7, 0.6)); + _initial_set("editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1)); + _initial_set("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); // If a line is a multiple of this, it uses the primary grid color. // Use a power of 2 value by default as it's more common to use powers of 2 in level design. @@ -708,6 +713,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // SSL EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_GLOBAL_FILE, "network/ssl/editor_ssl_certificates", _SYSTEM_CERTS_PATH, "*.crt,*.pem") + // Profiler + _initial_set("debugger/profiler_frame_history_size", 600); + /* Extra config */ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "project_manager/sorting_order", 0, "Name,Path,Last Edited") @@ -941,10 +949,34 @@ void EditorSettings::save() { if (err != OK) { ERR_PRINT("Error saving editor settings to " + singleton->config_file_path); } else { + singleton->changed_settings.clear(); print_verbose("EditorSettings: Save OK!"); } } +Array EditorSettings::get_changed_settings() const { + Array arr; + for (const String &setting : changed_settings) { + arr.push_back(setting); + } + + return arr; +} + +bool EditorSettings::check_changed_settings_in_group(const String &p_setting_prefix) const { + for (const String &setting : changed_settings) { + if (setting.begins_with(p_setting_prefix)) { + return true; + } + } + + return false; +} + +void EditorSettings::mark_setting_changed(const String &p_setting) { + changed_settings.insert(p_setting); +} + void EditorSettings::destroy() { if (!singleton.ptr()) { return; @@ -1191,7 +1223,7 @@ bool EditorSettings::is_dark_theme() { void EditorSettings::list_text_editor_themes() { String themes = "Default,Godot 2,Custom"; - DirAccess *d = DirAccess::open(get_text_editor_themes_dir()); + DirAccessRef d = DirAccess::open(get_text_editor_themes_dir()); if (d) { List<String> custom_themes; d->list_dir_begin(); @@ -1203,7 +1235,6 @@ void EditorSettings::list_text_editor_themes() { file = d->get_next(); } d->list_dir_end(); - memdelete(d); custom_themes.sort(); for (const String &E : custom_themes) { @@ -1258,10 +1289,9 @@ bool EditorSettings::import_text_editor_theme(String p_file) { return false; } - DirAccess *d = DirAccess::open(get_text_editor_themes_dir()); + DirAccessRef d = DirAccess::open(get_text_editor_themes_dir()); if (d) { d->copy(p_file, get_text_editor_themes_dir().plus_file(p_file.get_file())); - memdelete(d); return true; } } @@ -1311,7 +1341,7 @@ Vector<String> EditorSettings::get_script_templates(const String &p_extension, c if (!p_custom_path.is_empty()) { template_dir = p_custom_path; } - DirAccess *d = DirAccess::open(template_dir); + DirAccessRef d = DirAccess::open(template_dir); if (d) { d->list_dir_begin(); String file = d->get_next(); @@ -1322,7 +1352,6 @@ Vector<String> EditorSettings::get_script_templates(const String &p_extension, c file = d->get_next(); } d->list_dir_end(); - memdelete(d); } return templates; } @@ -1621,6 +1650,10 @@ void EditorSettings::_bind_methods() { ClassDB::bind_method(D_METHOD("set_builtin_action_override", "name", "actions_list"), &EditorSettings::set_builtin_action_override); + ClassDB::bind_method(D_METHOD("check_changed_settings_in_group", "setting_prefix"), &EditorSettings::check_changed_settings_in_group); + ClassDB::bind_method(D_METHOD("get_changed_settings"), &EditorSettings::get_changed_settings); + ClassDB::bind_method(D_METHOD("mark_setting_changed", "setting"), &EditorSettings::mark_setting_changed); + ADD_SIGNAL(MethodInfo("settings_changed")); BIND_CONSTANT(NOTIFICATION_EDITOR_SETTINGS_CHANGED); @@ -1628,8 +1661,6 @@ void EditorSettings::_bind_methods() { EditorSettings::EditorSettings() { last_order = 0; - optimize_save = true; - save_changed_setting = true; _load_defaults(); } diff --git a/editor/editor_settings.h b/editor/editor_settings.h index f0fec3acc7..4f25259a01 100644 --- a/editor/editor_settings.h +++ b/editor/editor_settings.h @@ -77,6 +77,8 @@ private: static Ref<EditorSettings> singleton; + Set<String> changed_settings; + HashMap<String, PropertyInfo> hints; HashMap<String, VariantContainer> props; int last_order; @@ -90,8 +92,8 @@ private: Vector<String> favorites; Vector<String> recent_dirs; - bool save_changed_setting; - bool optimize_save; //do not save stuff that came from config but was not set from engine + bool save_changed_setting = true; + bool optimize_save = true; //do not save stuff that came from config but was not set from engine bool _set(const StringName &p_name, const Variant &p_value); bool _set_only(const StringName &p_name, const Variant &p_value); @@ -140,6 +142,9 @@ public: bool property_can_revert(const String &p_setting); Variant property_get_revert(const String &p_setting); void add_property_hint(const PropertyInfo &p_hint); + Array get_changed_settings() const; + bool check_changed_settings_in_group(const String &p_setting_prefix) const; + void mark_setting_changed(const String &p_setting); void set_resource_clipboard(const Ref<Resource> &p_resource) { clipboard = p_resource; } Ref<Resource> get_resource_clipboard() const { return clipboard; } diff --git a/editor/editor_settings_dialog.cpp b/editor/editor_settings_dialog.cpp index 18324f9971..eb3cf08578 100644 --- a/editor/editor_settings_dialog.cpp +++ b/editor/editor_settings_dialog.cpp @@ -37,6 +37,7 @@ #include "editor/editor_file_system.h" #include "editor/editor_log.h" #include "editor/editor_node.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "scene/gui/margin_container.h" @@ -134,9 +135,13 @@ void EditorSettingsDialog::_notification(int p_what) { case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { _update_icons(); - // Update theme colors. - inspector->update_category_list(); - _update_shortcuts(); + + bool update_shortcuts_tab = + EditorSettings::get_singleton()->check_changed_settings_in_group("shortcuts") || + EditorSettings::get_singleton()->check_changed_settings_in_group("builtin_action_overrides"); + if (update_shortcuts_tab) { + _update_shortcuts(); + } } break; } } @@ -215,6 +220,8 @@ void EditorSettingsDialog::_update_builtin_action(const String &p_name, const Ar Array old_input_array = EditorSettings::get_singleton()->get_builtin_action_overrides(p_name); undo_redo->create_action(TTR("Edit Built-in Action") + " '" + p_name + "'"); + undo_redo->add_do_method(EditorSettings::get_singleton(), "mark_setting_changed", "builtin_action_overrides"); + undo_redo->add_undo_method(EditorSettings::get_singleton(), "mark_setting_changed", "builtin_action_overrides"); undo_redo->add_do_method(EditorSettings::get_singleton(), "set_builtin_action_override", p_name, p_events); undo_redo->add_undo_method(EditorSettings::get_singleton(), "set_builtin_action_override", p_name, old_input_array); undo_redo->add_do_method(this, "_settings_changed"); @@ -230,6 +237,8 @@ void EditorSettingsDialog::_update_shortcut_events(const String &p_path, const A undo_redo->create_action(TTR("Edit Shortcut") + " '" + p_path + "'"); undo_redo->add_do_method(current_sc.ptr(), "set_events", p_events); undo_redo->add_undo_method(current_sc.ptr(), "set_events", current_sc->get_events()); + undo_redo->add_do_method(EditorSettings::get_singleton(), "mark_setting_changed", "shortcuts"); + undo_redo->add_undo_method(EditorSettings::get_singleton(), "mark_setting_changed", "shortcuts"); undo_redo->add_do_method(this, "_update_shortcuts"); undo_redo->add_undo_method(this, "_update_shortcuts"); undo_redo->add_do_method(this, "_settings_changed"); @@ -330,13 +339,15 @@ void EditorSettingsDialog::_update_shortcuts() { // Try go down tree TreeItem *ti_next = ti->get_first_child(); - // Try go across tree - if (!ti_next) { - ti_next = ti->get_next(); - } - // Try go up tree, to next node + // Try go to the next node via in-order traversal if (!ti_next) { - ti_next = ti->get_parent()->get_next(); + ti_next = ti; + while (ti_next && !ti_next->get_next()) { + ti_next = ti_next->get_parent(); + } + if (ti_next) { + ti_next = ti_next->get_next(); + } } ti = ti_next; @@ -420,8 +431,9 @@ void EditorSettingsDialog::_update_shortcuts() { } else { section = shortcuts->create_item(root); - String item_name = section_name.capitalize(); + String item_name = EditorPropertyNameProcessor::get_singleton()->process_name(section_name); section->set_text(0, item_name); + section->set_tooltip(0, EditorPropertyNameProcessor::get_singleton()->make_tooltip_for_name(section_name)); section->set_selectable(0, false); section->set_selectable(1, false); section->set_custom_bg_color(0, shortcuts->get_theme_color(SNAME("prop_subsection"), SNAME("Editor"))); @@ -662,7 +674,7 @@ EditorSettingsDialog::EditorSettingsDialog() { undo_redo = memnew(UndoRedo); tabs = memnew(TabContainer); - tabs->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tabs->set_tab_alignment(TabBar::ALIGNMENT_LEFT); tabs->connect("tab_changed", callable_mp(this, &EditorSettingsDialog::_tabs_tab_changed)); add_child(tabs); @@ -752,8 +764,6 @@ EditorSettingsDialog::EditorSettingsDialog() { add_child(timer); EditorSettings::get_singleton()->connect("settings_changed", callable_mp(this, &EditorSettingsDialog::_settings_changed)); get_ok_button()->set_text(TTR("Close")); - - updating = false; } EditorSettingsDialog::~EditorSettingsDialog() { diff --git a/editor/editor_settings_dialog.h b/editor/editor_settings_dialog.h index 4b90506b4b..e3139bb07a 100644 --- a/editor/editor_settings_dialog.h +++ b/editor/editor_settings_dialog.h @@ -43,7 +43,7 @@ class EditorSettingsDialog : public AcceptDialog { GDCLASS(EditorSettingsDialog, AcceptDialog); - bool updating; + bool updating = false; TabContainer *tabs; Control *tab_general; diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp index a4a9e691a0..ef34f13d45 100644 --- a/editor/editor_spin_slider.cpp +++ b/editor/editor_spin_slider.cpp @@ -300,12 +300,7 @@ void EditorSpinSlider::_draw_spin_slider() { int vofs = (size.height - font->get_height(font_size)) / 2 + font->get_ascent(font_size); Color fc = get_theme_color(is_read_only() ? SNAME("font_uneditable_color") : SNAME("font_color"), SNAME("LineEdit")); - Color lc; - if (use_custom_label_color) { - lc = custom_label_color; - } else { - lc = fc; - } + Color lc = get_theme_color(is_read_only() ? SNAME("read_only_label_color") : SNAME("label_color")); if (flat && !label.is_empty()) { Color label_bg_color = get_theme_color(SNAME("dark_color_3"), SNAME("Editor")); @@ -605,11 +600,6 @@ bool EditorSpinSlider::is_flat() const { return flat; } -void EditorSpinSlider::set_custom_label_color(bool p_use_custom_label_color, Color p_custom_label_color) { - use_custom_label_color = p_use_custom_label_color; - custom_label_color = p_custom_label_color; -} - void EditorSpinSlider::_focus_entered() { _ensure_input_popup(); Rect2 gr = get_screen_rect(); @@ -665,14 +655,10 @@ void EditorSpinSlider::_ensure_input_popup() { } EditorSpinSlider::EditorSpinSlider() { - flat = false; - grabbing_spinner_attempt = false; - grabbing_spinner = false; grabbing_spinner_dist_cache = 0; pre_grab_value = 0; set_focus_mode(FOCUS_ALL); updown_offset = -1; - hover_updown = false; grabber = memnew(TextureRect); add_child(grabber); grabber->hide(); @@ -681,13 +667,5 @@ EditorSpinSlider::EditorSpinSlider() { grabber->connect("mouse_entered", callable_mp(this, &EditorSpinSlider::_grabber_mouse_entered)); grabber->connect("mouse_exited", callable_mp(this, &EditorSpinSlider::_grabber_mouse_exited)); grabber->connect("gui_input", callable_mp(this, &EditorSpinSlider::_grabber_gui_input)); - mouse_over_spin = false; - mouse_over_grabber = false; - mousewheel_over_grabber = false; - grabbing_grabber = false; grabber_range = 1; - value_input_just_closed = false; - hide_slider = false; - read_only = false; - use_custom_label_color = false; } diff --git a/editor/editor_spin_slider.h b/editor/editor_spin_slider.h index 7e3f2051ac..405c3bfc22 100644 --- a/editor/editor_spin_slider.h +++ b/editor/editor_spin_slider.h @@ -41,24 +41,24 @@ class EditorSpinSlider : public Range { String label; String suffix; int updown_offset; - bool hover_updown; - bool mouse_hover; + bool hover_updown = false; + bool mouse_hover = false; TextureRect *grabber; int grabber_range; - bool mouse_over_spin; - bool mouse_over_grabber; - bool mousewheel_over_grabber; + bool mouse_over_spin = false; + bool mouse_over_grabber = false; + bool mousewheel_over_grabber = false; - bool grabbing_grabber; + bool grabbing_grabber = false; int grabbing_from; float grabbing_ratio; - bool grabbing_spinner_attempt; - bool grabbing_spinner; + bool grabbing_spinner_attempt = false; + bool grabbing_spinner = false; - bool read_only; + bool read_only = false; float grabbing_spinner_dist_cache; Vector2 grabbing_spinner_mouse_pos; double pre_grab_value; @@ -73,11 +73,8 @@ class EditorSpinSlider : public Range { void _value_input_submitted(const String &); void _value_focus_exited(); void _value_input_gui_input(const Ref<InputEvent> &p_event); - bool hide_slider; - bool flat; - - bool use_custom_label_color; - Color custom_label_color; + bool hide_slider = false; + bool flat = false; void _evaluate_input_text(); @@ -112,8 +109,6 @@ public: void set_flat(bool p_enable); bool is_flat() const; - void set_custom_label_color(bool p_use_custom_label_color, Color p_custom_label_color); - void setup_and_show() { _focus_entered(); } LineEdit *get_line_edit(); diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 05aa638a4b..d21049414c 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -411,9 +411,11 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { // Colors bool dark_theme = EditorSettings::get_singleton()->is_dark_theme(); - const Color dark_color_1 = base_color.lerp(Color(0, 0, 0, 1), contrast); - const Color dark_color_2 = base_color.lerp(Color(0, 0, 0, 1), contrast * 1.5); - const Color dark_color_3 = base_color.lerp(Color(0, 0, 0, 1), contrast * 2); + // Ensure base colors are in the 0..1 luminance range to avoid 8-bit integer overflow or text rendering issues. + // Some places in the editor use 8-bit integer colors. + const Color dark_color_1 = base_color.lerp(Color(0, 0, 0, 1), contrast).clamp(); + const Color dark_color_2 = base_color.lerp(Color(0, 0, 0, 1), contrast * 1.5).clamp(); + const Color dark_color_3 = base_color.lerp(Color(0, 0, 0, 1), contrast * 2).clamp(); const Color background_color = dark_color_2; @@ -433,7 +435,8 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { const Color disabled_color = mono_color.inverted().lerp(base_color, 0.7); const Color disabled_bg_color = mono_color.inverted().lerp(base_color, 0.9); - Color icon_hover_color = Color(1, 1, 1) * (dark_theme ? 1.15 : 1.45); + const Color icon_normal_color = Color(1, 1, 1); + Color icon_hover_color = icon_normal_color * (dark_theme ? 1.15 : 1.45); icon_hover_color.a = 1.0; Color icon_focus_color = icon_hover_color; // Make the pressed icon color overbright because icons are not completely white on a dark theme. @@ -464,6 +467,14 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("axis_y_color", "Editor", Color(0.53, 0.84, 0.01)); theme->set_color("axis_z_color", "Editor", Color(0.16, 0.55, 0.96)); + const float prop_color_saturation = accent_color.get_s() * 0.75; + const float prop_color_value = accent_color.get_v(); + + theme->set_color("property_color_x", "Editor", Color().from_hsv(0.0 / 3.0 + 0.05, prop_color_saturation, prop_color_value)); + theme->set_color("property_color_y", "Editor", Color().from_hsv(1.0 / 3.0 + 0.05, prop_color_saturation, prop_color_value)); + theme->set_color("property_color_z", "Editor", Color().from_hsv(2.0 / 3.0 + 0.05, prop_color_saturation, prop_color_value)); + theme->set_color("property_color_w", "Editor", Color().from_hsv(1.5 / 3.0 + 0.05, prop_color_saturation, prop_color_value)); + theme->set_color("font_color", "Editor", font_color); theme->set_color("highlighted_font_color", "Editor", font_hover_color); theme->set_color("disabled_font_color", "Editor", font_disabled_color); @@ -686,10 +697,24 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("font_focus_color", "Button", font_focus_color); theme->set_color("font_pressed_color", "Button", accent_color); theme->set_color("font_disabled_color", "Button", font_disabled_color); + theme->set_color("icon_normal_color", "Button", icon_normal_color); theme->set_color("icon_hover_color", "Button", icon_hover_color); theme->set_color("icon_focus_color", "Button", icon_focus_color); theme->set_color("icon_pressed_color", "Button", icon_pressed_color); + // Variation for Editor Log filter buttons + theme->set_type_variation("EditorLogFilterButton", "Button"); + // When pressed, don't tint the icons with the accent color, just leave them normal. + theme->set_color("icon_pressed_color", "EditorLogFilterButton", icon_normal_color); + // When unpressed, dim the icons. + theme->set_color("icon_normal_color", "EditorLogFilterButton", font_disabled_color); + // When pressed, add a small bottom border to the buttons to better show their active state, + // similar to active tabs. + Ref<StyleBoxFlat> editor_log_button_pressed = style_widget_pressed->duplicate(); + editor_log_button_pressed->set_border_width(SIDE_BOTTOM, 2 * EDSCALE); + editor_log_button_pressed->set_border_color(accent_color); + theme->set_stylebox("pressed", "EditorLogFilterButton", editor_log_button_pressed); + // OptionButton theme->set_stylebox("focus", "OptionButton", style_widget_focus); @@ -819,7 +844,12 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_icon("visibility_visible", "PopupMenu", theme->get_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons"))); theme->set_icon("visibility_xray", "PopupMenu", theme->get_icon(SNAME("GuiVisibilityXray"), SNAME("EditorIcons"))); - theme->set_constant("vseparation", "PopupMenu", (extra_spacing + default_margin_size + 1) * EDSCALE); + // Force the vseparation to be even so that the spacing on top and bottom is even. + // If the vsep is odd and cannot be split into 2 even groups (of pixels), then it will be lopsided. + // We add 2 to the vsep to give it some extra spacing which looks a bit more modern (see Windows, for example) + int vsep_base = extra_spacing + default_margin_size + 2; + int force_even_vsep = vsep_base + (vsep_base % 2); + theme->set_constant("vseparation", "PopupMenu", force_even_vsep * EDSCALE); theme->set_constant("item_start_padding", "PopupMenu", popup_menu_margin_size * EDSCALE); theme->set_constant("item_end_padding", "PopupMenu", popup_menu_margin_size * EDSCALE); @@ -864,6 +894,10 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_color("sub_inspector_property_color", "Editor", dark_theme ? Color(1, 1, 1, 1) : Color(0, 0, 0, 1)); theme->set_constant("sub_inspector_font_offset", "Editor", 4 * EDSCALE); + // EditorSpinSlider. + theme->set_color("label_color", "EditorSpinSlider", font_color); + theme->set_color("read_only_label_color", "EditorSpinSlider", font_readonly_color); + Ref<StyleBoxFlat> style_property_bg = style_default->duplicate(); style_property_bg->set_bg_color(highlight_color); style_property_bg->set_border_width_all(0); @@ -1156,7 +1190,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { theme->set_icon("can_fold", "CodeEdit", theme->get_icon(SNAME("GuiTreeArrowDown"), SNAME("EditorIcons"))); theme->set_icon("executing_line", "CodeEdit", theme->get_icon(SNAME("MainPlay"), SNAME("EditorIcons"))); theme->set_icon("breakpoint", "CodeEdit", theme->get_icon(SNAME("Breakpoint"), SNAME("EditorIcons"))); - theme->set_constant("line_spacing", "CodeEdit", EDITOR_DEF("text_editor/appearance/whitespace/line_spacing", 6)); + theme->set_constant("line_spacing", "CodeEdit", EDITOR_GET("text_editor/appearance/whitespace/line_spacing")); // H/VSplitContainer theme->set_stylebox("bg", "VSplitContainer", make_stylebox(theme->get_icon(SNAME("GuiVsplitBg"), SNAME("EditorIcons")), 1, 1, 1, 1)); diff --git a/editor/editor_toaster.cpp b/editor/editor_toaster.cpp index 319b4709fe..7ca88bd2a2 100644 --- a/editor/editor_toaster.cpp +++ b/editor/editor_toaster.cpp @@ -385,12 +385,19 @@ Control *EditorToaster::popup(Control *p_control, Severity p_severity, double p_ } void EditorToaster::popup_str(String p_message, Severity p_severity, String p_tooltip) { + if (is_processing_error) { + return; + } + // Since "_popup_str" adds nodes to the tree, and since the "add_child" method is not // thread-safe, it's better to defer the call to the next cycle to be thread-safe. + is_processing_error = true; call_deferred(SNAME("_popup_str"), p_message, p_severity, p_tooltip); + is_processing_error = false; } void EditorToaster::_popup_str(String p_message, Severity p_severity, String p_tooltip) { + is_processing_error = true; // Check if we already have a popup with the given message. Control *control = nullptr; for (KeyValue<Control *, Toast> element : toasts) { @@ -432,6 +439,7 @@ void EditorToaster::_popup_str(String p_message, Severity p_severity, String p_t } else { label->set_text(vformat("%s (%d)", p_message, toasts[control].count)); } + is_processing_error = false; } void EditorToaster::close(Control *p_control) { diff --git a/editor/editor_toaster.h b/editor/editor_toaster.h index 2ad8752bee..059245ce66 100644 --- a/editor/editor_toaster.h +++ b/editor/editor_toaster.h @@ -82,6 +82,8 @@ private: }; Map<Control *, Toast> toasts; + bool is_processing_error = false; // Makes sure that we don't handle errors that are triggered within the EditorToaster error processing. + const double default_message_duration = 5.0; static void _error_handler(void *p_self, const char *p_func, const char *p_file, int p_line, const char *p_error, const char *p_errorexp, bool p_editor_notify, ErrorHandlerType p_type); diff --git a/editor/editor_vcs_interface.cpp b/editor/editor_vcs_interface.cpp index 97611d9786..0954779300 100644 --- a/editor/editor_vcs_interface.cpp +++ b/editor/editor_vcs_interface.cpp @@ -153,7 +153,6 @@ String EditorVCSInterface::get_vcs_name() { } EditorVCSInterface::EditorVCSInterface() { - is_initialized = false; } EditorVCSInterface::~EditorVCSInterface() { diff --git a/editor/editor_vcs_interface.h b/editor/editor_vcs_interface.h index 091936dadc..487625e84c 100644 --- a/editor/editor_vcs_interface.h +++ b/editor/editor_vcs_interface.h @@ -38,7 +38,7 @@ class EditorVCSInterface : public Object { GDCLASS(EditorVCSInterface, Object) - bool is_initialized; + bool is_initialized = false; protected: static EditorVCSInterface *singleton; diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp index 3cad600002..df3e73267e 100644 --- a/editor/export_template_manager.cpp +++ b/editor/export_template_manager.cpp @@ -44,7 +44,7 @@ void ExportTemplateManager::_update_template_status() { // Fetch installed templates from the file system. - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); const String &templates_dir = EditorSettings::get_singleton()->get_templates_dir(); Error err = da->change_dir(templates_dir); @@ -62,7 +62,6 @@ void ExportTemplateManager::_update_template_status() { } } da->list_dir_end(); - memdelete(da); // Update the state of the current version. String current_version = VERSION_FULL_CONFIG; @@ -645,7 +644,7 @@ Error ExportTemplateManager::install_android_template_from_file(const String &p_ // To support custom Android builds, we install the Java source code and buildsystem // from android_source.zip to the project's res://android folder. - DirAccessRef da = DirAccess::open("res://"); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); ERR_FAIL_COND_V(!da, ERR_CANT_CREATE); // Make res://android dir (if it does not exist). diff --git a/editor/fileserver/editor_file_server.cpp b/editor/fileserver/editor_file_server.cpp index 4a6aa11938..df0af69359 100644 --- a/editor/fileserver/editor_file_server.cpp +++ b/editor/fileserver/editor_file_server.cpp @@ -298,8 +298,8 @@ void EditorFileServer::_thread_start(void *s) { void EditorFileServer::start() { stop(); - port = EDITOR_DEF("filesystem/file_server/port", 6010); - password = EDITOR_DEF("filesystem/file_server/password", ""); + port = EDITOR_GET("filesystem/file_server/port"); + password = EDITOR_GET("filesystem/file_server/password"); cmd = CMD_ACTIVATE; } diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index b41123c0dd..038cc2ab2f 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -396,12 +396,25 @@ void FileSystemDock::_notification(int p_what) { } } else if ((String(dd["type"]) == "files") || (String(dd["type"]) == "files_and_dirs") || (String(dd["type"]) == "resource")) { tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM | Tree::DROP_MODE_INBETWEEN); + } else if ((String(dd["type"]) == "nodes")) { + holding_branch = true; + TreeItem *item = tree->get_next_selected(tree->get_root()); + while (item) { + tree_items_selected_on_drag_begin.push_back(item); + item = tree->get_next_selected(item); + } + list_items_selected_on_drag_begin = files->get_selected_items(); } } } break; case NOTIFICATION_DRAG_END: { tree->set_drop_mode_flags(0); + + if (holding_branch) { + holding_branch = false; + _reselect_items_selected_on_drag_begin(true); + } } break; case NOTIFICATION_THEME_CHANGED: { @@ -512,16 +525,14 @@ void FileSystemDock::_navigate_to_path(const String &p_path, bool p_select_in_fa if (target_path.ends_with("/")) { target_path = target_path.substr(0, target_path.length() - 1); } - DirAccess *dirAccess = DirAccess::open("res://"); - if (dirAccess->file_exists(p_path)) { + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + if (da->file_exists(p_path)) { path = target_path; - } else if (dirAccess->dir_exists(p_path)) { + } else if (da->dir_exists(p_path)) { path = target_path + "/"; } else { - memdelete(dirAccess); ERR_FAIL_MSG(vformat("Cannot navigate to '%s' as it has not been found in the file system!", p_path)); } - memdelete(dirAccess); } _set_current_path_text(path); @@ -768,14 +779,14 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) { icon = folder_icon; if (searched_string.length() == 0 || text.to_lower().find(searched_string) >= 0) { files->add_item(text, icon, true); - files->set_item_metadata(files->get_item_count() - 1, favorite); + files->set_item_metadata(-1, favorite); } } else if (favorite.ends_with("/")) { text = favorite.substr(0, favorite.length() - 1).get_file(); icon = folder_icon; if (searched_string.length() == 0 || text.to_lower().find(searched_string) >= 0) { files->add_item(text, icon, true); - files->set_item_metadata(files->get_item_count() - 1, favorite); + files->set_item_metadata(-1, favorite); } } else { int index; @@ -829,9 +840,9 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) { bd += "/"; } - files->set_item_metadata(files->get_item_count() - 1, bd); - files->set_item_selectable(files->get_item_count() - 1, false); - files->set_item_icon_modulate(files->get_item_count() - 1, folder_color); + files->set_item_metadata(-1, bd); + files->set_item_selectable(-1, false); + files->set_item_icon_modulate(-1, folder_color); } bool reversed = file_sort == FILE_SORT_NAME_REVERSE; @@ -841,8 +852,8 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) { String dname = efd->get_subdir(i)->get_name(); files->add_item(dname, folder_icon, true); - files->set_item_metadata(files->get_item_count() - 1, directory.plus_file(dname) + "/"); - files->set_item_icon_modulate(files->get_item_count() - 1, folder_color); + files->set_item_metadata(-1, directory.plus_file(dname) + "/"); + files->set_item_icon_modulate(-1, folder_color); if (cselection.has(dname)) { files->select(files->get_item_count() - 1, false); @@ -1158,7 +1169,7 @@ void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_ _get_all_items_in_dir(EditorFileSystem::get_singleton()->get_filesystem_path(old_path), file_changed_paths, folder_changed_paths); } - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); print_verbose("Moving " + old_path + " -> " + new_path); Error err = da->rename(old_path, new_path); if (err == OK) { @@ -1198,7 +1209,6 @@ void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_ } else { EditorNode::get_singleton()->add_io_error(TTR("Error moving:") + "\n" + old_path + "\n"); } - memdelete(da); } void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const String &p_new_path) const { @@ -1217,7 +1227,7 @@ void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const Strin return; } - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); print_verbose("Duplicating " + old_path + " -> " + new_path); Error err = p_item.is_file ? da->copy(old_path, new_path) : da->copy_dir(old_path, new_path); if (err == OK) { @@ -1255,7 +1265,6 @@ void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const Strin } else { EditorNode::get_singleton()->add_io_error(TTR("Error duplicating:") + "\n" + old_path + "\n"); } - memdelete(da); } void FileSystemDock::_update_resource_paths_after_move(const Map<String, String> &p_renames) const { @@ -1405,12 +1414,11 @@ void FileSystemDock::_make_dir_confirm() { directory = directory.get_base_dir(); } print_verbose("Making folder " + dir_name + " in " + directory); - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); Error err = da->change_dir(directory); if (err == OK) { err = da->make_dir(dir_name); } - memdelete(da); if (err == OK) { print_verbose("FileSystem: calling rescan."); @@ -1451,13 +1459,11 @@ void FileSystemDock::_make_scene_confirm() { scene_name = directory.plus_file(scene_name); - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (da->file_exists(scene_name)) { EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists.")); - memdelete(da); return; } - memdelete(da); int idx = EditorNode::get_singleton()->new_scene(); EditorNode::get_singleton()->get_editor_data().set_scene_path(idx, scene_name); @@ -1520,7 +1526,7 @@ void FileSystemDock::_rename_operation_confirm() { } // Present a more user friendly warning for name conflict. - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); #if defined(WINDOWS_ENABLED) || defined(UWP_ENABLED) // Workaround case insensitivity on Windows. if ((da->file_exists(new_path) || da->dir_exists(new_path)) && new_path.to_lower() != old_path.to_lower()) { @@ -1528,10 +1534,8 @@ void FileSystemDock::_rename_operation_confirm() { if (da->file_exists(new_path) || da->dir_exists(new_path)) { #endif EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists.")); - memdelete(da); return; } - memdelete(da); Map<String, String> file_renames; Map<String, String> folder_renames; @@ -1575,13 +1579,11 @@ void FileSystemDock::_duplicate_operation_confirm() { String new_path = base_dir.plus_file(new_name); // Present a more user friendly warning for name conflict - DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (da->file_exists(new_path) || da->dir_exists(new_path)) { EditorNode::get_singleton()->show_warning(TTR("A file or folder with this name already exists.")); - memdelete(da); return; } - memdelete(da); _try_duplicate_item(to_duplicate, new_path); @@ -2085,6 +2087,10 @@ void FileSystemDock::focus_on_filter() { } } +ScriptCreateDialog *FileSystemDock::get_script_create_dialog() const { + return make_script_dialog; +} + void FileSystemDock::set_file_list_display_mode(FileListDisplayMode p_mode) { if (p_mode == file_list_display_mode) { return; @@ -2647,8 +2653,79 @@ void FileSystemDock::_file_multi_selected(int p_index, bool p_selected) { call_deferred(SNAME("_update_import_dock")); } +void FileSystemDock::_tree_mouse_exited() { + if (holding_branch) { + _reselect_items_selected_on_drag_begin(); + } +} + +void FileSystemDock::_reselect_items_selected_on_drag_begin(bool reset) { + TreeItem *selected_item = tree->get_next_selected(tree->get_root()); + if (selected_item) { + selected_item->deselect(0); + } + if (!tree_items_selected_on_drag_begin.is_empty()) { + bool reselected = false; + for (TreeItem *item : tree_items_selected_on_drag_begin) { + if (item->get_tree()) { + item->select(0); + reselected = true; + } + } + + if (reset) { + tree_items_selected_on_drag_begin.clear(); + } + + if (!reselected) { + // If couldn't reselect the items selected on drag begin, select the "res://" item. + tree->get_root()->get_child(1)->select(0); + } + } + + files->deselect_all(); + if (!list_items_selected_on_drag_begin.is_empty()) { + for (const int idx : list_items_selected_on_drag_begin) { + files->select(idx, false); + } + + if (reset) { + list_items_selected_on_drag_begin.clear(); + } + } +} + void FileSystemDock::_tree_gui_input(Ref<InputEvent> p_event) { Ref<InputEventKey> key = p_event; + + Ref<InputEventMouseMotion> mm = p_event; + if (mm.is_valid()) { + TreeItem *item = tree->get_item_at_position(mm->get_position()); + if (item && holding_branch) { + String fpath = item->get_metadata(0); + while (!fpath.ends_with("/") && fpath != "res://" && item->get_parent()) { // Find the parent folder tree item. + item = item->get_parent(); + fpath = item->get_metadata(0); + } + + TreeItem *deselect_item = tree->get_next_selected(tree->get_root()); + while (deselect_item) { + deselect_item->deselect(0); + deselect_item = tree->get_next_selected(deselect_item); + } + item->select(0); + + if (display_mode == DisplayMode::DISPLAY_MODE_SPLIT) { + files->deselect_all(); + // Try to select the corresponding file list item. + const int files_item_idx = files->find_metadata(fpath); + if (files_item_idx != -1) { + files->select(files_item_idx); + } + } + } + } + if (key.is_valid() && key->is_pressed() && !key->is_echo()) { if (ED_IS_SHORTCUT("filesystem_dock/duplicate", p_event)) { _tree_rmb_option(FILE_DUPLICATE); @@ -2669,6 +2746,43 @@ void FileSystemDock::_tree_gui_input(Ref<InputEvent> p_event) { } void FileSystemDock::_file_list_gui_input(Ref<InputEvent> p_event) { + Ref<InputEventMouseMotion> mm = p_event; + if (mm.is_valid() && holding_branch) { + const int item_idx = files->get_item_at_position(mm->get_position()); + if (item_idx != -1) { + files->deselect_all(); + String fpath = files->get_item_metadata(item_idx); + if (fpath.ends_with("/") || fpath == "res://") { + files->select(item_idx); + } + + TreeItem *deselect_item = tree->get_next_selected(tree->get_root()); + while (deselect_item) { + deselect_item->deselect(0); + deselect_item = tree->get_next_selected(deselect_item); + } + + // Try to select the corresponding tree item. + TreeItem *tree_item = tree->get_item_with_text(files->get_item_text(item_idx)); + if (tree_item) { + tree_item->select(0); + } else { + // Find parent folder. + fpath = fpath.substr(0, fpath.rfind("/") + 1); + if (fpath.size() > String("res://").size()) { + fpath = fpath.left(fpath.size() - 2); // Remove last '/'. + const int slash_idx = fpath.rfind("/"); + fpath = fpath.substr(slash_idx + 1, fpath.size() - slash_idx - 1); + } + + tree_item = tree->get_item_with_text(fpath); + if (tree_item) { + tree_item->select(0); + } + } + } + } + Ref<InputEventKey> key = p_event; if (key.is_valid() && key->is_pressed() && !key->is_echo()) { if (ED_IS_SHORTCUT("filesystem_dock/duplicate", p_event)) { @@ -2697,7 +2811,7 @@ void FileSystemDock::_get_imported_files(const String &p_path, Vector<String> &f return; } - DirAccess *da = DirAccess::open(p_path); + DirAccessRef da = DirAccess::open(p_path); da->list_dir_begin(); String n = da->get_next(); while (!n.is_empty()) { @@ -2932,6 +3046,7 @@ FileSystemDock::FileSystemDock() { tree->connect("empty_rmb", callable_mp(this, &FileSystemDock::_tree_rmb_empty)); tree->connect("nothing_selected", callable_mp(this, &FileSystemDock::_tree_empty_selected)); tree->connect("gui_input", callable_mp(this, &FileSystemDock::_tree_gui_input)); + tree->connect("mouse_exited", callable_mp(this, &FileSystemDock::_tree_mouse_exited)); file_list_vb = memnew(VBoxContainer); file_list_vb->set_v_size_flags(SIZE_EXPAND_FILL); @@ -3057,10 +3172,7 @@ FileSystemDock::FileSystemDock() { searched_string = String(); uncollapsed_paths_before_search = Vector<String>(); - updating_tree = false; tree_update_id = 0; - initialized = false; - import_dock_needs_update = false; history_pos = 0; history_max_size = 20; @@ -3069,8 +3181,6 @@ FileSystemDock::FileSystemDock() { display_mode = DISPLAY_MODE_TREE_ONLY; old_display_mode = DISPLAY_MODE_TREE_ONLY; file_list_display_mode = FILE_LIST_DISPLAY_THUMBNAILS; - - always_show_folders = false; } FileSystemDock::~FileSystemDock() { diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index 21c50beeb2..92dac374ec 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -154,7 +154,7 @@ private: ShaderCreateDialog *make_shader_dialog; CreateDialog *new_resource_dialog; - bool always_show_folders; + bool always_show_folders = false; class FileOrFolder { public: @@ -177,13 +177,20 @@ private: String path; - bool initialized; + bool initialized = false; - bool updating_tree; + bool updating_tree = false; int tree_update_id; Tree *tree; ItemList *files; - bool import_dock_needs_update; + bool import_dock_needs_update = false; + + bool holding_branch = false; + Vector<TreeItem *> tree_items_selected_on_drag_begin; + PackedInt32Array list_items_selected_on_drag_begin; + + void _tree_mouse_exited(); + void _reselect_items_selected_on_drag_begin(bool reset = false); Ref<Texture2D> _get_tree_item_icon(bool p_is_valid, String p_file_type); bool _create_tree(TreeItem *p_parent, EditorFileSystemDirectory *p_dir, Vector<String> &uncollapsed_paths, bool p_select_in_favorites, bool p_unfold_path = false); @@ -313,6 +320,8 @@ public: void navigate_to_path(const String &p_path); void focus_on_filter(); + ScriptCreateDialog *get_script_create_dialog() const; + void fix_dependencies(const String &p_for_file); int get_split_offset() { return split_box->get_split_offset(); } diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index eff9185c71..1ce363c651 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -612,8 +612,6 @@ FindInFilesPanel::FindInFilesPanel() { _results_display->create_item(); // Root vbc->add_child(_results_display); - _with_replace = false; - { _replace_container = memnew(HBoxContainer); diff --git a/editor/find_in_files.h b/editor/find_in_files.h index 1b6666b554..cf14f3d5c3 100644 --- a/editor/find_in_files.h +++ b/editor/find_in_files.h @@ -210,7 +210,7 @@ private: ProgressBar *_progress_bar; Map<String, TreeItem *> _file_items; Map<TreeItem *, Result> _result_items; - bool _with_replace; + bool _with_replace = false; HBoxContainer *_replace_container; LineEdit *_replace_line_edit; diff --git a/editor/icons/StreamTexture.svg b/editor/icons/CompressedTexture2D.svg index 068f65dead..068f65dead 100644 --- a/editor/icons/StreamTexture.svg +++ b/editor/icons/CompressedTexture2D.svg diff --git a/editor/icons/ViewportSpeed.svg b/editor/icons/ViewportSpeed.svg index 8fceaffd52..57292e2e91 100644 --- a/editor/icons/ViewportSpeed.svg +++ b/editor/icons/ViewportSpeed.svg @@ -1 +1 @@ -<svg height="16" viewBox="0 0 4.2333333 4.2333333" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m1.5875 0c-.28858 0-.52917.24059-.52917.52917v.61132c-.085589-.051-.18113-.0891-.28525-.0853-.34849.0127-.5952.37346-.48059.70278l.26355.79066c.048664.14623.15979.24805.29249.30644l-.60927.40669c-.13121.0845-.22102.22389-.24133.3633-.020312.13941.017471.26985.087333.37465s.17614.19045.31264.22532c.13634.0348.29946.006.42788-.0827h.0005159l1.0852-.72348.26097.52192c.11682.23391.39274.34829.64079.26561l.79375-.26458-.00775.003c.15105-.0454.27732-.15615.33486-.2863.057538-.13015.055144-.26773.014986-.38809-.03156-.0946-.10972-.1687-.19275-.23617.069099-.0546.1445-.10364.18035-.19325.051761-.12941.045257-.29292-.02377-.43098l-.26459-.52946c-.089407-.17933-.27348-.29308-.47335-.29305h-.1111c.052029-.0817.1111-.16214.1111-.26458v-.79375c0-.28858-.24059-.52917-.52917-.52917z"/><path d="m1.5875.26458c-.14658 0-.26458.118-.26458.26459v.79375c0 .14658.118.26458.26458.26458h.26458v.262a.26461.26461 0 0 0 -.083716.0165l-.5426.18086-.18087-.5426a.26461.26461 0 0 0 -.262-.18448.26461.26461 0 0 0 -.2403.3514l.26458.79375a.26461.26461 0 0 0 .33486.16743l.44545-.14831v.16174c0 .0108.00495.02.0062.0305l-1.2113.80771a.26461.26461 0 1 0 .29352.44028l1.3379-.89194.39532.79014a.26461.26461 0 0 0 .32039.1328l.79375-.26458a.26461.26461 0 1 0 -.16743-.50175l-.57619.19172-.25787-.51625c.072998-.047.12402-.12495.12402-.21859v-.26458h.36587l.1912.38292a.26461.26461 0 1 0 .47336-.23668l-.26458-.52916a.26461.26461 0 0 0 -.23668-.14625h-.79375v-.26458h.26458c.14658 0 .26458-.118.26458-.26458v-.79375c0-.14659-.118-.26459-.26458-.26459zm0 .52917h.26458v.52917h-.26458z" fill="#fff" fill-opacity=".99608"/></svg> +<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g stroke-width="3.77953"><path d="m6.0285136 0c-1.0906961 0-2.0000127.90931655-2.0000127 2.0000126v2.3105008c-.3234859-.1927559-.6845858-.3367559-1.0781102-.3223937-1.3171276.048-2.24957487 1.4115024-1.8164032 2.6561764l.9960945 2.9883213c.183927.5526806.6039307.9375116 1.1054741 1.1581986l-2.30275287 1.537096c-.49591181.31937-.83535119.846198-.91211339 1.373102-.07676977.526904.06603212 1.019906.33007748 1.416.26404536.396095.66572598.719811 1.18163158.851603.5153008.131528 1.1318173.02268 1.6171842-.312566h.00195l4.1015433-2.734413.9863434 1.972611c.4415244.884069 1.4843716 1.316372 2.4218832 1.00388l3-.999987-.02929.01134c.570898-.17159 1.048139-.590173 1.265613-1.082078.217466-.491906.208418-1.011893.05664-1.466797-.119282-.357543-.41469-.637606-.728504-.892611.261162-.206362.546142-.39171.681638-.730394.195632-.489109.17105-1.1070991-.08984-1.6289007l-1.000027-2.0011107c-.337916-.6777827-1.033625-1.1077039-1.789039-1.1075905h-.419906c.196645-.3087874.419906-.6128126.419906-.9999874v-3.0000001c0-1.09069605-.909317-2.0000126-2.000012-2.0000126z"/><path d="m6.0285136.99998741c-.5540032 0-.9999874.44598429-.9999874 1.00002519v3.0000001c0 .5540031.4459842.9999874.9999874.9999874h.9999874v.9902362a1.0001008 1.0001008 0 0 0 -.316407.062362l-2.0507716.6835656-.6836032-2.0507717a1.0001008 1.0001008 0 0 0 -.9902362-.6972473 1.0001008 1.0001008 0 0 0 -.9082205 1.328126l.9999874 3.0000001a1.0001008 1.0001008 0 0 0 1.2656126.6328063l1.6835906-.5605418v.6113008c0 .040819.018709.075591.023433.1152757l-4.5781418 3.052762a1.0001008 1.0001008 0 1 0 1.1093669 1.664051l5.05663-3.371112 1.4941228 2.986356a1.0001008 1.0001008 0 0 0 1.210922.501921l3.000001-.999987a1.0001008 1.0001008 0 1 0 -.632807-1.896378l-2.177726.724611-.9746262-1.951182c.275898-.177637.4687372-.472252.4687372-.8261665v-.9999874h1.382815l.722646 1.4472569a1.0001246 1.0001246 0 1 0 1.789077-.8945388l-.999987-1.9999748a1.0001008 1.0001008 0 0 0 -.894539-.5527559h-2.9999995v-.9999874h.9999875c.554003 0 .999987-.4459843.999987-.9999874v-3.0000001c0-.5540409-.445984-1.00002519-.999987-1.00002519zm0 2.00001259h.9999874v2.0000127h-.9999874z" fill="#fff" fill-opacity=".99608"/></g></svg> diff --git a/editor/import/dynamic_font_import_settings.cpp b/editor/import/dynamic_font_import_settings.cpp index ebfb0b32fb..2ecc483938 100644 --- a/editor/import/dynamic_font_import_settings.cpp +++ b/editor/import/dynamic_font_import_settings.cpp @@ -484,6 +484,14 @@ void DynamicFontImportSettings::_main_prop_changed(const String &p_edited_proper if (font_preview->get_data_count() > 0) { font_preview->get_data(0)->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int()); } + } else if (p_edited_property == "embolden") { + if (font_preview->get_data_count() > 0) { + font_preview->get_data(0)->set_embolden(import_settings_data->get("embolden")); + } + } else if (p_edited_property == "transform") { + if (font_preview->get_data_count() > 0) { + font_preview->get_data(0)->set_transform(import_settings_data->get("transform")); + } } else if (p_edited_property == "oversampling") { if (font_preview->get_data_count() > 0) { font_preview->get_data(0)->set_oversampling(import_settings_data->get("oversampling")); @@ -767,7 +775,6 @@ bool DynamicFontImportSettings::_char_update(int32_t p_char) { selected_chars.insert(p_char); return true; } - label_glyphs->set_text(TTR("Preloaded glyphs: ") + itos(selected_glyphs.size())); } void DynamicFontImportSettings::_range_update(int32_t p_start, int32_t p_end) { @@ -925,6 +932,8 @@ void DynamicFontImportSettings::_re_import() { main_settings["force_autohinter"] = import_settings_data->get("force_autohinter"); main_settings["hinting"] = import_settings_data->get("hinting"); main_settings["subpixel_positioning"] = import_settings_data->get("subpixel_positioning"); + main_settings["embolden"] = import_settings_data->get("embolden"); + main_settings["transform"] = import_settings_data->get("transform"); main_settings["oversampling"] = import_settings_data->get("oversampling"); main_settings["compress"] = import_settings_data->get("compress"); @@ -1276,6 +1285,8 @@ void DynamicFontImportSettings::open_settings(const String &p_path) { font_preview->get_data(0)->set_force_autohinter(import_settings_data->get("force_autohinter")); font_preview->get_data(0)->set_hinting((TextServer::Hinting)import_settings_data->get("hinting").operator int()); font_preview->get_data(0)->set_subpixel_positioning((TextServer::SubpixelPositioning)import_settings_data->get("subpixel_positioning").operator int()); + font_preview->get_data(0)->set_embolden(import_settings_data->get("embolden")); + font_preview->get_data(0)->set_transform(import_settings_data->get("transform")); font_preview->get_data(0)->set_oversampling(import_settings_data->get("oversampling")); } font_preview_label->add_theme_font_override("font", font_preview); @@ -1335,6 +1346,8 @@ DynamicFontImportSettings::DynamicFontImportSettings() { options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false)); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1)); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One half of a pixel,One quarter of a pixel"), 1)); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "embolden", PROPERTY_HINT_RANGE, "-2,2,0.01"), 0.f)); + options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::TRANSFORM2D, "transform"), Transform2D())); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0)); options_general.push_back(ResourceImporter::ImportOption(PropertyInfo(Variant::BOOL, "compress", PROPERTY_HINT_NONE, ""), false)); diff --git a/editor/import/resource_importer_dynamic_font.cpp b/editor/import/resource_importer_dynamic_font.cpp index 70fc87ea3f..077b94bb4e 100644 --- a/editor/import/resource_importer_dynamic_font.cpp +++ b/editor/import/resource_importer_dynamic_font.cpp @@ -109,6 +109,8 @@ void ResourceImporterDynamicFont::get_import_options(const String &p_path, List< r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force_autohinter"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal"), 1)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "subpixel_positioning", PROPERTY_HINT_ENUM, "Disabled,Auto,One half of a pixel,One quarter of a pixel"), 1)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "embolden", PROPERTY_HINT_RANGE, "-2,2,0.01"), 0.f)); + r_options->push_back(ImportOption(PropertyInfo(Variant::TRANSFORM2D, "transform"), Transform2D())); r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "compress"), true)); @@ -186,6 +188,8 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str int hinting = p_options["hinting"]; int subpixel_positioning = p_options["subpixel_positioning"]; real_t oversampling = p_options["oversampling"]; + real_t embolden = p_options["embolden"]; + Transform2D transform = p_options["transform"]; // Load base font data. Vector<uint8_t> data = FileAccess::get_file_as_array(p_source_file); @@ -202,6 +206,8 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str font->set_fixed_size(0); font->set_force_autohinter(autohinter); font->set_subpixel_positioning((TextServer::SubpixelPositioning)subpixel_positioning); + font->set_embolden(embolden); + font->set_transform(transform); font->set_hinting((TextServer::Hinting)hinting); font->set_oversampling(oversampling); diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp index 7071042818..9ddee9c058 100644 --- a/editor/import/resource_importer_layered_texture.cpp +++ b/editor/import/resource_importer_layered_texture.cpp @@ -85,16 +85,16 @@ void ResourceImporterLayeredTexture::get_recognized_extensions(List<String> *p_e String ResourceImporterLayeredTexture::get_save_extension() const { switch (mode) { case MODE_CUBEMAP: { - return "scube"; + return "ccube"; } break; case MODE_2D_ARRAY: { - return "stexarray"; + return "ctexarray"; } break; case MODE_CUBEMAP_ARRAY: { - return "scubearray"; + return "ccubearray"; } break; case MODE_3D: { - return "stex3d"; + return "ctex3d"; } break; } @@ -104,16 +104,16 @@ String ResourceImporterLayeredTexture::get_save_extension() const { String ResourceImporterLayeredTexture::get_resource_type() const { switch (mode) { case MODE_CUBEMAP: { - return "StreamCubemap"; + return "CompressedCubemap"; } break; case MODE_2D_ARRAY: { - return "StreamTexture2DArray"; + return "CompressedTexture2DArray"; } break; case MODE_CUBEMAP_ARRAY: { - return "StreamCubemapArray"; + return "CompressedCubemapArray"; } break; case MODE_3D: { - return "StreamTexture3D"; + return "CompressedTexture3D"; } break; } ERR_FAIL_V(String()); @@ -263,7 +263,7 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons f->store_8('T'); f->store_8('L'); - f->store_32(StreamTextureLayered::FORMAT_VERSION); + f->store_32(CompressedTextureLayered::FORMAT_VERSION); f->store_32(p_images.size()); // For 2d layers or 3d depth. f->store_32(mode); f->store_32(0); @@ -274,11 +274,11 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons f->store_32(0); for (int i = 0; i < p_images.size(); i++) { - ResourceImporterTexture::save_to_stex_format(f, p_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy); + ResourceImporterTexture::save_to_ctex_format(f, p_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy); } for (int i = 0; i < mipmap_images.size(); i++) { - ResourceImporterTexture::save_to_stex_format(f, mipmap_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy); + ResourceImporterTexture::save_to_ctex_format(f, mipmap_images[i], ResourceImporterTexture::CompressMode(p_compress_mode), used_channels, p_vram_compression, p_lossy); } f->close(); @@ -393,7 +393,7 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const texture_import->bptc_ldr = bptc_ldr; texture_import->mipmaps = mipmaps; texture_import->used_channels = used_channels; - _check_compress_stex(texture_import); + _check_compress_ctex(texture_import); if (r_metadata) { Dictionary metadata; metadata["vram_texture"] = compress_mode == COMPRESS_VRAM_COMPRESSED; @@ -474,7 +474,7 @@ ResourceImporterLayeredTexture::ResourceImporterLayeredTexture() { ResourceImporterLayeredTexture::~ResourceImporterLayeredTexture() { } -void ResourceImporterLayeredTexture::_check_compress_stex(Ref<LayeredTextureImport> r_texture_import) { +void ResourceImporterLayeredTexture::_check_compress_ctex(Ref<LayeredTextureImport> r_texture_import) { String extension = get_save_extension(); ERR_FAIL_NULL(r_texture_import->csource); if (r_texture_import->compress_mode != COMPRESS_VRAM_COMPRESSED) { @@ -544,5 +544,5 @@ void ResourceImporterLayeredTexture::_check_compress_stex(Ref<LayeredTextureImpo } return; } - EditorNode::add_io_error("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC."); + EditorNode::add_io_error(TTR("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC.")); } diff --git a/editor/import/resource_importer_layered_texture.h b/editor/import/resource_importer_layered_texture.h index edd981c63d..5791914a9b 100644 --- a/editor/import/resource_importer_layered_texture.h +++ b/editor/import/resource_importer_layered_texture.h @@ -35,7 +35,7 @@ #include "core/io/resource_importer.h" #include "core/object/ref_counted.h" -class StreamTexture2D; +class CompressedTexture2D; class LayeredTextureImport : public RefCounted { GDCLASS(LayeredTextureImport, RefCounted); @@ -87,7 +87,7 @@ protected: static ResourceImporterLayeredTexture *singleton; public: - void _check_compress_stex(Ref<LayeredTextureImport> r_texture_import); + void _check_compress_ctex(Ref<LayeredTextureImport> r_texture_import); static ResourceImporterLayeredTexture *get_singleton() { return singleton; } virtual String get_importer_name() const override; diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp index 35a20e85c1..1dec4b00bb 100644 --- a/editor/import/resource_importer_texture.cpp +++ b/editor/import/resource_importer_texture.cpp @@ -37,7 +37,7 @@ #include "editor/editor_file_system.h" #include "editor/editor_node.h" -void ResourceImporterTexture::_texture_reimport_roughness(const Ref<StreamTexture2D> &p_tex, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_channel) { +void ResourceImporterTexture::_texture_reimport_roughness(const Ref<CompressedTexture2D> &p_tex, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_channel) { ERR_FAIL_COND(p_tex.is_null()); MutexLock lock(singleton->mutex); @@ -53,7 +53,7 @@ void ResourceImporterTexture::_texture_reimport_roughness(const Ref<StreamTextur singleton->make_flags[path].normal_path_for_roughness = p_normal_path; } -void ResourceImporterTexture::_texture_reimport_3d(const Ref<StreamTexture2D> &p_tex) { +void ResourceImporterTexture::_texture_reimport_3d(const Ref<CompressedTexture2D> &p_tex) { ERR_FAIL_COND(p_tex.is_null()); MutexLock lock(singleton->mutex); @@ -67,7 +67,7 @@ void ResourceImporterTexture::_texture_reimport_3d(const Ref<StreamTexture2D> &p singleton->make_flags[path].flags |= MAKE_3D_FLAG; } -void ResourceImporterTexture::_texture_reimport_normal(const Ref<StreamTexture2D> &p_tex) { +void ResourceImporterTexture::_texture_reimport_normal(const Ref<CompressedTexture2D> &p_tex) { ERR_FAIL_COND(p_tex.is_null()); MutexLock lock(singleton->mutex); @@ -153,11 +153,11 @@ void ResourceImporterTexture::get_recognized_extensions(List<String> *p_extensio } String ResourceImporterTexture::get_save_extension() const { - return "stex"; + return "ctex"; } String ResourceImporterTexture::get_resource_type() const { - return "StreamTexture2D"; + return "CompressedTexture2D"; } bool ResourceImporterTexture::get_option_visibility(const String &p_path, const String &p_option, const Map<StringName, Variant> &p_options) const { @@ -225,13 +225,13 @@ void ResourceImporterTexture::get_import_options(const String &p_path, List<Impo } } -void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality) { +void ResourceImporterTexture::save_to_ctex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality) { switch (p_compress_mode) { case COMPRESS_LOSSLESS: { bool lossless_force_png = ProjectSettings::get_singleton()->get("rendering/textures/lossless_compression/force_png") || !Image::_webp_mem_loader_func; // WebP module disabled. bool use_webp = !lossless_force_png && p_image->get_width() <= 16383 && p_image->get_height() <= 16383; // WebP has a size limit - f->store_32(use_webp ? StreamTexture2D::DATA_FORMAT_WEBP : StreamTexture2D::DATA_FORMAT_PNG); + f->store_32(use_webp ? CompressedTexture2D::DATA_FORMAT_WEBP : CompressedTexture2D::DATA_FORMAT_PNG); f->store_16(p_image->get_width()); f->store_16(p_image->get_height()); f->store_32(p_image->get_mipmap_count()); @@ -253,7 +253,7 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image } break; case COMPRESS_LOSSY: { - f->store_32(StreamTexture2D::DATA_FORMAT_WEBP); + f->store_32(CompressedTexture2D::DATA_FORMAT_WEBP); f->store_16(p_image->get_width()); f->store_16(p_image->get_height()); f->store_32(p_image->get_mipmap_count()); @@ -273,7 +273,7 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image image->compress_from_channels(p_compress_format, p_channels, p_lossy_quality); - f->store_32(StreamTexture2D::DATA_FORMAT_IMAGE); + f->store_32(CompressedTexture2D::DATA_FORMAT_IMAGE); f->store_16(image->get_width()); f->store_16(image->get_height()); f->store_32(image->get_mipmap_count()); @@ -285,7 +285,7 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image f->store_buffer(r, dl); } break; case COMPRESS_VRAM_UNCOMPRESSED: { - f->store_32(StreamTexture2D::DATA_FORMAT_IMAGE); + f->store_32(CompressedTexture2D::DATA_FORMAT_IMAGE); f->store_16(p_image->get_width()); f->store_16(p_image->get_height()); f->store_32(p_image->get_mipmap_count()); @@ -299,7 +299,7 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image } break; case COMPRESS_BASIS_UNIVERSAL: { - f->store_32(StreamTexture2D::DATA_FORMAT_BASIS_UNIVERSAL); + f->store_32(CompressedTexture2D::DATA_FORMAT_BASIS_UNIVERSAL); f->store_16(p_image->get_width()); f->store_16(p_image->get_height()); f->store_32(p_image->get_mipmap_count()); @@ -317,7 +317,7 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image } } -void ResourceImporterTexture::_save_stex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_roughness, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel) { +void ResourceImporterTexture::_save_ctex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_roughness, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel) { FileAccess *f = FileAccess::open(p_to_path, FileAccess::WRITE); ERR_FAIL_NULL(f); f->store_8('G'); @@ -326,26 +326,26 @@ void ResourceImporterTexture::_save_stex(const Ref<Image> &p_image, const String f->store_8('2'); //godot streamable texture 2D //format version - f->store_32(StreamTexture2D::FORMAT_VERSION); + f->store_32(CompressedTexture2D::FORMAT_VERSION); //texture may be resized later, so original size must be saved first f->store_32(p_image->get_width()); f->store_32(p_image->get_height()); uint32_t flags = 0; if (p_streamable) { - flags |= StreamTexture2D::FORMAT_BIT_STREAM; + flags |= CompressedTexture2D::FORMAT_BIT_STREAM; } if (p_mipmaps) { - flags |= StreamTexture2D::FORMAT_BIT_HAS_MIPMAPS; //mipmaps bit + flags |= CompressedTexture2D::FORMAT_BIT_HAS_MIPMAPS; //mipmaps bit } if (p_detect_3d) { - flags |= StreamTexture2D::FORMAT_BIT_DETECT_3D; + flags |= CompressedTexture2D::FORMAT_BIT_DETECT_3D; } if (p_detect_roughness) { - flags |= StreamTexture2D::FORMAT_BIT_DETECT_ROUGNESS; + flags |= CompressedTexture2D::FORMAT_BIT_DETECT_ROUGNESS; } if (p_detect_normal) { - flags |= StreamTexture2D::FORMAT_BIT_DETECT_NORMAL; + flags |= CompressedTexture2D::FORMAT_BIT_DETECT_NORMAL; } f->store_32(flags); @@ -394,7 +394,7 @@ void ResourceImporterTexture::_save_stex(const Ref<Image> &p_image, const String Image::UsedChannels used_channels = image->detect_used_channels(csource); - save_to_stex_format(f, image, p_compress_mode, used_channels, p_vram_compression, p_lossy_quality); + save_to_ctex_format(f, image, p_compress_mode, used_channels, p_vram_compression, p_lossy_quality); memdelete(f); } @@ -540,29 +540,29 @@ Error ResourceImporterTexture::import(const String &p_source_file, const String if (!bptc_ldr && can_s3tc && is_ldr) { image_compress_mode = Image::COMPRESS_S3TC; } - _save_stex(image, p_save_path + ".s3tc.stex", compress_mode, lossy, image_compress_mode, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel); + _save_ctex(image, p_save_path + ".s3tc.ctex", compress_mode, lossy, image_compress_mode, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel); r_platform_variants->push_back("s3tc"); formats_imported.push_back("s3tc"); } if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc2")) { - _save_stex(image, p_save_path + ".etc2.stex", compress_mode, lossy, Image::COMPRESS_ETC2, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel); + _save_ctex(image, p_save_path + ".etc2.ctex", compress_mode, lossy, Image::COMPRESS_ETC2, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel); r_platform_variants->push_back("etc2"); formats_imported.push_back("etc2"); } if (ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_etc")) { - _save_stex(image, p_save_path + ".etc.stex", compress_mode, lossy, Image::COMPRESS_ETC, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel); + _save_ctex(image, p_save_path + ".etc.ctex", compress_mode, lossy, Image::COMPRESS_ETC, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, true, mipmap_limit, normal_image, roughness_channel); r_platform_variants->push_back("etc"); formats_imported.push_back("etc"); } if (!ok_on_pc) { - EditorNode::add_io_error("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC."); + EditorNode::add_io_error(TTR("Warning, no suitable PC VRAM compression enabled in Project Settings. This texture will not display correctly on PC.")); } } else { //import normally - _save_stex(image, p_save_path + ".stex", compress_mode, lossy, Image::COMPRESS_S3TC /*this is ignored */, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel); + _save_ctex(image, p_save_path + ".ctex", compress_mode, lossy, Image::COMPRESS_S3TC /*this is ignored */, mipmaps, stream, detect_3d, detect_roughness, detect_normal, force_normal, srgb_friendly_pack, false, mipmap_limit, normal_image, roughness_channel); } if (r_metadata) { @@ -638,9 +638,9 @@ ResourceImporterTexture *ResourceImporterTexture::singleton = nullptr; ResourceImporterTexture::ResourceImporterTexture() { singleton = this; - StreamTexture2D::request_3d_callback = _texture_reimport_3d; - StreamTexture2D::request_roughness_callback = _texture_reimport_roughness; - StreamTexture2D::request_normal_callback = _texture_reimport_normal; + CompressedTexture2D::request_3d_callback = _texture_reimport_3d; + CompressedTexture2D::request_roughness_callback = _texture_reimport_roughness; + CompressedTexture2D::request_normal_callback = _texture_reimport_normal; } ResourceImporterTexture::~ResourceImporterTexture() { diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h index ea2318fb33..b3a68260fc 100644 --- a/editor/import/resource_importer_texture.h +++ b/editor/import/resource_importer_texture.h @@ -37,7 +37,7 @@ #include "scene/resources/texture.h" #include "servers/rendering_server.h" -class StreamTexture2D; +class CompressedTexture2D; class ResourceImporterTexture : public ResourceImporter { GDCLASS(ResourceImporterTexture, ResourceImporter); @@ -67,17 +67,17 @@ protected: Map<StringName, MakeInfo> make_flags; - static void _texture_reimport_roughness(const Ref<StreamTexture2D> &p_tex, const String &p_normal_path, RenderingServer::TextureDetectRoughnessChannel p_channel); - static void _texture_reimport_3d(const Ref<StreamTexture2D> &p_tex); - static void _texture_reimport_normal(const Ref<StreamTexture2D> &p_tex); + static void _texture_reimport_roughness(const Ref<CompressedTexture2D> &p_tex, const String &p_normal_path, RenderingServer::TextureDetectRoughnessChannel p_channel); + static void _texture_reimport_3d(const Ref<CompressedTexture2D> &p_tex); + static void _texture_reimport_normal(const Ref<CompressedTexture2D> &p_tex); static ResourceImporterTexture *singleton; static const char *compression_formats[]; - void _save_stex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_srgb, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel); + void _save_ctex(const Ref<Image> &p_image, const String &p_to_path, CompressMode p_compress_mode, float p_lossy_quality, Image::CompressMode p_vram_compression, bool p_mipmaps, bool p_streamable, bool p_detect_3d, bool p_detect_srgb, bool p_detect_normal, bool p_force_normal, bool p_srgb_friendly, bool p_force_po2_for_compressed, uint32_t p_limit_mipmap, const Ref<Image> &p_normal, Image::RoughnessChannel p_roughness_channel); public: - static void save_to_stex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality); + static void save_to_ctex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality); static ResourceImporterTexture *get_singleton() { return singleton; } virtual String get_importer_name() const override; diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp index 4e06253041..f500268ad3 100644 --- a/editor/import/scene_import_settings.cpp +++ b/editor/import/scene_import_settings.cpp @@ -1269,8 +1269,8 @@ SceneImportSettings::SceneImportSettings() { item_save_path = memnew(EditorFileDialog); item_save_path->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); - item_save_path->add_filter("*.tres;Text Resource"); - item_save_path->add_filter("*.res;Binary Resource"); + item_save_path->add_filter("*.tres; " + TTR("Text Resource")); + item_save_path->add_filter("*.res; " + TTR("Binary Resource")); add_child(item_save_path); item_save_path->connect("file_selected", callable_mp(this, &SceneImportSettings::_save_path_changed)); diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp index 72cc33048c..9f1daac69f 100644 --- a/editor/import_dock.cpp +++ b/editor/import_dock.cpp @@ -128,7 +128,7 @@ void ImportDock::set_edit_path(const String &p_path) { for (const Pair<String, String> &E : importer_names) { import_as->add_item(E.first); - import_as->set_item_metadata(import_as->get_item_count() - 1, E.second); + import_as->set_item_metadata(-1, E.second); if (E.second == importer_name) { import_as->select(import_as->get_item_count() - 1); } @@ -149,7 +149,7 @@ void ImportDock::set_edit_path(const String &p_path) { void ImportDock::_add_keep_import_option(const String &p_importer_name) { import_as->add_separator(); import_as->add_item(TTR("Keep File (No Import)")); - import_as->set_item_metadata(import_as->get_item_count() - 1, "keep"); + import_as->set_item_metadata(-1, "keep"); if (p_importer_name == "keep") { import_as->select(import_as->get_item_count() - 1); } @@ -286,7 +286,7 @@ void ImportDock::set_edit_multiple_paths(const Vector<String> &p_paths) { for (const Pair<String, String> &E : importer_names) { import_as->add_item(E.first); - import_as->set_item_metadata(import_as->get_item_count() - 1, E.second); + import_as->set_item_metadata(-1, E.second); if (E.second == params->importer->get_importer_name()) { import_as->select(import_as->get_item_count() - 1); } diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp index cd9986d527..77594dde78 100644 --- a/editor/localization_editor.cpp +++ b/editor/localization_editor.cpp @@ -473,11 +473,10 @@ void LocalizationEditor::_bind_methods() { LocalizationEditor::LocalizationEditor() { undo_redo = EditorNode::get_undo_redo(); - updating_translations = false; localization_changed = "localization_changed"; TabContainer *translations = memnew(TabContainer); - translations->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + translations->set_tab_alignment(TabBar::ALIGNMENT_LEFT); translations->set_v_size_flags(Control::SIZE_EXPAND_FILL); add_child(translations); diff --git a/editor/localization_editor.h b/editor/localization_editor.h index bde1b894e2..3424ba7c55 100644 --- a/editor/localization_editor.h +++ b/editor/localization_editor.h @@ -56,7 +56,7 @@ class LocalizationEditor : public VBoxContainer { EditorFileDialog *pot_generate_dialog; UndoRedo *undo_redo; - bool updating_translations; + bool updating_translations = false; String localization_changed; void _translation_file_open(); diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp index 48ea3013f7..02cc95e14a 100644 --- a/editor/plugin_config_dialog.cpp +++ b/editor/plugin_config_dialog.cpp @@ -50,7 +50,7 @@ void PluginConfigDialog::_on_confirmed() { String path = "res://addons/" + subfolder_edit->get_text(); if (!_edit_mode) { - DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef d = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (!d || d->make_dir_recursive(path) != OK) { return; } @@ -117,7 +117,7 @@ void PluginConfigDialog::_on_required_text_changed(const String &) { if (name_edit->get_text().is_empty()) { is_valid = false; name_validation->set_texture(invalid_icon); - name_validation->set_tooltip(TTR("Plugin name cannot not be blank.")); + name_validation->set_tooltip(TTR("Plugin name cannot be blank.")); } if (script_edit->get_text().get_extension() != ext) { is_valid = false; @@ -127,7 +127,7 @@ void PluginConfigDialog::_on_required_text_changed(const String &) { if (script_edit->get_text().get_basename().is_empty()) { is_valid = false; script_validation->set_texture(invalid_icon); - script_validation->set_tooltip(TTR("Script name cannot not be blank.")); + script_validation->set_tooltip(TTR("Script name cannot be blank.")); } if (subfolder_edit->get_text().is_empty()) { is_valid = false; diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp index 5a2696fff1..22e0a3dabb 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -292,15 +292,14 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) _commit_action(); return true; } else { - Vector<Vector2> vertices2 = _get_polygon(insert.polygon); - pre_move_edit = vertices2; + pre_move_edit = vertices; edited_point = PosVertex(insert.polygon, insert.vertex + 1, xform.affine_inverse().xform(insert.pos)); - vertices2.insert(edited_point.vertex, edited_point.pos); + vertices.insert(edited_point.vertex, edited_point.pos); selected_point = Vertex(edited_point.polygon, edited_point.vertex); edge_point = PosVertex(); undo_redo->create_action(TTR("Insert Point")); - _action_set_polygon(insert.polygon, vertices2); + _action_set_polygon(insert.polygon, vertices); _commit_action(); return true; } diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp index fe8b462084..94882b3464 100644 --- a/editor/plugins/animation_blend_space_1d_editor.cpp +++ b/editor/plugins/animation_blend_space_1d_editor.cpp @@ -88,7 +88,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_gui_input(const Ref<InputEven } int idx = menu->get_item_count(); - menu->add_item(vformat("Add %s", name), idx); + menu->add_item(vformat(TTR("Add %s"), name), idx); menu->set_item_metadata(idx, E); } diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp index 506a709728..4b7df75aec 100644 --- a/editor/plugins/animation_blend_space_2d_editor.cpp +++ b/editor/plugins/animation_blend_space_2d_editor.cpp @@ -111,7 +111,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven continue; // nope } int idx = menu->get_item_count(); - menu->add_item(vformat("Add %s", name), idx); + menu->add_item(vformat(TTR("Add %s"), name), idx); menu->set_item_metadata(idx, E); } diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index ad126d28f6..ab8e2ca54a 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -156,6 +156,8 @@ void AnimationPlayerEditor::_notification(int p_what) { ITEM_ICON(TOOL_EDIT_TRANSITIONS, "Blend"); ITEM_ICON(TOOL_EDIT_RESOURCE, "Edit"); ITEM_ICON(TOOL_REMOVE_ANIM, "Remove"); + + _update_animation_list_icons(); } break; } } @@ -547,6 +549,7 @@ void AnimationPlayerEditor::_animation_name_edited() { Ref<Animation> anim = player->get_animation(current); Ref<Animation> new_anim = _animation_clone(anim); + new_anim->set_name(new_name); undo_redo->create_action(TTR("Duplicate Animation")); undo_redo->add_do_method(player, "add_animation", new_name, new_anim); @@ -858,22 +861,13 @@ void AnimationPlayerEditor::_update_player() { int active_idx = -1; for (const StringName &E : animlist) { - Ref<Texture2D> icon; - if (E == player->get_autoplay()) { - if (E == SceneStringNames::get_singleton()->RESET) { - icon = autoplay_reset_icon; - } else { - icon = autoplay_icon; - } - } else if (E == SceneStringNames::get_singleton()->RESET) { - icon = reset_icon; - } - animation->add_icon_item(icon, E); + animation->add_item(E); if (player->get_assigned_animation() == E) { active_idx = animation->get_item_count() - 1; } } + _update_animation_list_icons(); updating = false; if (active_idx != -1) { @@ -902,6 +896,25 @@ void AnimationPlayerEditor::_update_player() { _update_animation(); } +void AnimationPlayerEditor::_update_animation_list_icons() { + for (int i = 0; i < animation->get_item_count(); i++) { + String name = animation->get_item_text(i); + + Ref<Texture2D> icon; + if (name == player->get_autoplay()) { + if (name == SceneStringNames::get_singleton()->RESET) { + icon = autoplay_reset_icon; + } else { + icon = autoplay_icon; + } + } else if (name == SceneStringNames::get_singleton()->RESET) { + icon = reset_icon; + } + + animation->set_item_icon(i, icon); + } +} + void AnimationPlayerEditor::edit(AnimationPlayer *p_player) { if (player && pin->is_pressed()) { return; // Ignore, pinned. @@ -1657,11 +1670,11 @@ AnimationPlayerEditor::AnimationPlayerEditor(AnimationPlayerEditorPlugin *p_plug onion_skinning->set_tooltip(TTR("Onion Skinning Options")); onion_skinning->get_popup()->add_separator(TTR("Directions")); onion_skinning->get_popup()->add_check_item(TTR("Past"), ONION_SKINNING_PAST); - onion_skinning->get_popup()->set_item_checked(onion_skinning->get_popup()->get_item_count() - 1, true); + onion_skinning->get_popup()->set_item_checked(-1, true); onion_skinning->get_popup()->add_check_item(TTR("Future"), ONION_SKINNING_FUTURE); onion_skinning->get_popup()->add_separator(TTR("Depth")); onion_skinning->get_popup()->add_radio_check_item(TTR("1 step"), ONION_SKINNING_1_STEP); - onion_skinning->get_popup()->set_item_checked(onion_skinning->get_popup()->get_item_count() - 1, true); + onion_skinning->get_popup()->set_item_checked(-1, true); onion_skinning->get_popup()->add_radio_check_item(TTR("2 steps"), ONION_SKINNING_2_STEPS); onion_skinning->get_popup()->add_radio_check_item(TTR("3 steps"), ONION_SKINNING_3_STEPS); onion_skinning->get_popup()->add_separator(); diff --git a/editor/plugins/animation_player_editor_plugin.h b/editor/plugins/animation_player_editor_plugin.h index 446c4d2f0e..5bb32e25e6 100644 --- a/editor/plugins/animation_player_editor_plugin.h +++ b/editor/plugins/animation_player_editor_plugin.h @@ -196,6 +196,7 @@ class AnimationPlayerEditor : public VBoxContainer { void _list_changed(); void _update_animation(); void _update_player(); + void _update_animation_list_icons(); void _blend_edited(); void _animation_player_changed(Object *p_pl); diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index 6c284f2268..bd0c1afd19 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -108,7 +108,7 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv continue; // nope } int idx = menu->get_item_count(); - menu->add_item(vformat("Add %s", name), idx); + menu->add_item(vformat(TTR("Add %s"), name), idx); menu->set_item_metadata(idx, E); } Ref<AnimationNode> clipb = EditorSettings::get_singleton()->get_resource_clipboard(); @@ -346,29 +346,21 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv state_machine_draw->update(); } - //put ibeam (text cursor) over names to make it clearer that they are editable if (mm.is_valid()) { state_machine_draw->grab_focus(); - bool over_text_now = false; String new_over_node = StringName(); int new_over_node_what = -1; if (tool_select->is_pressed()) { - for (int i = node_rects.size() - 1; i >= 0; i--) { //inverse to draw order - - if (node_rects[i].name.has_point(mm->get_position())) { - over_text_now = true; - break; - } - + for (int i = node_rects.size() - 1; i >= 0; i--) { // Inverse to draw order. if (node_rects[i].node.has_point(mm->get_position())) { new_over_node = node_rects[i].node_name; if (node_rects[i].play.has_point(mm->get_position())) { new_over_node_what = 0; - } - if (node_rects[i].edit.has_point(mm->get_position())) { + } else if (node_rects[i].edit.has_point(mm->get_position())) { new_over_node_what = 1; } + break; } } } @@ -378,16 +370,6 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv over_node_what = new_over_node_what; state_machine_draw->update(); } - - if (over_text != over_text_now) { - if (over_text_now) { - state_machine_draw->set_default_cursor_shape(CURSOR_IBEAM); - } else { - state_machine_draw->set_default_cursor_shape(CURSOR_ARROW); - } - - over_text = over_text_now; - } } Ref<InputEventPanGesture> pan_gesture = p_event; @@ -397,6 +379,23 @@ void AnimationNodeStateMachineEditor::_state_machine_gui_input(const Ref<InputEv } } +Control::CursorShape AnimationNodeStateMachineEditor::get_cursor_shape(const Point2 &p_pos) const { + // Put ibeam (text cursor) over names to make it clearer that they are editable. + Transform2D xform = panel->get_transform() * state_machine_draw->get_transform(); + Point2 pos = xform.xform_inv(p_pos); + Control::CursorShape cursor_shape = get_default_cursor_shape(); + + for (int i = node_rects.size() - 1; i >= 0; i--) { // Inverse to draw order. + if (node_rects[i].node.has_point(pos)) { + if (node_rects[i].name.has_point(pos)) { + cursor_shape = Control::CURSOR_IBEAM; + } + break; + } + } + return cursor_shape; +} + void AnimationNodeStateMachineEditor::_file_opened(const String &p_file) { file_loaded = ResourceLoader::load(p_file); if (file_loaded.is_valid()) { @@ -1287,6 +1286,7 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { panel = memnew(PanelContainer); panel->set_clip_contents(true); + panel->set_mouse_filter(Control::MOUSE_FILTER_PASS); add_child(panel); panel->set_v_size_flags(SIZE_EXPAND_FILL); @@ -1295,6 +1295,7 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { state_machine_draw->connect("gui_input", callable_mp(this, &AnimationNodeStateMachineEditor::_state_machine_gui_input)); state_machine_draw->connect("draw", callable_mp(this, &AnimationNodeStateMachineEditor::_state_machine_draw)); state_machine_draw->set_focus_mode(FOCUS_ALL); + state_machine_draw->set_mouse_filter(Control::MOUSE_FILTER_PASS); state_machine_play_pos = memnew(Control); state_machine_draw->add_child(state_machine_play_pos); @@ -1347,8 +1348,6 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { open_file->connect("file_selected", callable_mp(this, &AnimationNodeStateMachineEditor::_file_opened)); undo_redo = EditorNode::get_undo_redo(); - over_text = false; - over_node_what = -1; dragging_selected_attempt = false; connecting = false; diff --git a/editor/plugins/animation_state_machine_editor.h b/editor/plugins/animation_state_machine_editor.h index 208bd27f8e..03991d00f9 100644 --- a/editor/plugins/animation_state_machine_editor.h +++ b/editor/plugins/animation_state_machine_editor.h @@ -138,7 +138,6 @@ class AnimationNodeStateMachineEditor : public AnimationTreeNodeEditorPlugin { StringName selected_transition_from; StringName selected_transition_to; - bool over_text; StringName over_node; int over_node_what; @@ -185,6 +184,7 @@ public: static AnimationNodeStateMachineEditor *get_singleton() { return singleton; } virtual bool can_edit(const Ref<AnimationNode> &p_node) override; virtual void edit(const Ref<AnimationNode> &p_node) override; + virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override; AnimationNodeStateMachineEditor(); }; diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 9e9915cfa4..fd9b665b20 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -44,8 +44,8 @@ static inline void setup_http_request(HTTPRequest *request) { request->set_use_threads(EDITOR_DEF("asset_library/use_threads", true)); - const String proxy_host = EDITOR_DEF("network/http_proxy/host", ""); - const int proxy_port = EDITOR_DEF("network/http_proxy/port", -1); + const String proxy_host = EDITOR_GET("network/http_proxy/host"); + const int proxy_port = EDITOR_GET("network/http_proxy/port"); request->set_http_proxy(proxy_host, proxy_port); request->set_https_proxy(proxy_host, proxy_port); } @@ -1145,7 +1145,7 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const String name = cat["name"]; int id = cat["id"]; categories->add_item(name); - categories->set_item_metadata(categories->get_item_count() - 1, id); + categories->set_item_metadata(-1, id); category_map[cat["id"]] = name; } } diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index e43d1feb08..d713e70251 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -60,12 +60,12 @@ // Min and Max are power of two in order to play nicely with successive increment. // That way, we can naturally reach a 100% zoom from boundaries. -#define MIN_ZOOM 1. / 128 -#define MAX_ZOOM 128 +constexpr real_t MIN_ZOOM = 1. / 128; +constexpr real_t MAX_ZOOM = 128; #define RULER_WIDTH (15 * EDSCALE) -#define SCALE_HANDLE_DISTANCE 25 -#define MOVE_HANDLE_DISTANCE 25 +constexpr real_t SCALE_HANDLE_DISTANCE = 25; +constexpr real_t MOVE_HANDLE_DISTANCE = 25; class SnapDialog : public ConfirmationDialog { GDCLASS(SnapDialog, ConfirmationDialog); @@ -489,12 +489,12 @@ void CanvasItemEditor::unhandled_key_input(const Ref<InputEvent> &p_ev) { viewport->update(); } - if (k->is_pressed() && !k->is_ctrl_pressed() && !k->is_echo()) { - if ((grid_snap_active || show_grid) && multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->matches_event(p_ev)) { + if (k->is_pressed() && !k->is_ctrl_pressed() && !k->is_echo() && (grid_snap_active || _is_grid_visible())) { + if (multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->matches_event(p_ev)) { // Multiply the grid size grid_step_multiplier = MIN(grid_step_multiplier + 1, 12); viewport->update(); - } else if ((grid_snap_active || show_grid) && divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->matches_event(p_ev)) { + } else if (divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->matches_event(p_ev)) { // Divide the grid size Point2 new_grid_step = grid_step * Math::pow(2.0, grid_step_multiplier - 1); if (new_grid_step.x >= 1.0 && new_grid_step.y >= 1.0) { @@ -938,6 +938,60 @@ void CanvasItemEditor::_reset_create_position() { node_create_position = Point2(); } +bool CanvasItemEditor::_is_grid_visible() const { + switch (grid_visibility) { + case GRID_VISIBILITY_SHOW: + return true; + case GRID_VISIBILITY_SHOW_WHEN_SNAPPING: + return grid_snap_active; + case GRID_VISIBILITY_HIDE: + return false; + } + ERR_FAIL_V_MSG(true, "Unexpected grid_visibility value"); +} + +void CanvasItemEditor::_prepare_grid_menu() { + for (int i = GRID_VISIBILITY_SHOW; i <= GRID_VISIBILITY_HIDE; i++) { + grid_menu->set_item_checked(i, i == grid_visibility); + } +} + +void CanvasItemEditor::_on_grid_menu_id_pressed(int p_id) { + switch (p_id) { + case GRID_VISIBILITY_SHOW: + case GRID_VISIBILITY_SHOW_WHEN_SNAPPING: + case GRID_VISIBILITY_HIDE: + grid_visibility = (GridVisibility)p_id; + viewport->update(); + view_menu->get_popup()->hide(); + return; + } + + // Toggle grid: go to the least restrictive option possible. + if (grid_snap_active) { + switch (grid_visibility) { + case GRID_VISIBILITY_SHOW: + case GRID_VISIBILITY_SHOW_WHEN_SNAPPING: + grid_visibility = GRID_VISIBILITY_HIDE; + break; + case GRID_VISIBILITY_HIDE: + grid_visibility = GRID_VISIBILITY_SHOW_WHEN_SNAPPING; + break; + } + } else { + switch (grid_visibility) { + case GRID_VISIBILITY_SHOW: + grid_visibility = GRID_VISIBILITY_SHOW_WHEN_SNAPPING; + break; + case GRID_VISIBILITY_SHOW_WHEN_SNAPPING: + case GRID_VISIBILITY_HIDE: + grid_visibility = GRID_VISIBILITY_SHOW; + break; + } + } + viewport->update(); +} + bool CanvasItemEditor::_gui_input_rulers_and_guides(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> b = p_event; Ref<InputEventMouseMotion> m = p_event; @@ -1139,6 +1193,8 @@ bool CanvasItemEditor::_gui_input_rulers_and_guides(const Ref<InputEvent> &p_eve } } } + snap_target[0] = SNAP_TARGET_NONE; + snap_target[1] = SNAP_TARGET_NONE; drag_type = DRAG_NONE; viewport->update(); return true; @@ -2160,7 +2216,7 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) { Ref<InputEventKey> k = p_event; if (drag_type == DRAG_NONE) { - if (b.is_valid() && + if (b.is_valid() && b->is_pressed() && ((b->get_button_index() == MouseButton::RIGHT && b->is_alt_pressed() && tool == TOOL_SELECT) || (b->get_button_index() == MouseButton::LEFT && tool == TOOL_LIST_SELECT))) { // Popup the selection menu list @@ -2726,7 +2782,7 @@ void CanvasItemEditor::_draw_rulers() { // The rule transform Transform2D ruler_transform = Transform2D(); - if (show_grid || grid_snap_active) { + if (grid_snap_active || _is_grid_visible()) { List<CanvasItem *> selection = _get_edited_canvas_items(); if (snap_relative && selection.size() > 0) { ruler_transform.translate(_get_encompassing_rect_from_list(selection).position); @@ -2806,7 +2862,7 @@ void CanvasItemEditor::_draw_rulers() { } void CanvasItemEditor::_draw_grid() { - if (show_grid || grid_snap_active) { + if (_is_grid_visible()) { // Draw the grid Vector2 real_grid_offset; const List<CanvasItem *> selection = _get_edited_canvas_items(); @@ -3580,7 +3636,7 @@ void CanvasItemEditor::_draw_locks_and_groups(Node *p_node, const Transform2D &p return; } CanvasItem *canvas_item = Object::cast_to<CanvasItem>(p_node); - if (canvas_item && !canvas_item->is_visible()) { + if (canvas_item && !canvas_item->is_visible_in_tree()) { return; } @@ -4137,12 +4193,6 @@ void CanvasItemEditor::_update_override_camera_button(bool p_game_running) { void CanvasItemEditor::_popup_callback(int p_op) { last_option = MenuOption(p_op); switch (p_op) { - case SHOW_GRID: { - show_grid = !show_grid; - int idx = view_menu->get_popup()->get_item_index(SHOW_GRID); - view_menu->get_popup()->set_item_checked(idx, show_grid); - viewport->update(); - } break; case SHOW_ORIGIN: { show_origin = !show_origin; int idx = view_menu->get_popup()->get_item_index(SHOW_ORIGIN); @@ -4615,7 +4665,7 @@ Dictionary CanvasItemEditor::get_state() const { state["snap_node_center"] = snap_node_center; state["snap_other_nodes"] = snap_other_nodes; state["snap_guides"] = snap_guides; - state["show_grid"] = show_grid; + state["grid_visibility"] = grid_visibility; state["show_origin"] = show_origin; state["show_viewport"] = show_viewport; state["show_rulers"] = show_rulers; @@ -4717,10 +4767,8 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { smartsnap_config_popup->set_item_checked(idx, snap_guides); } - if (state.has("show_grid")) { - show_grid = state["show_grid"]; - int idx = view_menu->get_popup()->get_item_index(SHOW_GRID); - view_menu->get_popup()->set_item_checked(idx, show_grid); + if (state.has("grid_visibility")) { + grid_visibility = (GridVisibility)(int)(state["grid_visibility"]); } if (state.has("show_origin")) { @@ -5130,7 +5178,19 @@ CanvasItemEditor::CanvasItemEditor() { p = view_menu->get_popup(); p->set_hide_on_checkable_item_selection(false); - p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_grid", TTR("Always Show Grid"), Key::NUMBERSIGN), SHOW_GRID); + + grid_menu = memnew(PopupMenu); + grid_menu->connect("about_to_popup", callable_mp(this, &CanvasItemEditor::_prepare_grid_menu)); + grid_menu->connect("id_pressed", callable_mp(this, &CanvasItemEditor::_on_grid_menu_id_pressed)); + grid_menu->set_name("GridMenu"); + grid_menu->add_radio_check_item(TTR("Show"), GRID_VISIBILITY_SHOW); + grid_menu->add_radio_check_item(TTR("Show When Snapping"), GRID_VISIBILITY_SHOW_WHEN_SNAPPING); + grid_menu->add_radio_check_item(TTR("Hide"), GRID_VISIBILITY_HIDE); + grid_menu->add_separator(); + grid_menu->add_shortcut(ED_SHORTCUT("canvas_item_editor/toggle_grid", TTR("Toggle Grid"), KeyModifierMask::CMD | Key::APOSTROPHE)); + p->add_child(grid_menu); + p->add_submenu_item(TTR("Grid"), "GridMenu"); + p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_helpers", TTR("Show Helpers"), Key::H), SHOW_HELPERS); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_rulers", TTR("Show Rulers")), SHOW_RULERS); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/show_guides", TTR("Show Guides"), Key::Y), SHOW_GUIDES); diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h index e7c265ee02..1a9d49a4a8 100644 --- a/editor/plugins/canvas_item_editor_plugin.h +++ b/editor/plugins/canvas_item_editor_plugin.h @@ -116,7 +116,6 @@ private: SNAP_RELATIVE, SNAP_CONFIGURE, SNAP_USE_PIXEL, - SHOW_GRID, SHOW_HELPERS, SHOW_RULERS, SHOW_GUIDES, @@ -175,6 +174,12 @@ private: DRAG_KEY_MOVE }; + enum GridVisibility { + GRID_VISIBILITY_SHOW, + GRID_VISIBILITY_SHOW_WHEN_SNAPPING, + GRID_VISIBILITY_HIDE, + }; + bool selection_menu_additive_selection; Tool tool = TOOL_SELECT; @@ -190,7 +195,7 @@ private: HBoxContainer *hbc_context_menu; Transform2D transform; - bool show_grid = false; + GridVisibility grid_visibility = GRID_VISIBILITY_SHOW_WHEN_SNAPPING; bool show_rulers = true; bool show_guides = true; bool show_origin = true; @@ -314,6 +319,7 @@ private: MenuButton *skeleton_menu; Button *override_camera_button; MenuButton *view_menu; + PopupMenu *grid_menu; HBoxContainer *animation_hb; MenuButton *animation_menu; @@ -390,6 +396,9 @@ private: void _node_created(Node *p_node); void _reset_create_position(); void _update_editor_settings(); + bool _is_grid_visible() const; + void _prepare_grid_menu(); + void _on_grid_menu_id_pressed(int p_id); UndoRedo *undo_redo; diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp index 501becac57..c8d5aa3fdc 100644 --- a/editor/plugins/debugger_editor_plugin.cpp +++ b/editor/plugins/debugger_editor_plugin.cpp @@ -63,30 +63,24 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(MenuButton *p_debug_menu) { PopupMenu *p = debug_menu->get_popup(); p->set_hide_on_checkable_item_selection(false); p->add_check_shortcut(ED_SHORTCUT("editor/deploy_with_remote_debug", TTR("Deploy with Remote Debug")), RUN_DEPLOY_REMOTE_DEBUG); - p->set_item_tooltip( - p->get_item_count() - 1, + p->set_item_tooltip(-1, TTR("When this option is enabled, using one-click deploy will make the executable attempt to connect to this computer's IP so the running project can be debugged.\nThis option is intended to be used for remote debugging (typically with a mobile device).\nYou don't need to enable it to use the GDScript debugger locally.")); p->add_check_shortcut(ED_SHORTCUT("editor/small_deploy_with_network_fs", TTR("Small Deploy with Network Filesystem")), RUN_FILE_SERVER); - p->set_item_tooltip( - p->get_item_count() - 1, + p->set_item_tooltip(-1, TTR("When this option is enabled, using one-click deploy for Android will only export an executable without the project data.\nThe filesystem will be provided from the project by the editor over the network.\nOn Android, deploying will use the USB cable for faster performance. This option speeds up testing for projects with large assets.")); p->add_separator(); p->add_check_shortcut(ED_SHORTCUT("editor/visible_collision_shapes", TTR("Visible Collision Shapes")), RUN_DEBUG_COLLISONS); - p->set_item_tooltip( - p->get_item_count() - 1, + p->set_item_tooltip(-1, TTR("When this option is enabled, collision shapes and raycast nodes (for 2D and 3D) will be visible in the running project.")); p->add_check_shortcut(ED_SHORTCUT("editor/visible_navigation", TTR("Visible Navigation")), RUN_DEBUG_NAVIGATION); - p->set_item_tooltip( - p->get_item_count() - 1, + p->set_item_tooltip(-1, TTR("When this option is enabled, navigation meshes and polygons will be visible in the running project.")); p->add_separator(); p->add_check_shortcut(ED_SHORTCUT("editor/sync_scene_changes", TTR("Synchronize Scene Changes")), RUN_LIVE_DEBUG); - p->set_item_tooltip( - p->get_item_count() - 1, + p->set_item_tooltip(-1, TTR("When this option is enabled, any changes made to the scene in the editor will be replicated in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled.")); p->add_check_shortcut(ED_SHORTCUT("editor/sync_script_changes", TTR("Synchronize Script Changes")), RUN_RELOAD_SCRIPTS); - p->set_item_tooltip( - p->get_item_count() - 1, + p->set_item_tooltip(-1, TTR("When this option is enabled, any script that is saved will be reloaded in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled.")); // Multi-instance, start/stop diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp index 293d1c3913..35cbff53f4 100644 --- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp +++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp @@ -166,20 +166,20 @@ void GPUParticles3DEditorBase::_node_selected(const NodePath &p_path) { return; } - VisualInstance3D *vi = Object::cast_to<VisualInstance3D>(sel); - if (!vi) { + MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(sel); + if (!mi || mi->get_mesh().is_null()) { EditorNode::get_singleton()->show_warning(vformat(TTR("\"%s\" doesn't contain geometry."), sel->get_name())); return; } - geometry = vi->get_faces(VisualInstance3D::FACES_SOLID); + geometry = mi->get_mesh()->get_faces(); if (geometry.size() == 0) { EditorNode::get_singleton()->show_warning(vformat(TTR("\"%s\" doesn't contain face geometry."), sel->get_name())); return; } - Transform3D geom_xform = base_node->get_global_transform().affine_inverse() * vi->get_global_transform(); + Transform3D geom_xform = base_node->get_global_transform().affine_inverse() * mi->get_global_transform(); int gc = geometry.size(); Face3 *w = geometry.ptrw(); diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp index affe10a01d..643a470425 100644 --- a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp +++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp @@ -152,7 +152,7 @@ void GPUParticlesCollisionSDF3DEditorPlugin::_sdf_save_path_and_bake(const Strin } config->set_value("remap", "importer", "3d_texture"); - config->set_value("remap", "type", "StreamTexture3D"); + config->set_value("remap", "type", "CompressedTexture3D"); if (!config->has_section_key("params", "compress/mode")) { config->set_value("params", "compress/mode", 3); //user may want another compression, so leave it be } diff --git a/editor/plugins/lightmap_gi_editor_plugin.cpp b/editor/plugins/lightmap_gi_editor_plugin.cpp index 5992e52162..aef97f059a 100644 --- a/editor/plugins/lightmap_gi_editor_plugin.cpp +++ b/editor/plugins/lightmap_gi_editor_plugin.cpp @@ -138,7 +138,7 @@ LightmapGIEditorPlugin::LightmapGIEditorPlugin() { file_dialog = memnew(EditorFileDialog); file_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE); - file_dialog->add_filter("*.lmbake ; LightMap Bake"); + file_dialog->add_filter("*.lmbake ; " + TTR("LightMap Bake")); file_dialog->set_title(TTR("Select lightmap bake file:")); file_dialog->connect("file_selected", callable_mp(this, &LightmapGIEditorPlugin::_bake_select_file)); bake->add_child(file_dialog); diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp index 64540ac157..8f285cb7f9 100644 --- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp +++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp @@ -447,16 +447,16 @@ MeshInstance3DEditor::MeshInstance3DEditor() { options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("MeshInstance3D"), SNAME("EditorIcons"))); options->get_popup()->add_item(TTR("Create Trimesh Static Body"), MENU_OPTION_CREATE_STATIC_TRIMESH_BODY); - options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a StaticBody3D and assigns a polygon-based collision shape to it automatically.\nThis is the most accurate (but slowest) option for collision detection.")); + options->get_popup()->set_item_tooltip(-1, TTR("Creates a StaticBody3D and assigns a polygon-based collision shape to it automatically.\nThis is the most accurate (but slowest) option for collision detection.")); options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Create Trimesh Collision Sibling"), MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE); - options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a polygon-based collision shape.\nThis is the most accurate (but slowest) option for collision detection.")); + options->get_popup()->set_item_tooltip(-1, TTR("Creates a polygon-based collision shape.\nThis is the most accurate (but slowest) option for collision detection.")); options->get_popup()->add_item(TTR("Create Single Convex Collision Sibling"), MENU_OPTION_CREATE_SINGLE_CONVEX_COLLISION_SHAPE); - options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a single convex collision shape.\nThis is the fastest (but least accurate) option for collision detection.")); + options->get_popup()->set_item_tooltip(-1, TTR("Creates a single convex collision shape.\nThis is the fastest (but least accurate) option for collision detection.")); options->get_popup()->add_item(TTR("Create Simplified Convex Collision Sibling"), MENU_OPTION_CREATE_SIMPLIFIED_CONVEX_COLLISION_SHAPE); - options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a simplified convex collision shape.\nThis is similar to single collision shape, but can result in a simpler geometry in some cases, at the cost of accuracy.")); + options->get_popup()->set_item_tooltip(-1, TTR("Creates a simplified convex collision shape.\nThis is similar to single collision shape, but can result in a simpler geometry in some cases, at the cost of accuracy.")); options->get_popup()->add_item(TTR("Create Multiple Convex Collision Siblings"), MENU_OPTION_CREATE_MULTIPLE_CONVEX_COLLISION_SHAPES); - options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a polygon-based collision shape.\nThis is a performance middle-ground between a single convex collision and a polygon-based collision.")); + options->get_popup()->set_item_tooltip(-1, TTR("Creates a polygon-based collision shape.\nThis is a performance middle-ground between a single convex collision and a polygon-based collision.")); options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Create Navigation Mesh"), MENU_OPTION_CREATE_NAVMESH); options->get_popup()->add_separator(); diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp index 3d40755b7a..41e3471a78 100644 --- a/editor/plugins/mesh_library_editor_plugin.cpp +++ b/editor/plugins/mesh_library_editor_plugin.cpp @@ -288,9 +288,9 @@ MeshLibraryEditor::MeshLibraryEditor() { cd_remove->get_ok_button()->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_remove_confirm)); cd_update = memnew(ConfirmationDialog); add_child(cd_update); - cd_update->get_ok_button()->set_text("Apply without Transforms"); + cd_update->get_ok_button()->set_text(TTR("Apply without Transforms")); cd_update->get_ok_button()->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(false)); - cd_update->add_button("Apply with Transforms")->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(true)); + cd_update->add_button(TTR("Apply with Transforms"))->connect("pressed", callable_mp(this, &MeshLibraryEditor::_menu_update_confirm), varray(true)); } void MeshLibraryEditorPlugin::edit(Object *p_node) { @@ -317,7 +317,6 @@ void MeshLibraryEditorPlugin::make_visible(bool p_visible) { } MeshLibraryEditorPlugin::MeshLibraryEditorPlugin() { - EDITOR_DEF("editors/grid_map/preview_size", 64); mesh_library_editor = memnew(MeshLibraryEditor); EditorNode::get_singleton()->get_main_control()->add_child(mesh_library_editor); diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp index 72f3b6a06e..850c673c12 100644 --- a/editor/plugins/multimesh_editor_plugin.cpp +++ b/editor/plugins/multimesh_editor_plugin.cpp @@ -105,9 +105,9 @@ void MultiMeshEditor::_populate() { return; } - GeometryInstance3D *ss_instance = Object::cast_to<MeshInstance3D>(ss_node); + MeshInstance3D *ss_instance = Object::cast_to<MeshInstance3D>(ss_node); - if (!ss_instance) { + if (!ss_instance || !ss_instance->get_mesh().is_valid()) { err_dialog->set_text(TTR("Surface source is invalid (no geometry).")); err_dialog->popup_centered(); return; @@ -115,7 +115,7 @@ void MultiMeshEditor::_populate() { Transform3D geom_xform = node->get_global_transform().affine_inverse() * ss_instance->get_global_transform(); - Vector<Face3> geometry = ss_instance->get_faces(VisualInstance3D::FACES_SOLID); + Vector<Face3> geometry = ss_instance->get_mesh()->get_faces(); if (geometry.size() == 0) { err_dialog->set_text(TTR("Surface source is invalid (no faces).")); diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp index 23f3087553..51e2f6ff00 100644 --- a/editor/plugins/node_3d_editor_gizmos.cpp +++ b/editor/plugins/node_3d_editor_gizmos.cpp @@ -876,7 +876,7 @@ EditorNode3DGizmo::~EditorNode3DGizmo() { ///// void EditorNode3DGizmoPlugin::create_material(const String &p_name, const Color &p_color, bool p_billboard, bool p_on_top, bool p_use_vertex_color) { - Color instantiated_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/instantiated", Color(0.7, 0.7, 0.7, 0.6)); + Color instantiated_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/instantiated"); Vector<Ref<StandardMaterial3D>> mats; @@ -918,7 +918,7 @@ void EditorNode3DGizmoPlugin::create_material(const String &p_name, const Color } void EditorNode3DGizmoPlugin::create_icon_material(const String &p_name, const Ref<Texture2D> &p_texture, bool p_on_top, const Color &p_albedo) { - Color instantiated_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/instantiated", Color(0.7, 0.7, 0.7, 0.6)); + Color instantiated_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/instantiated"); Vector<Ref<StandardMaterial3D>> icons; @@ -2251,7 +2251,7 @@ void Position3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { //// PhysicalBone3DGizmoPlugin::PhysicalBone3DGizmoPlugin() { - create_material("joint_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1))); + create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint")); } bool PhysicalBone3DGizmoPlugin::has_gizmo(Node3D *p_spatial) { @@ -2384,7 +2384,7 @@ void PhysicalBone3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { ///// RayCast3DGizmoPlugin::RayCast3DGizmoPlugin() { - const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); + const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape"); create_material("shape_material", gizmo_color); const float gizmo_value = gizmo_color.get_v(); const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65); @@ -2438,7 +2438,7 @@ void SpringArm3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { } SpringArm3DGizmoPlugin::SpringArm3DGizmoPlugin() { - Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); + Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape"); create_material("shape_material", gizmo_color); } @@ -2457,7 +2457,7 @@ int SpringArm3DGizmoPlugin::get_priority() const { ///// VehicleWheel3DGizmoPlugin::VehicleWheel3DGizmoPlugin() { - Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); + Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape"); create_material("shape_material", gizmo_color); } @@ -2528,7 +2528,7 @@ void VehicleWheel3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { /////////// SoftDynamicBody3DGizmoPlugin::SoftDynamicBody3DGizmoPlugin() { - Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); + Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape"); create_material("shape_material", gizmo_color); create_handle_material("handles"); } @@ -3177,13 +3177,8 @@ void GPUParticlesCollision3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { continue; } - Vector2 dir; - dir[j] = 1.0; - Vector2 ta, tb; int j_n1 = (j + 1) % 3; int j_n2 = (j + 2) % 3; - ta[j_n1] = 1.0; - tb[j_n2] = 1.0; for (int k = 0; k < 4; k++) { Vector3 from = aabb.position, to = aabb.position; @@ -3976,7 +3971,7 @@ void LightmapProbeGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { //// CollisionObject3DGizmoPlugin::CollisionObject3DGizmoPlugin() { - const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); + const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape"); create_material("shape_material", gizmo_color); const float gizmo_value = gizmo_color.get_v(); const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65); @@ -4026,7 +4021,7 @@ void CollisionObject3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { //// CollisionShape3DGizmoPlugin::CollisionShape3DGizmoPlugin() { - const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); + const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape"); create_material("shape_material", gizmo_color); const float gizmo_value = gizmo_color.get_v(); const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65); @@ -4627,7 +4622,7 @@ void CollisionShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { ///// CollisionPolygon3DGizmoPlugin::CollisionPolygon3DGizmoPlugin() { - const Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1)); + const Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/shape"); create_material("shape_material", gizmo_color); const float gizmo_value = gizmo_color.get_v(); const Color gizmo_color_disabled = Color(gizmo_value, gizmo_value, gizmo_value, 0.65); @@ -5024,7 +5019,7 @@ void JointGizmosDrawer::draw_cone(const Transform3D &p_offset, const Basis &p_ba //// Joint3DGizmoPlugin::Joint3DGizmoPlugin() { - create_material("joint_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1))); + create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint")); create_material("joint_body_a_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint_body_a", Color(0.6, 0.8, 1))); create_material("joint_body_b_material", EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint_body_b", Color(0.6, 0.9, 1))); diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 002c879cdc..3f40b4ac30 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -56,31 +56,31 @@ #include "scene/resources/packed_scene.h" #include "scene/resources/surface_tool.h" -#define DISTANCE_DEFAULT 4 +constexpr real_t DISTANCE_DEFAULT = 4; -#define GIZMO_ARROW_SIZE 0.35 -#define GIZMO_RING_HALF_WIDTH 0.1 -#define GIZMO_PLANE_SIZE 0.2 -#define GIZMO_PLANE_DST 0.3 -#define GIZMO_CIRCLE_SIZE 1.1 -#define GIZMO_SCALE_OFFSET (GIZMO_CIRCLE_SIZE + 0.3) -#define GIZMO_ARROW_OFFSET (GIZMO_CIRCLE_SIZE + 0.3) +constexpr real_t GIZMO_ARROW_SIZE = 0.35; +constexpr real_t GIZMO_RING_HALF_WIDTH = 0.1; +constexpr real_t GIZMO_PLANE_SIZE = 0.2; +constexpr real_t GIZMO_PLANE_DST = 0.3; +constexpr real_t GIZMO_CIRCLE_SIZE = 1.1; +constexpr real_t GIZMO_SCALE_OFFSET = GIZMO_CIRCLE_SIZE + 0.3; +constexpr real_t GIZMO_ARROW_OFFSET = GIZMO_CIRCLE_SIZE + 0.3; -#define ZOOM_FREELOOK_MIN 0.01 -#define ZOOM_FREELOOK_MULTIPLIER 1.08 -#define ZOOM_FREELOOK_INDICATOR_DELAY_S 1.5 +constexpr real_t ZOOM_FREELOOK_MIN = 0.01; +constexpr real_t ZOOM_FREELOOK_MULTIPLIER = 1.08; +constexpr real_t ZOOM_FREELOOK_INDICATOR_DELAY_S = 1.5; #ifdef REAL_T_IS_DOUBLE -#define ZOOM_FREELOOK_MAX 1'000'000'000'000 +constexpr double ZOOM_FREELOOK_MAX = 1'000'000'000'000; #else -#define ZOOM_FREELOOK_MAX 10'000 +constexpr float ZOOM_FREELOOK_MAX = 10'000; #endif -#define MIN_Z 0.01 -#define MAX_Z 1000000.0 +constexpr real_t MIN_Z = 0.01; +constexpr real_t MAX_Z = 1000000.0; -#define MIN_FOV 0.01 -#define MAX_FOV 179 +constexpr real_t MIN_FOV = 0.01; +constexpr real_t MAX_FOV = 179; void ViewportRotationControl::_notification(int p_what) { switch (p_what) { @@ -2037,14 +2037,16 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) { if (ED_IS_SHORTCUT("spatial_editor/cancel_transform", p_event) && _edit.mode != TRANSFORM_NONE) { cancel_transform(); } - if (ED_IS_SHORTCUT("spatial_editor/instant_translate", p_event)) { - begin_transform(TRANSFORM_TRANSLATE, true); - } - if (ED_IS_SHORTCUT("spatial_editor/instant_rotate", p_event)) { - begin_transform(TRANSFORM_ROTATE, true); - } - if (ED_IS_SHORTCUT("spatial_editor/instant_scale", p_event)) { - begin_transform(TRANSFORM_SCALE, true); + if (!is_freelook_active()) { + if (ED_IS_SHORTCUT("spatial_editor/instant_translate", p_event)) { + begin_transform(TRANSFORM_TRANSLATE, true); + } + if (ED_IS_SHORTCUT("spatial_editor/instant_rotate", p_event)) { + begin_transform(TRANSFORM_ROTATE, true); + } + if (ED_IS_SHORTCUT("spatial_editor/instant_scale", p_event)) { + begin_transform(TRANSFORM_SCALE, true); + } } // Freelook doesn't work in orthogonal mode. @@ -2284,7 +2286,7 @@ void Node3DEditorViewport::scale_freelook_speed(real_t scale) { Point2i Node3DEditorViewport::_get_warped_mouse_motion(const Ref<InputEventMouseMotion> &p_ev_mouse_motion) const { Point2i relative; - if (bool(EDITOR_DEF("editors/3d/navigation/warped_mouse_panning", false))) { + if (bool(EDITOR_GET("editors/3d/navigation/warped_mouse_panning"))) { relative = Input::get_singleton()->warp_mouse_motion(p_ev_mouse_motion, surface->get_global_rect()); } else { relative = p_ev_mouse_motion->get_relative(); @@ -2688,27 +2690,27 @@ void Node3DEditorViewport::_notification(int p_what) { } } -static void draw_indicator_bar(Control &surface, real_t fill, const Ref<Texture2D> icon, const Ref<Font> font, int font_size, const String &text) { +static void draw_indicator_bar(Control &p_surface, real_t p_fill, const Ref<Texture2D> p_icon, const Ref<Font> p_font, int p_font_size, const String &p_text, const Color &p_color) { // Adjust bar size from control height - const Vector2 surface_size = surface.get_size(); + const Vector2 surface_size = p_surface.get_size(); const real_t h = surface_size.y / 2.0; const real_t y = (surface_size.y - h) / 2.0; const Rect2 r(10 * EDSCALE, y, 6 * EDSCALE, h); - const real_t sy = r.size.y * fill; + const real_t sy = r.size.y * p_fill; // Note: because this bar appears over the viewport, it has to stay readable for any background color // Draw both neutral dark and bright colors to account this - surface.draw_rect(r, Color(1, 1, 1, 0.2)); - surface.draw_rect(Rect2(r.position.x, r.position.y + r.size.y - sy, r.size.x, sy), Color(1, 1, 1, 0.6)); - surface.draw_rect(r.grow(1), Color(0, 0, 0, 0.7), false, Math::round(EDSCALE)); + p_surface.draw_rect(r, p_color * Color(1, 1, 1, 0.2)); + p_surface.draw_rect(Rect2(r.position.x, r.position.y + r.size.y - sy, r.size.x, sy), p_color * Color(1, 1, 1, 0.6)); + p_surface.draw_rect(r.grow(1), Color(0, 0, 0, 0.7), false, Math::round(EDSCALE)); - const Vector2 icon_size = icon->get_size(); + const Vector2 icon_size = p_icon->get_size(); const Vector2 icon_pos = Vector2(r.position.x - (icon_size.x - r.size.x) / 2, r.position.y + r.size.y + 2 * EDSCALE); - surface.draw_texture(icon, icon_pos); + p_surface.draw_texture(p_icon, icon_pos, p_color); // Draw text below the bar (for speed/zoom information). - surface.draw_string(font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), text, HORIZONTAL_ALIGNMENT_LEFT, -1.f, font_size); + p_surface.draw_string(p_font, Vector2(icon_pos.x, icon_pos.y + icon_size.y + 16 * EDSCALE), p_text, HORIZONTAL_ALIGNMENT_LEFT, -1.f, p_font_size, p_color, Math::round(2 * EDSCALE), Color(0, 0, 0)); } void Node3DEditorViewport::_draw() { @@ -2826,7 +2828,8 @@ void Node3DEditorViewport::_draw() { get_theme_icon(SNAME("ViewportSpeed"), SNAME("EditorIcons")), get_theme_font(SNAME("font"), SNAME("Label")), get_theme_font_size(SNAME("font_size"), SNAME("Label")), - vformat("%s u/s", String::num(freelook_speed).pad_decimals(precision))); + vformat("%s u/s", String::num(freelook_speed).pad_decimals(precision)), + Color(1.0, 0.95, 0.7)); } } else { @@ -2848,7 +2851,8 @@ void Node3DEditorViewport::_draw() { get_theme_icon(SNAME("ViewportZoom"), SNAME("EditorIcons")), get_theme_font(SNAME("font"), SNAME("Label")), get_theme_font_size(SNAME("font_size"), SNAME("Label")), - vformat("%s u", String::num(cursor.distance).pad_decimals(precision))); + vformat("%s u", String::num(cursor.distance).pad_decimals(precision)), + Color(0.7, 0.95, 1.0)); } } } @@ -6920,19 +6924,19 @@ void Node3DEditor::_add_environment_to_scene(bool p_already_added_sun) { } void Node3DEditor::_update_theme() { - tool_button[Node3DEditor::TOOL_MODE_SELECT]->set_icon(get_theme_icon(SNAME("ToolSelect"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_MODE_MOVE]->set_icon(get_theme_icon(SNAME("ToolMove"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_MODE_ROTATE]->set_icon(get_theme_icon(SNAME("ToolRotate"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_MODE_SCALE]->set_icon(get_theme_icon(SNAME("ToolScale"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_MODE_LIST_SELECT]->set_icon(get_theme_icon(SNAME("ListSelect"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_LOCK_SELECTED]->set_icon(get_theme_icon(SNAME("Lock"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_UNLOCK_SELECTED]->set_icon(get_theme_icon(SNAME("Unlock"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_GROUP_SELECTED]->set_icon(get_theme_icon(SNAME("Group"), SNAME("EditorIcons"))); - tool_button[Node3DEditor::TOOL_UNGROUP_SELECTED]->set_icon(get_theme_icon(SNAME("Ungroup"), SNAME("EditorIcons"))); - - tool_option_button[Node3DEditor::TOOL_OPT_LOCAL_COORDS]->set_icon(get_theme_icon(SNAME("Object"), SNAME("EditorIcons"))); - tool_option_button[Node3DEditor::TOOL_OPT_USE_SNAP]->set_icon(get_theme_icon(SNAME("Snap"), SNAME("EditorIcons"))); - tool_option_button[Node3DEditor::TOOL_OPT_OVERRIDE_CAMERA]->set_icon(get_theme_icon(SNAME("Camera3D"), SNAME("EditorIcons"))); + tool_button[TOOL_MODE_SELECT]->set_icon(get_theme_icon(SNAME("ToolSelect"), SNAME("EditorIcons"))); + tool_button[TOOL_MODE_MOVE]->set_icon(get_theme_icon(SNAME("ToolMove"), SNAME("EditorIcons"))); + tool_button[TOOL_MODE_ROTATE]->set_icon(get_theme_icon(SNAME("ToolRotate"), SNAME("EditorIcons"))); + tool_button[TOOL_MODE_SCALE]->set_icon(get_theme_icon(SNAME("ToolScale"), SNAME("EditorIcons"))); + tool_button[TOOL_MODE_LIST_SELECT]->set_icon(get_theme_icon(SNAME("ListSelect"), SNAME("EditorIcons"))); + tool_button[TOOL_LOCK_SELECTED]->set_icon(get_theme_icon(SNAME("Lock"), SNAME("EditorIcons"))); + tool_button[TOOL_UNLOCK_SELECTED]->set_icon(get_theme_icon(SNAME("Unlock"), SNAME("EditorIcons"))); + tool_button[TOOL_GROUP_SELECTED]->set_icon(get_theme_icon(SNAME("Group"), SNAME("EditorIcons"))); + tool_button[TOOL_UNGROUP_SELECTED]->set_icon(get_theme_icon(SNAME("Ungroup"), SNAME("EditorIcons"))); + + tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_icon(get_theme_icon(SNAME("Object"), SNAME("EditorIcons"))); + tool_option_button[TOOL_OPT_USE_SNAP]->set_icon(get_theme_icon(SNAME("Snap"), SNAME("EditorIcons"))); + tool_option_button[TOOL_OPT_OVERRIDE_CAMERA]->set_icon(get_theme_icon(SNAME("Camera3D"), SNAME("EditorIcons"))); view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), get_theme_icon(SNAME("Panels1"), SNAME("EditorIcons"))); view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), get_theme_icon(SNAME("Panels2"), SNAME("EditorIcons"))); diff --git a/editor/plugins/ot_features_plugin.cpp b/editor/plugins/ot_features_plugin.cpp index f8e6054848..9cd428a2d4 100644 --- a/editor/plugins/ot_features_plugin.cpp +++ b/editor/plugins/ot_features_plugin.cpp @@ -53,7 +53,7 @@ void OpenTypeFeaturesEditor::_notification(int p_what) { button->set_icon(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))); button->set_size(get_theme_icon(SNAME("Remove"), SNAME("EditorIcons"))->get_size()); - spin->set_custom_label_color(true, base); + spin->add_theme_color_override("label_color", base); } break; } } diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp index f096b2abb1..2812c4aaaf 100644 --- a/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/editor/plugins/polygon_2d_editor_plugin.cpp @@ -1062,7 +1062,7 @@ void Polygon2DEditor::_uv_draw() { for (int i = 0; i < uvs.size(); i++) { int next = uv_draw_max > 0 ? (i + 1) % uv_draw_max : 0; - if (i < uv_draw_max && uv_drag && uv_move_current == UV_MODE_EDIT_POINT && EDITOR_DEF("editors/polygon_editor/show_previous_outline", true)) { + if (i < uv_draw_max && uv_drag && uv_move_current == UV_MODE_EDIT_POINT && EDITOR_GET("editors/polygon_editor/show_previous_outline")) { uv_edit_draw->draw_line(mtx.xform(points_prev[i]), mtx.xform(points_prev[next]), prev_color, Math::round(EDSCALE)); } diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp index b7aef7f1bb..eafc53c72b 100644 --- a/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/editor/plugins/resource_preloader_editor_plugin.cpp @@ -39,7 +39,8 @@ void ResourcePreloaderEditor::_notification(int p_what) { switch (p_what) { - case NOTIFICATION_ENTER_TREE: { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { load->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons"))); } break; } diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 30c2b12519..2da5978fab 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -407,8 +407,8 @@ void ScriptEditor::_breaked(bool p_breaked, bool p_can_debug) { return; } - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -447,8 +447,8 @@ void ScriptEditor::_goto_script_line(REF p_script, int p_line) { void ScriptEditor::_set_execution(REF p_script, int p_line) { Ref<Script> script = Object::cast_to<Script>(*p_script); if (script.is_valid() && (script->has_source_code() || script->get_path().is_resource_file())) { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -463,8 +463,8 @@ void ScriptEditor::_set_execution(REF p_script, int p_line) { void ScriptEditor::_clear_execution(REF p_script) { Ref<Script> script = Object::cast_to<Script>(*p_script); if (script.is_valid() && (script->has_source_code() || script->get_path().is_resource_file())) { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -480,8 +480,8 @@ void ScriptEditor::_set_breakpoint(REF p_script, int p_line, bool p_enabled) { Ref<Script> script = Object::cast_to<Script>(*p_script); if (script.is_valid() && (script->has_source_code() || script->get_path().is_resource_file())) { // Update if open. - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (se && se->get_edited_resource()->get_path() == script->get_path()) { se->set_breakpoint(p_line, p_enabled); return; @@ -509,8 +509,8 @@ void ScriptEditor::_set_breakpoint(REF p_script, int p_line, bool p_enabled) { } void ScriptEditor::_clear_breakpoints() { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (se) { se->clear_breakpoints(); } @@ -547,11 +547,11 @@ Array ScriptEditor::_get_cached_breakpoints_for_script(const String &p_path) con ScriptEditorBase *ScriptEditor::_get_current_editor() const { int selected = tab_container->get_current_tab(); - if (selected < 0 || selected >= tab_container->get_child_count()) { + if (selected < 0 || selected >= tab_container->get_tab_count()) { return nullptr; } - return Object::cast_to<ScriptEditorBase>(tab_container->get_child(selected)); + return Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(selected)); } void ScriptEditor::_update_history_arrows() { @@ -590,7 +590,7 @@ void ScriptEditor::_go_to_tab(int p_idx) { } } - Control *c = Object::cast_to<Control>(tab_container->get_child(p_idx)); + Control *c = Object::cast_to<Control>(tab_container->get_tab_control(p_idx)); if (!c) { return; } @@ -682,7 +682,7 @@ void ScriptEditor::_update_recent_scripts() { recent_scripts->add_shortcut(ED_SHORTCUT("script_editor/clear_recent", TTR("Clear Recent Files"))); recent_scripts->set_item_disabled(recent_scripts->get_item_id(recent_scripts->get_item_count() - 1), rc.is_empty()); - recent_scripts->set_as_minsize(); + recent_scripts->reset_size(); } void ScriptEditor::_open_recent_script(int p_idx) { @@ -750,11 +750,11 @@ void ScriptEditor::_show_error_dialog(String p_path) { void ScriptEditor::_close_tab(int p_idx, bool p_save, bool p_history_back) { int selected = p_idx; - if (selected < 0 || selected >= tab_container->get_child_count()) { + if (selected < 0 || selected >= tab_container->get_tab_count()) { return; } - Node *tselected = tab_container->get_child(selected); + Node *tselected = tab_container->get_tab_control(selected); ScriptEditorBase *current = Object::cast_to<ScriptEditorBase>(tselected); if (current) { @@ -805,12 +805,12 @@ void ScriptEditor::_close_tab(int p_idx, bool p_save, bool p_history_back) { _save_editor_state(current); } memdelete(tselected); - if (idx >= tab_container->get_child_count()) { - idx = tab_container->get_child_count() - 1; + if (idx >= tab_container->get_tab_count()) { + idx = tab_container->get_tab_count() - 1; } if (idx >= 0) { if (history_pos >= 0) { - idx = history[history_pos].control->get_index(); + idx = tab_container->get_tab_idx_from_control(history[history_pos].control); } tab_container->set_current_tab(idx); } else { @@ -836,9 +836,9 @@ void ScriptEditor::_close_discard_current_tab(const String &p_str) { } void ScriptEditor::_close_docs_tab() { - int child_count = tab_container->get_child_count(); + int child_count = tab_container->get_tab_count(); for (int i = child_count - 1; i >= 0; i--) { - EditorHelp *se = Object::cast_to<EditorHelp>(tab_container->get_child(i)); + EditorHelp *se = Object::cast_to<EditorHelp>(tab_container->get_tab_control(i)); if (se) { _close_tab(i, true, false); @@ -856,7 +856,7 @@ void ScriptEditor::_copy_script_path() { void ScriptEditor::_close_other_tabs() { int current_idx = tab_container->get_current_tab(); - for (int i = tab_container->get_child_count() - 1; i >= 0; i--) { + for (int i = tab_container->get_tab_count() - 1; i >= 0; i--) { if (i != current_idx) { script_close_queue.push_back(i); } @@ -865,7 +865,7 @@ void ScriptEditor::_close_other_tabs() { } void ScriptEditor::_close_all_tabs() { - for (int i = tab_container->get_child_count() - 1; i >= 0; i--) { + for (int i = tab_container->get_tab_count() - 1; i >= 0; i--) { script_close_queue.push_back(i); } _queue_close_tabs(); @@ -877,7 +877,7 @@ void ScriptEditor::_queue_close_tabs() { script_close_queue.pop_front(); tab_container->set_current_tab(idx); - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(idx)); + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(idx)); if (se) { // Maybe there are unsaved changes. if (se->is_unsaved()) { @@ -900,8 +900,8 @@ void ScriptEditor::_ask_close_current_unsaved_tab(ScriptEditorBase *current) { void ScriptEditor::_resave_scripts(const String &p_str) { apply_scripts(); - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -941,8 +941,8 @@ void ScriptEditor::_resave_scripts(const String &p_str) { } void ScriptEditor::_reload_scripts() { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -985,8 +985,8 @@ void ScriptEditor::_reload_scripts() { } void ScriptEditor::_res_saved_callback(const Ref<Resource> &p_res) { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -1004,8 +1004,8 @@ void ScriptEditor::_res_saved_callback(const Ref<Resource> &p_res) { void ScriptEditor::_scene_saved_callback(const String &p_path) { // If scene was saved, mark all built-in scripts from that scene as saved. - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -1046,10 +1046,10 @@ bool ScriptEditor::_test_script_times_on_disk(RES p_for_script) { bool need_ask = false; bool need_reload = false; - bool use_autoreload = bool(EDITOR_DEF("text_editor/behavior/files/auto_reload_scripts_on_external_change", false)); + bool use_autoreload = bool(EDITOR_GET("text_editor/behavior/files/auto_reload_scripts_on_external_change")); - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (se) { RES edited_res = se->get_edited_resource(); if (p_for_script.is_valid() && edited_res.is_valid() && p_for_script != edited_res) { @@ -1429,7 +1429,7 @@ void ScriptEditor::_menu_option(int p_option) { file_system_dock->navigate_to_path(path); // Ensure that the FileSystem dock is visible. TabContainer *tab_container = (TabContainer *)file_system_dock->get_parent_control(); - tab_container->set_current_tab(file_system_dock->get_index()); + tab_container->set_current_tab(tab_container->get_tab_idx_from_control(file_system_dock)); } } break; case CLOSE_DOCS: { @@ -1449,7 +1449,7 @@ void ScriptEditor::_menu_option(int p_option) { } } break; case WINDOW_MOVE_DOWN: { - if (tab_container->get_current_tab() < tab_container->get_child_count() - 1) { + if (tab_container->get_current_tab() < tab_container->get_tab_count() - 1) { tab_container->move_child(current, tab_container->get_current_tab() + 1); tab_container->set_current_tab(tab_container->get_current_tab() + 1); _update_script_names(); @@ -1495,7 +1495,7 @@ void ScriptEditor::_menu_option(int p_option) { } } break; case WINDOW_MOVE_DOWN: { - if (tab_container->get_current_tab() < tab_container->get_child_count() - 1) { + if (tab_container->get_current_tab() < tab_container->get_tab_count() - 1) { tab_container->move_child(help, tab_container->get_current_tab() + 1); tab_container->set_current_tab(tab_container->get_current_tab() + 1); _update_script_names(); @@ -1545,9 +1545,9 @@ void ScriptEditor::_show_save_theme_as_dialog() { } bool ScriptEditor::_has_docs_tab() const { - const int child_count = tab_container->get_child_count(); + const int child_count = tab_container->get_tab_count(); for (int i = 0; i < child_count; i++) { - if (Object::cast_to<EditorHelp>(tab_container->get_child(i))) { + if (Object::cast_to<EditorHelp>(tab_container->get_tab_control(i))) { return true; } } @@ -1555,9 +1555,9 @@ bool ScriptEditor::_has_docs_tab() const { } bool ScriptEditor::_has_script_tab() const { - const int child_count = tab_container->get_child_count(); + const int child_count = tab_container->get_tab_count(); for (int i = 0; i < child_count; i++) { - if (Object::cast_to<ScriptEditorBase>(tab_container->get_child(i))) { + if (Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i))) { return true; } } @@ -1581,9 +1581,9 @@ void ScriptEditor::_prepare_file_menu() { menu->set_item_disabled(menu->get_item_index(WINDOW_PREV), history_pos <= 0); menu->set_item_disabled(menu->get_item_index(WINDOW_NEXT), history_pos >= history.size() - 1); - menu->set_item_disabled(menu->get_item_index(FILE_CLOSE), tab_container->get_child_count() < 1); - menu->set_item_disabled(menu->get_item_index(CLOSE_ALL), tab_container->get_child_count() < 1); - menu->set_item_disabled(menu->get_item_index(CLOSE_OTHER_TABS), tab_container->get_child_count() <= 1); + menu->set_item_disabled(menu->get_item_index(FILE_CLOSE), tab_container->get_tab_count() < 1); + menu->set_item_disabled(menu->get_item_index(CLOSE_ALL), tab_container->get_tab_count() < 1); + menu->set_item_disabled(menu->get_item_index(CLOSE_OTHER_TABS), tab_container->get_tab_count() <= 1); menu->set_item_disabled(menu->get_item_index(CLOSE_DOCS), !_has_docs_tab()); menu->set_item_disabled(menu->get_item_index(FILE_RUN), current_is_doc); @@ -1635,7 +1635,7 @@ void ScriptEditor::_notification(int p_what) { filename->add_theme_style_override("normal", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("normal"), SNAME("LineEdit"))); - recent_scripts->set_as_minsize(); + recent_scripts->reset_size(); if (is_inside_tree()) { _update_script_colors(); @@ -1682,8 +1682,8 @@ bool ScriptEditor::can_take_away_focus() const { } void ScriptEditor::close_builtin_scripts_from_scene(const String &p_scene) { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (se) { Ref<Script> script = se->get_edited_resource(); @@ -1713,8 +1713,8 @@ void ScriptEditor::notify_script_changed(const Ref<Script> &p_script) { void ScriptEditor::get_breakpoints(List<String> *p_breakpoints) { Set<String> loaded_scripts; - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -1766,7 +1766,7 @@ void ScriptEditor::_members_overview_selected(int p_idx) { } void ScriptEditor::_help_overview_selected(int p_idx) { - Node *current = tab_container->get_child(tab_container->get_current_tab()); + Node *current = tab_container->get_tab_control(tab_container->get_current_tab()); EditorHelp *se = Object::cast_to<EditorHelp>(current); if (!se) { return; @@ -1782,7 +1782,7 @@ void ScriptEditor::_script_selected(int p_idx) { } void ScriptEditor::ensure_select_current() { - if (tab_container->get_child_count() && tab_container->get_current_tab() >= 0) { + if (tab_container->get_tab_count() && tab_container->get_current_tab() >= 0) { ScriptEditorBase *se = _get_current_editor(); if (se) { se->enable_editor(); @@ -1881,7 +1881,7 @@ void ScriptEditor::_update_members_overview() { String name = functions[i].get_slice(":", 0); if (filter.is_empty() || filter.is_subsequence_ofn(name)) { members_overview->add_item(name); - members_overview->set_item_metadata(members_overview->get_item_count() - 1, functions[i].get_slice(":", 1).to_int() - 1); + members_overview->set_item_metadata(-1, functions[i].get_slice(":", 1).to_int() - 1); } } @@ -1893,12 +1893,12 @@ void ScriptEditor::_update_members_overview() { void ScriptEditor::_update_help_overview_visibility() { int selected = tab_container->get_current_tab(); - if (selected < 0 || selected >= tab_container->get_child_count()) { + if (selected < 0 || selected >= tab_container->get_tab_count()) { help_overview->set_visible(false); return; } - Node *current = tab_container->get_child(tab_container->get_current_tab()); + Node *current = tab_container->get_tab_control(tab_container->get_current_tab()); EditorHelp *se = Object::cast_to<EditorHelp>(current); if (!se) { help_overview->set_visible(false); @@ -1920,11 +1920,11 @@ void ScriptEditor::_update_help_overview() { help_overview->clear(); int selected = tab_container->get_current_tab(); - if (selected < 0 || selected >= tab_container->get_child_count()) { + if (selected < 0 || selected >= tab_container->get_tab_count()) { return; } - Node *current = tab_container->get_child(tab_container->get_current_tab()); + Node *current = tab_container->get_tab_control(tab_container->get_current_tab()); EditorHelp *se = Object::cast_to<EditorHelp>(current); if (!se) { return; @@ -1947,7 +1947,7 @@ void ScriptEditor::_update_script_colors() { for (int i = 0; i < script_list->get_item_count(); i++) { int c = script_list->get_item_metadata(i); - Node *n = tab_container->get_child(c); + Node *n = tab_container->get_tab_control(c); if (!n) { continue; } @@ -1990,8 +1990,8 @@ void ScriptEditor::_update_script_names() { Vector<_ScriptEditorItemData> sedata; - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (se) { Ref<Texture2D> icon = se->get_theme_icon(); String path = se->get_edited_resource()->get_path(); @@ -2080,7 +2080,7 @@ void ScriptEditor::_update_script_names() { } } - EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_child(i)); + EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_tab_control(i)); if (eh) { String name = eh->get_class(); Ref<Texture2D> icon = get_theme_icon(SNAME("Help"), SNAME("EditorIcons")); @@ -2139,7 +2139,7 @@ void ScriptEditor::_update_script_names() { for (int i = 0; i < sedata_filtered.size(); i++) { script_list->add_item(sedata_filtered[i].name, sedata_filtered[i].icon); if (sedata_filtered[i].tool) { - script_list->set_item_icon_modulate(script_list->get_item_count() - 1, tool_color); + script_list->set_item_icon_modulate(-1, tool_color); } int index = script_list->get_item_count() - 1; @@ -2172,8 +2172,8 @@ void ScriptEditor::_update_script_names() { } void ScriptEditor::_update_script_connections() { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptTextEditor *ste = Object::cast_to<ScriptTextEditor>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptTextEditor *ste = Object::cast_to<ScriptTextEditor>(tab_container->get_tab_control(i)); if (!ste) { continue; } @@ -2322,8 +2322,8 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra WARN_PRINT("Couldn't open external text editor, using internal"); } - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -2498,8 +2498,8 @@ void ScriptEditor::save_current_script() { void ScriptEditor::save_all_scripts() { Vector<String> scenes_to_save; - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -2574,8 +2574,8 @@ void ScriptEditor::save_all_scripts() { } void ScriptEditor::apply_scripts() const { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -2624,8 +2624,8 @@ RES ScriptEditor::open_file(const String &p_file) { } void ScriptEditor::_editor_stop() { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -2641,8 +2641,8 @@ void ScriptEditor::_add_callback(Object *p_obj, const String &p_function, const EditorNode::get_singleton()->push_item(script.ptr()); - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -2712,8 +2712,8 @@ void ScriptEditor::_editor_settings_changed() { EditorSettings::get_singleton()->load_text_editor_theme(); } - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -2723,7 +2723,7 @@ void ScriptEditor::_editor_settings_changed() { _update_script_colors(); _update_script_names(); - ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save", true)); + ScriptServer::set_reload_scripts_on_save(EDITOR_GET("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save")); } void ScriptEditor::_filesystem_changed() { @@ -2751,8 +2751,8 @@ void ScriptEditor::_files_moved(const String &p_old_file, const String &p_new_fi } void ScriptEditor::_file_removed(const String &p_removed_file) { - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -2815,11 +2815,11 @@ void ScriptEditor::_split_dragged(float) { } Variant ScriptEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from) { - if (tab_container->get_child_count() == 0) { + if (tab_container->get_tab_count() == 0) { return Variant(); } - Node *cur_node = tab_container->get_child(tab_container->get_current_tab()); + Node *cur_node = tab_container->get_tab_control(tab_container->get_current_tab()); HBoxContainer *drag_preview = memnew(HBoxContainer); String preview_name = ""; @@ -2975,7 +2975,7 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co if (script_list->get_item_count() > 0) { new_index = script_list->get_item_metadata(script_list->get_item_at_position(p_point)); } - int num_tabs_before = tab_container->get_child_count(); + int num_tabs_before = tab_container->get_tab_count(); for (int i = 0; i < files.size(); i++) { String file = files[i]; if (file.is_empty() || !FileAccess::exists(file)) { @@ -2988,11 +2988,11 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co RES res = open_file(file); if (res.is_valid()) { - if (tab_container->get_child_count() > num_tabs_before) { - tab_container->move_child(tab_container->get_child(tab_container->get_child_count() - 1), new_index); - num_tabs_before = tab_container->get_child_count(); + if (tab_container->get_tab_count() > num_tabs_before) { + tab_container->move_child(tab_container->get_tab_control(tab_container->get_tab_count() - 1), new_index); + num_tabs_before = tab_container->get_tab_count(); } else { /* Maybe script was already open */ - tab_container->move_child(tab_container->get_child(tab_container->get_current_tab()), new_index); + tab_container->move_child(tab_container->get_tab_control(tab_container->get_current_tab()), new_index); } } } @@ -3081,11 +3081,11 @@ void ScriptEditor::_make_script_list_context_menu() { context_menu->clear(); int selected = tab_container->get_current_tab(); - if (selected < 0 || selected >= tab_container->get_child_count()) { + if (selected < 0 || selected >= tab_container->get_tab_count()) { return; } - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(selected)); + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(selected)); if (se) { context_menu->add_shortcut(ED_GET_SHORTCUT("script_editor/save"), FILE_SAVE); context_menu->add_shortcut(ED_GET_SHORTCUT("script_editor/save_as"), FILE_SAVE_AS); @@ -3113,11 +3113,11 @@ void ScriptEditor::_make_script_list_context_menu() { context_menu->add_shortcut(ED_GET_SHORTCUT("script_editor/window_sort"), WINDOW_SORT); context_menu->add_shortcut(ED_GET_SHORTCUT("script_editor/toggle_scripts_panel"), TOGGLE_SCRIPTS_PANEL); - context_menu->set_item_disabled(context_menu->get_item_index(CLOSE_ALL), tab_container->get_child_count() <= 0); - context_menu->set_item_disabled(context_menu->get_item_index(CLOSE_OTHER_TABS), tab_container->get_child_count() <= 1); + context_menu->set_item_disabled(context_menu->get_item_index(CLOSE_ALL), tab_container->get_tab_count() <= 0); + context_menu->set_item_disabled(context_menu->get_item_index(CLOSE_OTHER_TABS), tab_container->get_tab_count() <= 1); context_menu->set_item_disabled(context_menu->get_item_index(WINDOW_MOVE_UP), tab_container->get_current_tab() <= 0); - context_menu->set_item_disabled(context_menu->get_item_index(WINDOW_MOVE_DOWN), tab_container->get_current_tab() >= tab_container->get_child_count() - 1); - context_menu->set_item_disabled(context_menu->get_item_index(WINDOW_SORT), tab_container->get_child_count() <= 1); + context_menu->set_item_disabled(context_menu->get_item_index(WINDOW_MOVE_DOWN), tab_container->get_current_tab() >= tab_container->get_tab_count() - 1); + context_menu->set_item_disabled(context_menu->get_item_index(WINDOW_SORT), tab_container->get_tab_count() <= 1); context_menu->set_position(get_screen_position() + get_local_mouse_position()); context_menu->reset_size(); @@ -3125,7 +3125,7 @@ void ScriptEditor::_make_script_list_context_menu() { } void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) { - if (!bool(EDITOR_DEF("text_editor/behavior/files/restore_scripts_on_load", true))) { + if (!bool(EDITOR_GET("text_editor/behavior/files/restore_scripts_on_load"))) { return; } @@ -3181,7 +3181,7 @@ void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) { } if (!script_info.is_empty()) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(tab_container->get_tab_count() - 1)); + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(tab_container->get_tab_count() - 1)); if (se) { se->set_edit_state(script_info["state"]); } @@ -3196,8 +3196,8 @@ void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) { _help_class_open(path); } - for (int i = 0; i < tab_container->get_child_count(); i++) { - tab_container->get_child(i)->set_meta("__editor_pass", Variant()); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + tab_container->get_tab_control(i)->set_meta("__editor_pass", Variant()); } if (p_layout->has_section_key("ScriptEditor", "script_split_offset")) { @@ -3237,8 +3237,8 @@ void ScriptEditor::get_window_layout(Ref<ConfigFile> p_layout) { Array scripts; Array helps; - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (se) { String path = se->get_edited_resource()->get_path(); if (!path.is_resource_file()) { @@ -3249,7 +3249,7 @@ void ScriptEditor::get_window_layout(Ref<ConfigFile> p_layout) { scripts.push_back(path); } - EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_child(i)); + EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_tab_control(i)); if (eh) { helps.push_back(eh->get_class()); @@ -3270,8 +3270,8 @@ void ScriptEditor::_help_class_open(const String &p_class) { return; } - for (int i = 0; i < tab_container->get_child_count(); i++) { - EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_tab_control(i)); if (eh && eh->get_class() == p_class) { _go_to_tab(i); @@ -3296,8 +3296,8 @@ void ScriptEditor::_help_class_open(const String &p_class) { void ScriptEditor::_help_class_goto(const String &p_desc) { String cname = p_desc.get_slice(":", 1); - for (int i = 0; i < tab_container->get_child_count(); i++) { - EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_tab_control(i)); if (eh && eh->get_class() == cname) { _go_to_tab(i); @@ -3323,8 +3323,8 @@ void ScriptEditor::_help_class_goto(const String &p_desc) { void ScriptEditor::update_doc(const String &p_name) { ERR_FAIL_COND(!EditorHelp::get_doc_data()->has_doc(p_name)); - for (int i = 0; i < tab_container->get_child_count(); i++) { - EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_tab_control(i)); if (eh && eh->get_class() == p_name) { eh->update_doc(); return; @@ -3333,10 +3333,10 @@ void ScriptEditor::update_doc(const String &p_name) { } void ScriptEditor::_update_selected_editor_menu() { - for (int i = 0; i < tab_container->get_child_count(); i++) { + for (int i = 0; i < tab_container->get_tab_count(); i++) { bool current = tab_container->get_current_tab() == i; - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (se && se->get_edit_menu()) { if (current) { se->get_edit_menu()->show(); @@ -3356,7 +3356,7 @@ void ScriptEditor::_update_selected_editor_menu() { script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_in_files", TTR("Find in Files"), KeyModifierMask::CMD | KeyModifierMask::SHIFT | Key::F), SEARCH_IN_FILES); script_search_menu->show(); } else { - if (tab_container->get_child_count() == 0) { + if (tab_container->get_tab_count() == 0) { script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_in_files", TTR("Find in Files"), KeyModifierMask::CMD | KeyModifierMask::SHIFT | Key::F), SEARCH_IN_FILES); script_search_menu->show(); } else { @@ -3376,7 +3376,7 @@ void ScriptEditor::_update_history_pos(int p_new_pos) { } history_pos = p_new_pos; - tab_container->set_current_tab(history[history_pos].control->get_index()); + tab_container->set_current_tab(tab_container->get_tab_idx_from_control(history[history_pos].control)); n = history[history_pos].control; @@ -3416,8 +3416,8 @@ void ScriptEditor::_history_back() { Vector<Ref<Script>> ScriptEditor::get_open_scripts() const { Vector<Ref<Script>> out_scripts = Vector<Ref<Script>>(); - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -3433,8 +3433,8 @@ Vector<Ref<Script>> ScriptEditor::get_open_scripts() const { Array ScriptEditor::_get_open_script_editors() const { Array script_editors; - for (int i = 0; i < tab_container->get_child_count(); i++) { - ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); + for (int i = 0; i < tab_container->get_tab_count(); i++) { + ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i)); if (!se) { continue; } @@ -4039,7 +4039,7 @@ ScriptEditorPlugin::ScriptEditorPlugin() { script_editor->hide(); - EDITOR_DEF("text_editor/behavior/files/auto_reload_scripts_on_external_change", true); + EDITOR_GET("text_editor/behavior/files/auto_reload_scripts_on_external_change"); ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save", true)); EDITOR_DEF("text_editor/behavior/files/open_dominant_script_on_scene_change", true); EDITOR_DEF("text_editor/external/use_external_editor", false); diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index b87f2995ed..30ca1c605f 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -521,7 +521,7 @@ void ScriptTextEditor::_update_errors() { errors_panel->pop(); // Table CodeEdit *te = code_editor->get_text_editor(); - bool highlight_safe = EDITOR_DEF("text_editor/appearance/gutters/highlight_type_safe_lines", true); + bool highlight_safe = EDITOR_GET("text_editor/appearance/gutters/highlight_type_safe_lines"); bool last_is_safe = false; for (int i = 0; i < te->get_line_count(); i++) { if (errors.is_empty()) { @@ -579,7 +579,7 @@ void ScriptTextEditor::_update_bookmark_list() { } bookmarks_menu->add_item(String::num((int)bookmark_list[i] + 1) + " - `" + line + "`"); - bookmarks_menu->set_item_metadata(bookmarks_menu->get_item_count() - 1, bookmark_list[i]); + bookmarks_menu->set_item_metadata(-1, bookmark_list[i]); } } @@ -731,7 +731,7 @@ void ScriptTextEditor::_update_breakpoint_list() { } breakpoints_menu->add_item(String::num((int)breakpoint_list[i] + 1) + " - `" + line + "`"); - breakpoints_menu->set_item_metadata(breakpoints_menu->get_item_count() - 1, breakpoint_list[i]); + breakpoints_menu->set_item_metadata(-1, breakpoint_list[i]); } } @@ -1335,6 +1335,9 @@ void ScriptTextEditor::_change_syntax_highlighter(int p_idx) { void ScriptTextEditor::_notification(int p_what) { switch (p_what) { case NOTIFICATION_THEME_CHANGED: + if (!editor_enabled) { + break; + } if (is_visible_in_tree()) { _update_warnings(); _update_errors(); diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index cea1a0e808..dbe6ca192c 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -435,8 +435,16 @@ void ShaderEditor::_menu_option(int p_option) { } void ShaderEditor::_notification(int p_what) { - if (p_what == NOTIFICATION_WM_WINDOW_FOCUS_IN) { - _check_for_external_edit(); + switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + PopupMenu *popup = help_menu->get_popup(); + popup->set_item_icon(popup->get_item_index(HELP_DOCS), get_theme_icon(SNAME("Instance"), SNAME("EditorIcons"))); + } break; + + case NOTIFICATION_WM_WINDOW_FOCUS_IN: { + _check_for_external_edit(); + } break; } } @@ -520,7 +528,7 @@ void ShaderEditor::_check_for_external_edit() { return; } - bool use_autoreload = bool(EDITOR_DEF("text_editor/behavior/files/auto_reload_scripts_on_external_change", false)); + bool use_autoreload = bool(EDITOR_GET("text_editor/behavior/files/auto_reload_scripts_on_external_change")); if (shader->get_last_modified_time() != FileAccess::get_modified_time(shader->get_path())) { if (use_autoreload) { _reload_shader_from_disk(); @@ -647,7 +655,7 @@ void ShaderEditor::_update_bookmark_list() { } bookmarks_menu->add_item(String::num((int)bookmark_list[i] + 1) + " - \"" + line + "\""); - bookmarks_menu->set_item_metadata(bookmarks_menu->get_item_count() - 1, bookmark_list[i]); + bookmarks_menu->set_item_metadata(-1, bookmark_list[i]); } } @@ -772,7 +780,7 @@ ShaderEditor::ShaderEditor() { help_menu = memnew(MenuButton); help_menu->set_text(TTR("Help")); help_menu->set_switch_on_hover(true); - help_menu->get_popup()->add_icon_item(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Instance"), SNAME("EditorIcons")), TTR("Online Docs"), HELP_DOCS); + help_menu->get_popup()->add_item(TTR("Online Docs"), HELP_DOCS); help_menu->get_popup()->connect("id_pressed", callable_mp(this, &ShaderEditor::_menu_option)); add_child(main_container); diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp index 282ee9a5b7..aadc7a2e66 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.cpp +++ b/editor/plugins/skeleton_3d_editor_plugin.cpp @@ -530,18 +530,23 @@ void Skeleton3DEditor::_joint_tree_selection_changed() { TreeItem *selected = joint_tree->get_selected(); if (selected) { const String path = selected->get_metadata(0); - - if (path.begins_with("bones/")) { - const int b_idx = path.get_slicec('/', 1).to_int(); + if (!path.begins_with("bones/")) { + return; + } + const int b_idx = path.get_slicec('/', 1).to_int(); + selected_bone = b_idx; + if (pose_editor) { const String bone_path = "bones/" + itos(b_idx) + "/"; - pose_editor->set_target(bone_path); pose_editor->set_keyable(keyable); - selected_bone = b_idx; } } - pose_editor->set_visible(selected); + + if (pose_editor && pose_editor->is_inside_tree()) { + pose_editor->set_visible(selected); + } set_bone_options_enabled(selected); + _update_properties(); _update_gizmo_visible(); } diff --git a/editor/plugins/sprite_2d_editor_plugin.cpp b/editor/plugins/sprite_2d_editor_plugin.cpp index 3489ac2c1e..6a63875324 100644 --- a/editor/plugins/sprite_2d_editor_plugin.cpp +++ b/editor/plugins/sprite_2d_editor_plugin.cpp @@ -122,8 +122,8 @@ void Sprite2DEditor::_menu_option(int p_option) { switch (p_option) { case MENU_OPTION_CONVERT_TO_MESH_2D: { - debug_uv_dialog->get_ok_button()->set_text(TTR("Create Mesh2D")); - debug_uv_dialog->set_title(TTR("Mesh2D Preview")); + debug_uv_dialog->get_ok_button()->set_text(TTR("Create MeshInstance2D")); + debug_uv_dialog->set_title(TTR("MeshInstance2D Preview")); _update_mesh_data(); debug_uv_dialog->popup_centered(); @@ -338,7 +338,7 @@ void Sprite2DEditor::_convert_to_mesh_2d_node() { mesh_instance->set_mesh(mesh); UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - ur->create_action(TTR("Convert to Mesh2D")); + ur->create_action(TTR("Convert to MeshInstance2D")); ur->add_do_method(SceneTreeDock::get_singleton(), "replace_node", node, mesh_instance, true, false); ur->add_do_reference(mesh_instance); ur->add_undo_method(SceneTreeDock::get_singleton(), "replace_node", mesh_instance, node, false, false); @@ -498,6 +498,20 @@ void Sprite2DEditor::_debug_uv_draw() { } } +void Sprite2DEditor::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + options->set_icon(get_theme_icon(SNAME("Sprite2D"), SNAME("EditorIcons"))); + + options->get_popup()->set_item_icon(MENU_OPTION_CONVERT_TO_MESH_2D, get_theme_icon(SNAME("MeshInstance2D"), SNAME("EditorIcons"))); + options->get_popup()->set_item_icon(MENU_OPTION_CONVERT_TO_POLYGON_2D, get_theme_icon(SNAME("Polygon2D"), SNAME("EditorIcons"))); + options->get_popup()->set_item_icon(MENU_OPTION_CREATE_COLLISION_POLY_2D, get_theme_icon(SNAME("CollisionPolygon2D"), SNAME("EditorIcons"))); + options->get_popup()->set_item_icon(MENU_OPTION_CREATE_LIGHT_OCCLUDER_2D, get_theme_icon(SNAME("LightOccluder2D"), SNAME("EditorIcons"))); + } break; + } +} + void Sprite2DEditor::_bind_methods() { ClassDB::bind_method("_add_as_sibling_or_child", &Sprite2DEditor::_add_as_sibling_or_child); } @@ -508,9 +522,8 @@ Sprite2DEditor::Sprite2DEditor() { CanvasItemEditor::get_singleton()->add_control_to_menu_panel(options); options->set_text(TTR("Sprite2D")); - options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Sprite2D"), SNAME("EditorIcons"))); - options->get_popup()->add_item(TTR("Convert to Mesh2D"), MENU_OPTION_CONVERT_TO_MESH_2D); + options->get_popup()->add_item(TTR("Convert to MeshInstance2D"), MENU_OPTION_CONVERT_TO_MESH_2D); options->get_popup()->add_item(TTR("Convert to Polygon2D"), MENU_OPTION_CONVERT_TO_POLYGON_2D); options->get_popup()->add_item(TTR("Create CollisionPolygon2D Sibling"), MENU_OPTION_CREATE_COLLISION_POLY_2D); options->get_popup()->add_item(TTR("Create LightOccluder2D Sibling"), MENU_OPTION_CREATE_LIGHT_OCCLUDER_2D); @@ -522,8 +535,6 @@ Sprite2DEditor::Sprite2DEditor() { add_child(err_dialog); debug_uv_dialog = memnew(ConfirmationDialog); - debug_uv_dialog->get_ok_button()->set_text(TTR("Create Mesh2D")); - debug_uv_dialog->set_title(TTR("Mesh 2D Preview")); VBoxContainer *vb = memnew(VBoxContainer); debug_uv_dialog->add_child(vb); ScrollContainer *scroll = memnew(ScrollContainer); diff --git a/editor/plugins/sprite_2d_editor_plugin.h b/editor/plugins/sprite_2d_editor_plugin.h index 3e4cc17cdd..46953b0937 100644 --- a/editor/plugins/sprite_2d_editor_plugin.h +++ b/editor/plugins/sprite_2d_editor_plugin.h @@ -87,6 +87,7 @@ class Sprite2DEditor : public Control { protected: void _node_removed(Node *p_node); + void _notification(int p_what); static void _bind_methods(); public: diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index c8db16d3be..87b5b829e0 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -204,15 +204,22 @@ void SpriteFramesEditor::_sheet_scroll_input(const Ref<InputEvent> &p_event) { // to allow performing this action anywhere, even if the cursor isn't // hovering the texture in the workspace. if (mb->get_button_index() == MouseButton::WHEEL_UP && mb->is_pressed() && mb->is_ctrl_pressed()) { - _sheet_zoom_in(); + _sheet_zoom_on_position(scale_ratio, mb->get_position()); // Don't scroll up after zooming in. - accept_event(); + split_sheet_scroll->accept_event(); } else if (mb->get_button_index() == MouseButton::WHEEL_DOWN && mb->is_pressed() && mb->is_ctrl_pressed()) { - _sheet_zoom_out(); + _sheet_zoom_on_position(1 / scale_ratio, mb->get_position()); // Don't scroll down after zooming out. - accept_event(); + split_sheet_scroll->accept_event(); } } + + const Ref<InputEventMouseMotion> mm = p_event; + if (mm.is_valid() && (mm->get_button_mask() & MouseButton::MASK_MIDDLE) != MouseButton::NONE) { + const Vector2 dragged = Input::get_singleton()->warp_mouse_motion(mm, split_sheet_scroll->get_global_rect()); + split_sheet_scroll->set_h_scroll(split_sheet_scroll->get_h_scroll() - dragged.x); + split_sheet_scroll->set_v_scroll(split_sheet_scroll->get_v_scroll() - dragged.y); + } } void SpriteFramesEditor::_sheet_add_frames() { @@ -243,20 +250,25 @@ void SpriteFramesEditor::_sheet_add_frames() { undo_redo->commit_action(); } +void SpriteFramesEditor::_sheet_zoom_on_position(float p_zoom, const Vector2 &p_position) { + const float old_zoom = sheet_zoom; + sheet_zoom = CLAMP(sheet_zoom * p_zoom, min_sheet_zoom, max_sheet_zoom); + + const Size2 texture_size = split_sheet_preview->get_texture()->get_size(); + split_sheet_preview->set_custom_minimum_size(texture_size * sheet_zoom); + + Vector2 offset = Vector2(split_sheet_scroll->get_h_scroll(), split_sheet_scroll->get_v_scroll()); + offset = (offset + p_position) / old_zoom * sheet_zoom - p_position; + split_sheet_scroll->set_h_scroll(offset.x); + split_sheet_scroll->set_v_scroll(offset.y); +} + 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); - } + _sheet_zoom_on_position(scale_ratio, Vector2()); } 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); - } + _sheet_zoom_on_position(1 / scale_ratio, Vector2()); } void SpriteFramesEditor::_sheet_zoom_reset() { @@ -310,7 +322,8 @@ void SpriteFramesEditor::_prepare_sprite_sheet(const String &p_file) { void SpriteFramesEditor::_notification(int p_what) { switch (p_what) { - case NOTIFICATION_ENTER_TREE: { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { load->set_icon(get_theme_icon(SNAME("Load"), SNAME("EditorIcons"))); load_sheet->set_icon(get_theme_icon(SNAME("SpriteSheet"), SNAME("EditorIcons"))); copy->set_icon(get_theme_icon(SNAME("ActionCopy"), SNAME("EditorIcons"))); @@ -328,11 +341,9 @@ void SpriteFramesEditor::_notification(int p_what) { split_sheet_zoom_out->set_icon(get_theme_icon(SNAME("ZoomLess"), SNAME("EditorIcons"))); split_sheet_zoom_reset->set_icon(get_theme_icon(SNAME("ZoomReset"), SNAME("EditorIcons"))); split_sheet_zoom_in->set_icon(get_theme_icon(SNAME("ZoomMore"), SNAME("EditorIcons"))); - [[fallthrough]]; - } - case NOTIFICATION_THEME_CHANGED: { split_sheet_scroll->add_theme_style_override("bg", get_theme_stylebox(SNAME("bg"), SNAME("Tree"))); } break; + case NOTIFICATION_READY: { add_theme_constant_override("autohide", 1); // Fixes the dragger always showing up. } break; @@ -847,7 +858,7 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) { at = at->get_atlas(); } - tree->set_item_tooltip(tree->get_item_count() - 1, tooltip); + tree->set_item_tooltip(-1, tooltip); } if (sel == i) { tree->select(tree->get_item_count() - 1); diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h index 461c8dd41a..872a88e262 100644 --- a/editor/plugins/sprite_frames_editor_plugin.h +++ b/editor/plugins/sprite_frames_editor_plugin.h @@ -143,6 +143,7 @@ class SpriteFramesEditor : public HSplitContainer { 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_on_position(float p_zoom, const Vector2 &p_position); void _sheet_zoom_in(); void _sheet_zoom_out(); void _sheet_zoom_reset(); diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index 940f269803..34f3ec73c0 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -179,7 +179,7 @@ void TextEditor::_update_bookmark_list() { } bookmarks_menu->add_item(String::num((int)bookmark_list[i] + 1) + " - \"" + line + "\""); - bookmarks_menu->set_item_metadata(bookmarks_menu->get_item_count() - 1, bookmark_list[i]); + bookmarks_menu->set_item_metadata(-1, bookmark_list[i]); } } diff --git a/editor/plugins/texture_editor_plugin.cpp b/editor/plugins/texture_editor_plugin.cpp index 17fe4fdc50..a7c06ada5c 100644 --- a/editor/plugins/texture_editor_plugin.cpp +++ b/editor/plugins/texture_editor_plugin.cpp @@ -64,8 +64,8 @@ void TexturePreview::_update_metadata_label_text() { String format; if (Object::cast_to<ImageTexture>(*texture)) { format = Image::get_format_name(Object::cast_to<ImageTexture>(*texture)->get_format()); - } else if (Object::cast_to<StreamTexture2D>(*texture)) { - format = Image::get_format_name(Object::cast_to<StreamTexture2D>(*texture)->get_format()); + } else if (Object::cast_to<CompressedTexture2D>(*texture)) { + format = Image::get_format_name(Object::cast_to<CompressedTexture2D>(*texture)->get_format()); } else { format = texture->get_class(); } @@ -110,7 +110,7 @@ TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) { } bool EditorInspectorPluginTexture::can_handle(Object *p_object) { - return Object::cast_to<ImageTexture>(p_object) != nullptr || Object::cast_to<AtlasTexture>(p_object) != nullptr || Object::cast_to<StreamTexture2D>(p_object) != nullptr || Object::cast_to<AnimatedTexture>(p_object) != nullptr; + return Object::cast_to<ImageTexture>(p_object) != nullptr || Object::cast_to<AtlasTexture>(p_object) != nullptr || Object::cast_to<CompressedTexture2D>(p_object) != nullptr || Object::cast_to<AnimatedTexture>(p_object) != nullptr; } void EditorInspectorPluginTexture::parse_begin(Object *p_object) { diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp index ee31131d86..adb8590246 100644 --- a/editor/plugins/texture_region_editor_plugin.cpp +++ b/editor/plugins/texture_region_editor_plugin.cpp @@ -85,8 +85,10 @@ void TextureRegionEditor::_region_draw() { edit_draw->draw_texture(base_tex, Point2()); RS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(), Transform2D()); + const Color color = get_theme_color(SNAME("mono_color"), SNAME("Editor")); + if (snap_mode == SNAP_GRID) { - Color grid_color = Color(1.0, 1.0, 1.0, 0.15); + const Color grid_color = Color(color.r, color.g, color.b, color.a * 0.15); Size2 s = edit_draw->get_size(); int last_cell = 0; @@ -172,7 +174,6 @@ void TextureRegionEditor::_region_draw() { mtx.basis_xform(raw_endpoints[2]), mtx.basis_xform(raw_endpoints[3]) }; - Color color = get_theme_color(SNAME("mono_color"), SNAME("Editor")); for (int i = 0; i < 4; i++) { int prev = (i + 3) % 4; int next = (i + 1) % 4; diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index a03f036b72..d313b98a7f 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -1887,7 +1887,7 @@ ThemeItemEditorDialog::ThemeItemEditorDialog(ThemeTypeEditor *p_theme_type_edito theme_type_editor = p_theme_type_editor; tc = memnew(TabContainer); - tc->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tc->set_tab_alignment(TabBar::ALIGNMENT_LEFT); add_child(tc); // Edit Items tab. @@ -2077,7 +2077,7 @@ ThemeItemEditorDialog::ThemeItemEditorDialog(ThemeTypeEditor *p_theme_type_edito List<String> ext; ResourceLoader::get_recognized_extensions_for_type("Theme", &ext); for (const String &E : ext) { - import_another_theme_dialog->add_filter("*." + E + "; Theme Resource"); + import_another_theme_dialog->add_filter(vformat("*.%s; %s", E, TTR("Theme Resource"))); } import_another_file_hb->add_child(import_another_theme_dialog); import_another_theme_dialog->connect("file_selected", callable_mp(this, &ThemeItemEditorDialog::_select_another_theme_cbk)); @@ -3664,7 +3664,7 @@ ThemeEditor::ThemeEditor() { List<String> ext; ResourceLoader::get_recognized_extensions_for_type("PackedScene", &ext); for (const String &E : ext) { - preview_scene_dialog->add_filter("*." + E + "; Scene"); + preview_scene_dialog->add_filter(vformat("*.%s; %s", E, TTR("Scene"))); } main_hs->add_child(preview_scene_dialog); preview_scene_dialog->connect("file_selected", callable_mp(this, &ThemeEditor::_preview_scene_dialog_cbk)); diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp index 0f8c8c616c..086588f5a5 100644 --- a/editor/plugins/tiles/atlas_merging_dialog.cpp +++ b/editor/plugins/tiles/atlas_merging_dialog.cpp @@ -241,7 +241,7 @@ void AtlasMergingDialog::update_tile_set(Ref<TileSet> p_tile_set) { if (texture.is_valid()) { String item_text = vformat("%s (id:%d)", texture->get_path().get_file(), source_id); atlas_merging_atlases_list->add_item(item_text, texture); - atlas_merging_atlases_list->set_item_metadata(atlas_merging_atlases_list->get_item_count() - 1, source_id); + atlas_merging_atlases_list->set_item_metadata(-1, source_id); } } } diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp index 4a0fc0b29f..8d8c65f2c4 100644 --- a/editor/plugins/tiles/tile_map_editor.cpp +++ b/editor/plugins/tiles/tile_map_editor.cpp @@ -188,7 +188,7 @@ void TileMapEditorTilesPlugin::_update_tile_set_sources_list() { } sources_list->add_item(item_text, texture); - sources_list->set_item_metadata(sources_list->get_item_count() - 1, source_id); + sources_list->set_item_metadata(-1, source_id); } if (sources_list->get_item_count() > 0) { diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp index ade591cde6..0c78a0f1c0 100644 --- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp @@ -108,7 +108,7 @@ void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::_bind_methods() { ClassDB::bind_method(D_METHOD("set_id", "id"), &TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::set_id); ClassDB::bind_method(D_METHOD("get_id"), &TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::get_id); - ADD_PROPERTY(PropertyInfo(Variant::INT, "id"), "set_id", "get_id"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "id", PROPERTY_HINT_RANGE, "0," + itos(INT_MAX) + ",1"), "set_id", "get_id"); ADD_SIGNAL(MethodInfo("changed", PropertyInfo(Variant::STRING, "what"))); } diff --git a/editor/plugins/tiles/tile_set_editor.cpp b/editor/plugins/tiles/tile_set_editor.cpp index 49e589c9ef..8b0b184f54 100644 --- a/editor/plugins/tiles/tile_set_editor.cpp +++ b/editor/plugins/tiles/tile_set_editor.cpp @@ -182,7 +182,7 @@ void TileSetEditor::_update_sources_list(int force_selected_id) { } sources_list->add_item(item_text, texture); - sources_list->set_item_metadata(sources_list->get_item_count() - 1, source_id); + sources_list->set_item_metadata(-1, source_id); } // Set again the current selected item if needed. diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp index b1d5b348c4..443d5975cd 100644 --- a/editor/plugins/version_control_editor_plugin.cpp +++ b/editor/plugins/version_control_editor_plugin.cpp @@ -329,7 +329,7 @@ void VersionControlEditorPlugin::register_editor() { if (!EditorVCSInterface::get_singleton()) { EditorNode::get_singleton()->add_control_to_dock(EditorNode::DOCK_SLOT_RIGHT_UL, version_commit_dock); TabContainer *dock_vbc = (TabContainer *)version_commit_dock->get_parent_control(); - dock_vbc->set_tab_title(version_commit_dock->get_index(), TTR("Commit")); + dock_vbc->set_tab_title(dock_vbc->get_tab_idx_from_control(version_commit_dock), TTR("Commit")); Button *vc = EditorNode::get_singleton()->add_bottom_panel_item(TTR("Version Control"), version_control_dock); set_version_control_tool_button(vc); diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index a821faf6b3..7f30dd91e5 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -555,7 +555,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) { } if (custom_editor) { - if (is_curve || (hb == nullptr && !vsnode->is_use_prop_slots() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == ""))) { + if (is_curve || (hb == nullptr && !vsnode->is_use_prop_slots() && (vsnode->get_output_port_count() == 0 || vsnode->get_output_port_name(0) == "") && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == ""))) { //will be embedded in first port } else { port_offset++; @@ -1074,6 +1074,7 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) { hide(); } else { if (changed) { // to avoid tree collapse + _update_varying_tree(); _update_options_menu(); _update_preview(); _update_graph(); @@ -1081,6 +1082,10 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) { } } +void VisualShaderEditor::update_nodes() { + _update_nodes(); +} + void VisualShaderEditor::add_plugin(const Ref<VisualShaderNodePlugin> &p_plugin) { if (plugins.has(p_plugin)) { return; @@ -1164,10 +1169,7 @@ bool VisualShaderEditor::_is_available(int p_mode) { return (p_mode == -1 || (p_mode & current_mode) != 0); } -void VisualShaderEditor::update_custom_nodes() { - if (members_dialog->is_visible()) { - return; - } +void VisualShaderEditor::_update_nodes() { clear_custom_types(); List<StringName> class_list; ScriptServer::get_global_class_list(&class_list); @@ -1183,6 +1185,9 @@ void VisualShaderEditor::update_custom_nodes() { Ref<VisualShaderNodeCustom> ref; ref.instantiate(); ref->set_script(script); + if (!ref->is_available(visual_shader->get_mode(), visual_shader->get_shader_type())) { + continue; + } String name; if (ref->has_method("_get_name")) { @@ -1239,6 +1244,32 @@ void VisualShaderEditor::update_custom_nodes() { } } + // Disables not-supported copied items. + { + for (CopyItem &item : copy_items_buffer) { + Ref<VisualShaderNodeCustom> custom = Object::cast_to<VisualShaderNodeCustom>(item.node.ptr()); + + if (custom.is_valid()) { + if (!custom->is_available(visual_shader->get_mode(), visual_shader->get_shader_type())) { + item.disabled = true; + } else { + item.disabled = false; + } + } else { + for (int i = 0; i < add_options.size(); i++) { + if (add_options[i].type == item.node->get_class_name()) { + if ((add_options[i].func != visual_shader->get_mode() && add_options[i].func != -1) || !_is_available(add_options[i].mode)) { + item.disabled = true; + } else { + item.disabled = false; + } + break; + } + } + } + } + } + Array keys = added.keys(); keys.sort(); @@ -1460,6 +1491,7 @@ void VisualShaderEditor::_set_mode(int p_which) { edit_type_fog->set_visible(false); edit_type = edit_type_sky; custom_mode_box->set_visible(false); + varying_button->hide(); mode = MODE_FLAGS_SKY; } else if (p_which == VisualShader::MODE_FOG) { edit_type_standard->set_visible(false); @@ -1468,6 +1500,7 @@ void VisualShaderEditor::_set_mode(int p_which) { edit_type_fog->set_visible(true); edit_type = edit_type_fog; custom_mode_box->set_visible(false); + varying_button->hide(); mode = MODE_FLAGS_FOG; } else if (p_which == VisualShader::MODE_PARTICLES) { edit_type_standard->set_visible(false); @@ -1480,6 +1513,7 @@ void VisualShaderEditor::_set_mode(int p_which) { } else { custom_mode_box->set_visible(true); } + varying_button->hide(); mode = MODE_FLAGS_PARTICLES; } else { edit_type_particles->set_visible(false); @@ -1488,6 +1522,7 @@ void VisualShaderEditor::_set_mode(int p_which) { edit_type_fog->set_visible(false); edit_type = edit_type_standard; custom_mode_box->set_visible(false); + varying_button->show(); mode = MODE_FLAGS_SPATIAL_CANVASITEM; } visual_shader->set_shader_type(get_current_shader_type()); @@ -1616,6 +1651,7 @@ void VisualShaderEditor::_update_graph() { Vector<int> nodes = visual_shader->get_node_list(type); _update_uniforms(false); + _update_varyings(); graph_plugin->clear_links(); graph_plugin->make_dirty(true); @@ -2778,6 +2814,116 @@ void VisualShaderEditor::_add_node(int p_idx, const Vector<Variant> &p_ops, Stri } } +void VisualShaderEditor::_add_varying(const String &p_name, VisualShader::VaryingMode p_mode, VisualShader::VaryingType p_type) { + undo_redo->create_action(vformat(TTR("Add Varying to Visual Shader: %s"), p_name)); + + undo_redo->add_do_method(visual_shader.ptr(), "add_varying", p_name, p_mode, p_type); + undo_redo->add_undo_method(visual_shader.ptr(), "remove_varying", p_name); + + undo_redo->add_do_method(this, "_update_varyings"); + undo_redo->add_undo_method(this, "_update_varyings"); + + for (int i = 0; i <= VisualShader::TYPE_LIGHT; i++) { + if (p_mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT && i == 0) { + continue; + } + + VisualShader::Type type = VisualShader::Type(i); + Vector<int> nodes = visual_shader->get_node_list(type); + + for (int j = 0; j < nodes.size(); j++) { + int node_id = nodes[j]; + Ref<VisualShaderNode> vsnode = visual_shader->get_node(type, node_id); + Ref<VisualShaderNodeVarying> var = vsnode; + + if (var.is_valid()) { + undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, node_id); + undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, node_id); + } + } + } + + undo_redo->add_do_method(this, "_update_varying_tree"); + undo_redo->add_undo_method(this, "_update_varying_tree"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_remove_varying(const String &p_name) { + undo_redo->create_action(vformat(TTR("Remove Varying from Visual Shader: %s"), p_name)); + + VisualShader::VaryingMode mode = visual_shader->get_varying_mode(p_name); + + undo_redo->add_do_method(visual_shader.ptr(), "remove_varying", p_name); + undo_redo->add_undo_method(visual_shader.ptr(), "add_varying", p_name, mode, visual_shader->get_varying_type(p_name)); + + undo_redo->add_do_method(this, "_update_varyings"); + undo_redo->add_undo_method(this, "_update_varyings"); + + for (int i = 0; i <= VisualShader::TYPE_LIGHT; i++) { + if (mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT && i == 0) { + continue; + } + + VisualShader::Type type = VisualShader::Type(i); + Vector<int> nodes = visual_shader->get_node_list(type); + + for (int j = 0; j < nodes.size(); j++) { + int node_id = nodes[j]; + Ref<VisualShaderNode> vsnode = visual_shader->get_node(type, node_id); + Ref<VisualShaderNodeVarying> var = vsnode; + + if (var.is_valid()) { + String var_name = var->get_varying_name(); + + if (var_name == p_name) { + undo_redo->add_do_method(var.ptr(), "set_varying_name", "[None]"); + undo_redo->add_undo_method(var.ptr(), "set_varying_name", var_name); + undo_redo->add_do_method(var.ptr(), "set_varying_type", VisualShader::VARYING_TYPE_FLOAT); + undo_redo->add_undo_method(var.ptr(), "set_varying_type", var->get_varying_type()); + } + undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type, node_id); + undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type, node_id); + } + } + + List<VisualShader::Connection> connections; + visual_shader->get_node_connections(type, &connections); + + for (VisualShader::Connection &E : connections) { + Ref<VisualShaderNodeVaryingGetter> var_getter = Object::cast_to<VisualShaderNodeVaryingGetter>(visual_shader->get_node(type, E.from_node).ptr()); + if (var_getter.is_valid() && E.from_port > 0) { + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + } + Ref<VisualShaderNodeVaryingSetter> var_setter = Object::cast_to<VisualShaderNodeVaryingSetter>(visual_shader->get_node(type, E.to_node).ptr()); + if (var_setter.is_valid() && E.to_port > 0) { + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + } + } + } + + undo_redo->add_do_method(this, "_update_varying_tree"); + undo_redo->add_undo_method(this, "_update_varying_tree"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_update_varyings() { + VisualShaderNodeVarying::clear_varyings(); + + for (int i = 0; i < visual_shader->get_varyings_count(); i++) { + const VisualShader::Varying *var = visual_shader->get_varying_by_index(i); + + if (var != nullptr) { + VisualShaderNodeVarying::add_varying(var->name, var->mode, var->type); + } + } +} + void VisualShaderEditor::_node_dragged(const Vector2 &p_from, const Vector2 &p_to, int p_node) { VisualShader::Type type = get_current_shader_type(); drag_buffer.push_back({ type, p_node, p_from, p_to }); @@ -3254,15 +3400,23 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) { selected_float_constant = -1; } - if (to_change.is_empty() && copy_items_buffer.is_empty()) { + bool copy_buffer_empty = true; + for (const CopyItem &item : copy_items_buffer) { + if (!item.disabled) { + copy_buffer_empty = false; + break; + } + } + + if (to_change.is_empty() && copy_buffer_empty) { _show_members_dialog(true); } else { popup_menu->set_item_disabled(NodeMenuOptions::CUT, to_change.is_empty()); popup_menu->set_item_disabled(NodeMenuOptions::COPY, to_change.is_empty()); - popup_menu->set_item_disabled(NodeMenuOptions::PASTE, copy_items_buffer.is_empty()); + popup_menu->set_item_disabled(NodeMenuOptions::PASTE, copy_buffer_empty); popup_menu->set_item_disabled(NodeMenuOptions::DELETE, to_change.is_empty()); popup_menu->set_item_disabled(NodeMenuOptions::DUPLICATE, to_change.is_empty()); - popup_menu->set_item_disabled(NodeMenuOptions::CLEAR_COPY_BUFFER, copy_items_buffer.is_empty()); + popup_menu->set_item_disabled(NodeMenuOptions::CLEAR_COPY_BUFFER, copy_buffer_empty); int temp = popup_menu->get_item_index(NodeMenuOptions::SEPARATOR2); if (temp != -1) { @@ -3364,6 +3518,49 @@ void VisualShaderEditor::_show_members_dialog(bool at_mouse_pos, VisualShaderNod node_filter->select_all(); } +void VisualShaderEditor::_show_varying_menu() { + varying_options->set_item_disabled(int(VaryingMenuOptions::REMOVE), visual_shader->get_varyings_count() == 0); + varying_options->set_position(graph->get_screen_position() + varying_button->get_position() + Size2(0, varying_button->get_size().height)); + varying_options->popup(); +} + +void VisualShaderEditor::_varying_menu_id_pressed(int p_idx) { + switch (VaryingMenuOptions(p_idx)) { + case VaryingMenuOptions::ADD: { + _show_add_varying_dialog(); + } break; + case VaryingMenuOptions::REMOVE: { + _show_remove_varying_dialog(); + } break; + default: + break; + } +} + +void VisualShaderEditor::_show_add_varying_dialog() { + _varying_name_changed(varying_name->get_text()); + + add_varying_dialog->set_position(graph->get_screen_position() + varying_button->get_position() + Point2(5 * EDSCALE, 65 * EDSCALE)); + add_varying_dialog->popup(); + + // Keep dialog within window bounds. + Rect2 window_rect = Rect2(DisplayServer::get_singleton()->window_get_position(), DisplayServer::get_singleton()->window_get_size()); + Rect2 dialog_rect = Rect2(add_varying_dialog->get_position(), add_varying_dialog->get_size()); + Vector2 difference = (dialog_rect.get_end() - window_rect.get_end()).max(Vector2()); + add_varying_dialog->set_position(add_varying_dialog->get_position() - difference); +} + +void VisualShaderEditor::_show_remove_varying_dialog() { + remove_varying_dialog->set_position(graph->get_screen_position() + varying_button->get_position() + Point2(5 * EDSCALE, 65 * EDSCALE)); + remove_varying_dialog->popup(); + + // Keep dialog within window bounds. + Rect2 window_rect = Rect2(DisplayServer::get_singleton()->window_get_position(), DisplayServer::get_singleton()->window_get_size()); + Rect2 dialog_rect = Rect2(remove_varying_dialog->get_position(), remove_varying_dialog->get_size()); + Vector2 difference = (dialog_rect.get_end() - window_rect.get_end()).max(Vector2()); + remove_varying_dialog->set_position(remove_varying_dialog->get_position() - difference); +} + void VisualShaderEditor::_sbox_input(const Ref<InputEvent> &p_ie) { Ref<InputEventKey> ie = p_ie; if (ie.is_valid() && (ie->get_keycode() == Key::UP || ie->get_keycode() == Key::DOWN || ie->get_keycode() == Key::ENTER || ie->get_keycode() == Key::KP_ENTER)) { @@ -3416,8 +3613,10 @@ void VisualShaderEditor::_notification(int p_what) { Color function_color = EDITOR_GET("text_editor/theme/highlighting/function_color"); Color number_color = EDITOR_GET("text_editor/theme/highlighting/number_color"); Color members_color = EDITOR_GET("text_editor/theme/highlighting/member_variable_color"); + Color error_color = get_theme_color(SNAME("error_color"), SNAME("Editor")); preview_text->add_theme_color_override("background_color", background_color); + varying_error_label->add_theme_color_override("font_color", error_color); for (const String &E : keyword_list) { if (ShaderLanguage::is_control_flow_keyword(E)) { @@ -3445,7 +3644,7 @@ void VisualShaderEditor::_notification(int p_what) { error_panel->add_theme_style_override("panel", get_theme_stylebox(SNAME("panel"), SNAME("Panel"))); error_label->add_theme_font_override("font", get_theme_font(SNAME("status_source"), SNAME("EditorFonts"))); error_label->add_theme_font_size_override("font_size", get_theme_font_size(SNAME("status_source_size"), SNAME("EditorFonts"))); - error_label->add_theme_color_override("font_color", get_theme_color(SNAME("error_color"), SNAME("Editor"))); + error_label->add_theme_color_override("font_color", error_color); } tools->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Tools"), SNAME("EditorIcons"))); @@ -3554,6 +3753,17 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, List<CopyItem> &r_items, c if (p_duplicate) { undo_redo->create_action(TTR("Duplicate VisualShader Node(s)")); } else { + bool copy_buffer_empty = true; + for (const CopyItem &item : copy_items_buffer) { + if (!item.disabled) { + copy_buffer_empty = false; + break; + } + } + if (copy_buffer_empty) { + return; + } + undo_redo->create_action(TTR("Paste VisualShader Node(s)")); } @@ -3566,16 +3776,7 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, List<CopyItem> &r_items, c Set<int> added_set; for (CopyItem &item : r_items) { - bool unsupported = false; - for (int i = 0; i < add_options.size(); i++) { - if (add_options[i].type == item.node->get_class_name()) { - if (!_is_available(add_options[i].mode)) { - unsupported = true; - } - break; - } - } - if (unsupported) { + if (item.disabled) { unsupported_set.insert(item.id); continue; } @@ -3616,7 +3817,10 @@ void VisualShaderEditor::_dup_paste_nodes(int p_type, List<CopyItem> &r_items, c } id_from = base_id; - for (int i = 0; i < r_items.size(); i++) { + for (const CopyItem &item : r_items) { + if (item.disabled) { + continue; + } undo_redo->add_undo_method(visual_shader.ptr(), "remove_node", type, id_from); undo_redo->add_undo_method(graph_plugin.ptr(), "remove_node", type, id_from); id_from++; @@ -3717,7 +3921,7 @@ void VisualShaderEditor::_mode_selected(int p_id) { } visual_shader->set_shader_type(VisualShader::Type(p_id + offset)); - _update_options_menu(); + _update_nodes(); _update_graph(); graph->grab_focus(); @@ -3828,6 +4032,75 @@ void VisualShaderEditor::_uniform_select_item(Ref<VisualShaderNodeUniformRef> p_ undo_redo->commit_action(); } +void VisualShaderEditor::_varying_select_item(Ref<VisualShaderNodeVarying> p_varying, String p_name) { + String prev_name = p_varying->get_varying_name(); + + if (p_name == prev_name) { + return; + } + + bool is_getter = Ref<VisualShaderNodeVaryingGetter>(p_varying.ptr()).is_valid(); + + UndoRedo *undo_redo = EditorNode::get_singleton()->get_undo_redo(); + undo_redo->create_action(TTR("Varying Name Changed")); + + undo_redo->add_do_method(p_varying.ptr(), "set_varying_name", p_name); + undo_redo->add_undo_method(p_varying.ptr(), "set_varying_name", prev_name); + + VisualShader::VaryingType vtype = p_varying->get_varying_type_by_name(p_name); + VisualShader::VaryingType prev_vtype = p_varying->get_varying_type_by_name(prev_name); + + bool type_changed = vtype != prev_vtype; + + if (type_changed) { + undo_redo->add_do_method(p_varying.ptr(), "set_varying_type", vtype); + undo_redo->add_undo_method(p_varying.ptr(), "set_varying_type", prev_vtype); + } + + // update ports + for (int type_id = 0; type_id < VisualShader::TYPE_MAX; type_id++) { + VisualShader::Type type = VisualShader::Type(type_id); + int id = visual_shader->find_node_id(type, p_varying); + + if (id != VisualShader::NODE_ID_INVALID) { + if (type_changed) { + List<VisualShader::Connection> conns; + visual_shader->get_node_connections(type, &conns); + + for (const VisualShader::Connection &E : conns) { + if (is_getter) { + if (E.from_node == id) { + if (visual_shader->is_port_types_compatible(p_varying->get_varying_type_by_name(p_name), visual_shader->get_node(type, E.to_node)->get_input_port_type(E.to_port))) { + continue; + } + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + } + } else { + if (E.to_node == id) { + if (visual_shader->is_port_types_compatible(p_varying->get_varying_type_by_name(p_name), visual_shader->get_node(type, E.from_node)->get_output_port_type(E.from_port))) { + continue; + } + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_do_method(graph_plugin.ptr(), "disconnect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + undo_redo->add_undo_method(graph_plugin.ptr(), "connect_nodes", type, E.from_node, E.from_port, E.to_node, E.to_port); + } + } + } + } + + undo_redo->add_do_method(graph_plugin.ptr(), "update_node", type_id, id); + undo_redo->add_undo_method(graph_plugin.ptr(), "update_node", type_id, id); + break; + } + } + + undo_redo->commit_action(); +} + void VisualShaderEditor::_float_constant_selected(int p_which) { ERR_FAIL_INDEX(p_which, MAX_FLOAT_CONST_DEFS); @@ -3882,6 +4155,92 @@ void VisualShaderEditor::_member_cancel() { from_slot = -1; } +void VisualShaderEditor::_update_varying_tree() { + varyings->clear(); + TreeItem *root = varyings->create_item(); + + int count = visual_shader->get_varyings_count(); + + for (int i = 0; i < count; i++) { + const VisualShader::Varying *varying = visual_shader->get_varying_by_index(i); + + if (varying) { + TreeItem *item = varyings->create_item(root); + item->set_text(0, varying->name); + + if (i == 0) { + item->select(0); + } + + switch (varying->type) { + case VisualShader::VARYING_TYPE_FLOAT: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("float"), SNAME("EditorIcons"))); + break; + case VisualShader::VARYING_TYPE_VECTOR_2D: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector2"), SNAME("EditorIcons"))); + break; + case VisualShader::VARYING_TYPE_VECTOR_3D: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector3"), SNAME("EditorIcons"))); + break; + case VisualShader::VARYING_TYPE_COLOR: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Color"), SNAME("EditorIcons"))); + break; + case VisualShader::VARYING_TYPE_TRANSFORM: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Transform3D"), SNAME("EditorIcons"))); + break; + default: + break; + } + } + } + + varying_options->set_item_disabled(int(VaryingMenuOptions::REMOVE), count == 0); +} + +void VisualShaderEditor::_varying_create() { + _add_varying(varying_name->get_text(), (VisualShader::VaryingMode)varying_mode->get_selected(), (VisualShader::VaryingType)varying_type->get_selected()); + add_varying_dialog->hide(); +} + +void VisualShaderEditor::_varying_name_changed(const String &p_text) { + String name = p_text; + + if (!name.is_valid_identifier()) { + varying_error_label->show(); + varying_error_label->set_text(TTR("Invalid name for varying.")); + add_varying_dialog->get_ok_button()->set_disabled(true); + return; + } + if (visual_shader->has_varying(name)) { + varying_error_label->show(); + varying_error_label->set_text(TTR("Varying with that name is already exist.")); + add_varying_dialog->get_ok_button()->set_disabled(true); + return; + } + if (varying_error_label->is_visible()) { + varying_error_label->hide(); + add_varying_dialog->set_size(Size2(add_varying_dialog->get_size().x, 0)); + } + add_varying_dialog->get_ok_button()->set_disabled(false); +} + +void VisualShaderEditor::_varying_deleted() { + TreeItem *item = varyings->get_selected(); + + if (item != nullptr) { + _remove_varying(item->get_text(0)); + remove_varying_dialog->hide(); + } +} + +void VisualShaderEditor::_varying_selected() { + add_varying_dialog->get_ok_button()->set_disabled(false); +} + +void VisualShaderEditor::_varying_unselected() { + add_varying_dialog->get_ok_button()->set_disabled(true); +} + void VisualShaderEditor::_tools_menu_option(int p_idx) { TreeItem *category = members->get_root()->get_first_child(); @@ -4149,15 +4508,18 @@ void VisualShaderEditor::_visibility_changed() { } void VisualShaderEditor::_bind_methods() { + ClassDB::bind_method("_update_nodes", &VisualShaderEditor::_update_nodes); ClassDB::bind_method("_update_graph", &VisualShaderEditor::_update_graph); - ClassDB::bind_method("_update_options_menu", &VisualShaderEditor::_update_options_menu); ClassDB::bind_method("_add_node", &VisualShaderEditor::_add_node); ClassDB::bind_method("_node_changed", &VisualShaderEditor::_node_changed); ClassDB::bind_method("_input_select_item", &VisualShaderEditor::_input_select_item); ClassDB::bind_method("_uniform_select_item", &VisualShaderEditor::_uniform_select_item); + ClassDB::bind_method("_varying_select_item", &VisualShaderEditor::_varying_select_item); ClassDB::bind_method("_set_node_size", &VisualShaderEditor::_set_node_size); ClassDB::bind_method("_clear_copy_buffer", &VisualShaderEditor::_clear_copy_buffer); ClassDB::bind_method("_update_uniforms", &VisualShaderEditor::_update_uniforms); + ClassDB::bind_method("_update_varyings", &VisualShaderEditor::_update_varyings); + ClassDB::bind_method("_update_varying_tree", &VisualShaderEditor::_update_varying_tree); ClassDB::bind_method("_set_mode", &VisualShaderEditor::_set_mode); ClassDB::bind_method("_nodes_dragged", &VisualShaderEditor::_nodes_dragged); ClassDB::bind_method("_float_constant_selected", &VisualShaderEditor::_float_constant_selected); @@ -4284,11 +4646,23 @@ VisualShaderEditor::VisualShaderEditor() { add_node = memnew(Button); add_node->set_flat(true); - graph->get_zoom_hbox()->add_child(add_node); add_node->set_text(TTR("Add Node...")); + graph->get_zoom_hbox()->add_child(add_node); graph->get_zoom_hbox()->move_child(add_node, 0); add_node->connect("pressed", callable_mp(this, &VisualShaderEditor::_show_members_dialog), varray(false, VisualShaderNode::PORT_TYPE_MAX, VisualShaderNode::PORT_TYPE_MAX)); + varying_button = memnew(Button); + varying_button->set_flat(true); + varying_button->set_text(TTR("Manage Varyings")); + graph->get_zoom_hbox()->add_child(varying_button); + varying_button->connect("pressed", callable_mp(this, &VisualShaderEditor::_show_varying_menu)); + + varying_options = memnew(PopupMenu); + add_child(varying_options); + varying_options->add_item(TTR("Add Varying"), int(VaryingMenuOptions::ADD)); + varying_options->add_item(TTR("Remove Varying"), int(VaryingMenuOptions::REMOVE)); + varying_options->connect("id_pressed", callable_mp(this, &VisualShaderEditor::_varying_menu_id_pressed)); + preview_shader = memnew(Button); preview_shader->set_flat(true); preview_shader->set_toggle_mode(true); @@ -4412,6 +4786,74 @@ VisualShaderEditor::VisualShaderEditor() { members_dialog->connect("cancelled", callable_mp(this, &VisualShaderEditor::_member_cancel)); add_child(members_dialog); + // add varyings dialog + { + add_varying_dialog = memnew(ConfirmationDialog); + add_varying_dialog->set_title(TTR("Create Shader Varying")); + add_varying_dialog->set_exclusive(false); + add_varying_dialog->get_ok_button()->set_text(TTR("Create")); + add_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_create)); + add_varying_dialog->get_ok_button()->set_disabled(true); + add_child(add_varying_dialog); + + VBoxContainer *vb = memnew(VBoxContainer); + add_varying_dialog->add_child(vb); + + HBoxContainer *hb = memnew(HBoxContainer); + vb->add_child(hb); + hb->set_h_size_flags(SIZE_EXPAND_FILL); + + varying_type = memnew(OptionButton); + hb->add_child(varying_type); + varying_type->add_item("Float"); + varying_type->add_item("Vector2"); + varying_type->add_item("Vector3"); + varying_type->add_item("Color"); + varying_type->add_item("Transform"); + + varying_name = memnew(LineEdit); + hb->add_child(varying_name); + varying_name->set_custom_minimum_size(Size2(150 * EDSCALE, 0)); + varying_name->set_h_size_flags(SIZE_EXPAND_FILL); + varying_name->connect("text_changed", callable_mp(this, &VisualShaderEditor::_varying_name_changed)); + + varying_mode = memnew(OptionButton); + hb->add_child(varying_mode); + varying_mode->add_item("Vertex -> [Fragment, Light]"); + varying_mode->add_item("Fragment -> Light"); + + varying_error_label = memnew(Label); + vb->add_child(varying_error_label); + varying_error_label->set_h_size_flags(SIZE_EXPAND_FILL); + + varying_error_label->hide(); + } + + // remove varying dialog + { + remove_varying_dialog = memnew(ConfirmationDialog); + remove_varying_dialog->set_title(TTR("Delete Shader Varying")); + remove_varying_dialog->set_exclusive(false); + remove_varying_dialog->get_ok_button()->set_text(TTR("Delete")); + remove_varying_dialog->get_ok_button()->connect("pressed", callable_mp(this, &VisualShaderEditor::_varying_deleted)); + add_child(remove_varying_dialog); + + VBoxContainer *vb = memnew(VBoxContainer); + remove_varying_dialog->add_child(vb); + + varyings = memnew(Tree); + vb->add_child(varyings); + varyings->set_h_size_flags(SIZE_EXPAND_FILL); + varyings->set_v_size_flags(SIZE_EXPAND_FILL); + varyings->set_hide_root(true); + varyings->set_allow_reselect(true); + varyings->set_hide_folding(false); + varyings->set_custom_minimum_size(Size2(180 * EDSCALE, 200 * EDSCALE)); + varyings->connect("item_activated", callable_mp(this, &VisualShaderEditor::_varying_deleted)); + varyings->connect("item_selected", callable_mp(this, &VisualShaderEditor::_varying_selected)); + varyings->connect("nothing_selected", callable_mp(this, &VisualShaderEditor::_varying_unselected)); + } + alert = memnew(AcceptDialog); alert->get_label()->set_autowrap_mode(Label::AUTOWRAP_WORD); alert->get_label()->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); @@ -4578,6 +5020,10 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), { "point_size" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Tangent", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_mode, "tangent"), { "tangent" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), { "vertex" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("VertexId", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "vertex_id"), { "vertex_id" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("ViewIndex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_index"), { "view_index" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("ViewMonoLeft", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_mono_left"), { "view_mono_left" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("ViewRight", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_right"), { "view_right" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Alpha", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "alpha"), { "alpha" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Binormal", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "binormal"), { "binormal" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); @@ -4591,6 +5037,9 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("Tangent", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "tangent"), { "tangent" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Vertex", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "vertex"), { "vertex" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("View", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), { "view" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("ViewIndex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_index"), { "view_index" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("ViewMonoLeft", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_mono_left"), { "view_mono_left" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("ViewRight", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "view_right"), { "view_right" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Albedo", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "albedo"), { "albedo" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Attenuation", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "attenuation"), { "attenuation" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); @@ -4601,6 +5050,7 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("LightColor", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "light_color"), { "light_color" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Metallic", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "metallic"), { "metallic" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Roughness", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "roughness"), { "roughness" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("ShadowAttenuation", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "shadow_attenuation"), { "shadow_attenuation" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("Specular", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_light_shader_mode, "specular"), { "specular" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); add_options.push_back(AddOption("View", "Input", "Light", "VisualShaderNodeInput", vformat(input_param_for_fragment_and_light_shader_modes, "view"), { "view" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); @@ -4610,9 +5060,11 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("Canvas", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "canvas"), { "canvas" }, VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("InstanceCustom", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "instance_custom"), { "instance_custom" }, VisualShaderNode::PORT_TYPE_VECTOR_3D, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("InstanceCustomAlpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "instance_custom_alpha"), { "instance_custom_alpha" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); + add_options.push_back(AddOption("InstanceId", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "instance_id"), { "instance_id" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("PointSize", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "point_size"), { "point_size" }, VisualShaderNode::PORT_TYPE_SCALAR, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("Screen", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "screen"), { "screen" }, VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("Vertex", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_mode, "vertex"), { "vertex" }, VisualShaderNode::PORT_TYPE_VECTOR_2D, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); + add_options.push_back(AddOption("VertexId", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "vertex_id"), { "vertex_id" }, VisualShaderNode::PORT_TYPE_SCALAR_INT, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("World", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "world"), { "world" }, VisualShaderNode::PORT_TYPE_TRANSFORM, TYPE_FLAGS_VERTEX, Shader::MODE_CANVAS_ITEM)); add_options.push_back(AddOption("AtLightPass", "Input", "Fragment", "VisualShaderNodeInput", vformat(input_param_for_vertex_and_fragment_shader_modes, "at_light_pass"), { "at_light_pass" }, VisualShaderNode::PORT_TYPE_BOOLEAN, TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); @@ -4989,6 +5441,10 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("Expression", "Special", "", "VisualShaderNodeExpression", TTR("Custom Godot Shader Language expression, with custom amount of input and output ports. This is a direct injection of code into the vertex/fragment/light function, do not use it to write the function declarations inside."))); add_options.push_back(AddOption("GlobalExpression", "Special", "", "VisualShaderNodeGlobalExpression", TTR("Custom Godot Shader Language expression, which is placed on top of the resulted shader. You can place various function definitions inside and call it later in the Expressions. You can also declare varyings, uniforms and constants."))); add_options.push_back(AddOption("UniformRef", "Special", "", "VisualShaderNodeUniformRef", TTR("A reference to an existing uniform."))); + add_options.push_back(AddOption("VaryingGetter", "Special", "", "VisualShaderNodeVaryingGetter", TTR("Get varying parameter."), {}, -1, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("VaryingSetter", "Special", "", "VisualShaderNodeVaryingSetter", TTR("Set varying parameter."), {}, -1, TYPE_FLAGS_VERTEX | TYPE_FLAGS_FRAGMENT, Shader::MODE_SPATIAL)); + add_options.push_back(AddOption("VaryingGetter", "Special", "", "VisualShaderNodeVaryingGetter", TTR("Get varying parameter."), {}, -1, TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT, Shader::MODE_CANVAS_ITEM)); + add_options.push_back(AddOption("VaryingSetter", "Special", "", "VisualShaderNodeVaryingSetter", TTR("Set varying parameter."), {}, -1, TYPE_FLAGS_VERTEX | TYPE_FLAGS_FRAGMENT, Shader::MODE_CANVAS_ITEM)); custom_node_option_idx = add_options.size(); @@ -5026,7 +5482,7 @@ void VisualShaderEditorPlugin::make_visible(bool p_visible) { //editor->animation_panel_make_visible(true); button->show(); EditorNode::get_singleton()->make_bottom_panel_item_visible(visual_shader_editor); - visual_shader_editor->update_custom_nodes(); + visual_shader_editor->update_nodes(); visual_shader_editor->set_process_input(true); //visual_shader_editor->set_process(true); } else { @@ -5102,6 +5558,82 @@ public: //////////////// +class VisualShaderNodePluginVaryingEditor : public OptionButton { + GDCLASS(VisualShaderNodePluginVaryingEditor, OptionButton); + + Ref<VisualShaderNodeVarying> varying; + +public: + void _notification(int p_what) { + if (p_what == NOTIFICATION_READY) { + connect("item_selected", callable_mp(this, &VisualShaderNodePluginVaryingEditor::_item_selected)); + } + } + + void _item_selected(int p_item) { + VisualShaderEditor *editor = VisualShaderEditor::get_singleton(); + if (editor) { + editor->call_deferred(SNAME("_varying_select_item"), varying, get_item_text(p_item)); + } + } + + void setup(const Ref<VisualShaderNodeVarying> &p_varying, VisualShader::Type p_type) { + varying = p_varying; + + Ref<Texture2D> type_icon[] = { + EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("float"), SNAME("EditorIcons")), + EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector2"), SNAME("EditorIcons")), + EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Vector3"), SNAME("EditorIcons")), + EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Color"), SNAME("EditorIcons")), + EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Transform3D"), SNAME("EditorIcons")), + }; + + bool is_getter = Ref<VisualShaderNodeVaryingGetter>(p_varying.ptr()).is_valid(); + + add_item("[None]"); + + int to_select = -1; + for (int i = 0, j = 0; i < varying->get_varyings_count(); i++) { + VisualShader::VaryingMode mode = varying->get_varying_mode_by_index(i); + if (is_getter) { + if (mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT) { + if (p_type != VisualShader::TYPE_LIGHT) { + j++; + continue; + } + } else { + if (p_type != VisualShader::TYPE_FRAGMENT && p_type != VisualShader::TYPE_LIGHT) { + j++; + continue; + } + } + } else { + if (mode == VisualShader::VARYING_MODE_FRAG_TO_LIGHT) { + if (p_type != VisualShader::TYPE_FRAGMENT) { + j++; + continue; + } + } else { + if (p_type != VisualShader::TYPE_VERTEX) { + j++; + continue; + } + } + } + if (varying->get_varying_name() == varying->get_varying_name_by_index(i)) { + to_select = i - j + 1; + } + add_icon_item(type_icon[varying->get_varying_type_by_index(i)], varying->get_varying_name_by_index(i)); + } + + if (to_select >= 0) { + select(to_select); + } + } +}; + +//////////////// + class VisualShaderNodePluginUniformRefEditor : public OptionButton { GDCLASS(VisualShaderNodePluginUniformRefEditor, OptionButton); @@ -5280,18 +5812,24 @@ public: }; Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_parent_resource, const Ref<VisualShaderNode> &p_node) { + Ref<VisualShader> p_shader = Ref<VisualShader>(p_parent_resource.ptr()); + + if (p_shader.is_valid() && (p_node->is_class("VisualShaderNodeVaryingGetter") || p_node->is_class("VisualShaderNodeVaryingSetter"))) { + VisualShaderNodePluginVaryingEditor *editor = memnew(VisualShaderNodePluginVaryingEditor); + editor->setup(p_node, p_shader->get_shader_type()); + return editor; + } + if (p_node->is_class("VisualShaderNodeUniformRef")) { - //create input - VisualShaderNodePluginUniformRefEditor *uniform_editor = memnew(VisualShaderNodePluginUniformRefEditor); - uniform_editor->setup(p_node); - return uniform_editor; + VisualShaderNodePluginUniformRefEditor *editor = memnew(VisualShaderNodePluginUniformRefEditor); + editor->setup(p_node); + return editor; } if (p_node->is_class("VisualShaderNodeInput")) { - //create input - VisualShaderNodePluginInputEditor *input_editor = memnew(VisualShaderNodePluginInputEditor); - input_editor->setup(p_node); - return input_editor; + VisualShaderNodePluginInputEditor *editor = memnew(VisualShaderNodePluginInputEditor); + editor->setup(p_node); + return editor; } Vector<StringName> properties = p_node->get_editable_properties(); @@ -5408,8 +5946,24 @@ void EditorPropertyShaderMode::_option_selected(int p_which) { } } - undo_redo->add_do_method(editor, "_update_options_menu"); - undo_redo->add_undo_method(editor, "_update_options_menu"); + //4. delete varyings (if needed) + if (p_which == VisualShader::MODE_PARTICLES || p_which == VisualShader::MODE_SKY || p_which == VisualShader::MODE_FOG) { + int var_count = visual_shader->get_varyings_count(); + + if (var_count > 0) { + for (int i = 0; i < var_count; i++) { + const VisualShader::Varying *var = visual_shader->get_varying_by_index(i); + undo_redo->add_do_method(visual_shader.ptr(), "remove_varying", var->name); + undo_redo->add_undo_method(visual_shader.ptr(), "add_varying", var->name, var->mode, var->type); + } + + undo_redo->add_do_method(editor, "_update_varyings"); + undo_redo->add_undo_method(editor, "_update_varyings"); + } + } + + undo_redo->add_do_method(editor, "_update_nodes"); + undo_redo->add_undo_method(editor, "_update_nodes"); undo_redo->add_do_method(editor, "_update_graph"); undo_redo->add_undo_method(editor, "_update_graph"); diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h index 02beba971b..4087fc583c 100644 --- a/editor/plugins/visual_shader_editor_plugin.h +++ b/editor/plugins/visual_shader_editor_plugin.h @@ -139,6 +139,8 @@ class VisualShaderEditor : public VBoxContainer { Ref<VisualShader> visual_shader; GraphEdit *graph = nullptr; Button *add_node = nullptr; + Button *varying_button = nullptr; + PopupMenu *varying_options = nullptr; Button *preview_shader = nullptr; OptionButton *edit_type = nullptr; @@ -169,6 +171,15 @@ class VisualShaderEditor : public VBoxContainer { PopupMenu *constants_submenu = nullptr; MenuButton *tools = nullptr; + ConfirmationDialog *add_varying_dialog = nullptr; + OptionButton *varying_type = nullptr; + LineEdit *varying_name = nullptr; + OptionButton *varying_mode = nullptr; + Label *varying_error_label = nullptr; + + ConfirmationDialog *remove_varying_dialog = nullptr; + Tree *varyings = nullptr; + PopupPanel *comment_title_change_popup = nullptr; LineEdit *comment_title_change_edit = nullptr; @@ -232,6 +243,11 @@ class VisualShaderEditor : public VBoxContainer { SET_COMMENT_DESCRIPTION, }; + enum class VaryingMenuOptions { + ADD, + REMOVE, + }; + Tree *members = nullptr; AcceptDialog *alert = nullptr; LineEdit *node_filter = nullptr; @@ -241,6 +257,12 @@ class VisualShaderEditor : public VBoxContainer { void _tools_menu_option(int p_idx); void _show_members_dialog(bool at_mouse_pos, VisualShaderNode::PortType p_input_port_type = VisualShaderNode::PORT_TYPE_MAX, VisualShaderNode::PortType p_output_port_type = VisualShaderNode::PORT_TYPE_MAX); + void _show_varying_menu(); + void _varying_menu_id_pressed(int p_idx); + void _show_add_varying_dialog(); + void _show_remove_varying_dialog(); + + void _update_nodes(); void _update_graph(); struct AddOption { @@ -291,6 +313,8 @@ class VisualShaderEditor : public VBoxContainer { void _setup_node(VisualShaderNode *p_node, const Vector<Variant> &p_ops); void _add_node(int p_idx, const Vector<Variant> &p_ops, String p_resource_path = "", int p_node_idx = -1); + void _add_varying(const String &p_name, VisualShader::VaryingMode p_mode, VisualShader::VaryingType p_type); + void _remove_varying(const String &p_name); void _update_options_menu(); void _set_mode(int p_which); @@ -371,6 +395,7 @@ class VisualShaderEditor : public VBoxContainer { String group_inputs; String group_outputs; String expression; + bool disabled = false; }; void _dup_copy_nodes(int p_type, List<CopyItem> &r_nodes, List<VisualShader::Connection> &r_connections); @@ -394,6 +419,7 @@ class VisualShaderEditor : public VBoxContainer { void _input_select_item(Ref<VisualShaderNodeInput> input, String name); void _uniform_select_item(Ref<VisualShaderNodeUniformRef> p_uniform, String p_name); + void _varying_select_item(Ref<VisualShaderNodeVarying> p_varying, String p_name); void _float_constant_selected(int p_which); @@ -425,6 +451,13 @@ class VisualShaderEditor : public VBoxContainer { void _member_create(); void _member_cancel(); + void _varying_create(); + void _varying_name_changed(const String &p_text); + void _varying_deleted(); + void _varying_selected(); + void _varying_unselected(); + void _update_varying_tree(); + Vector2 menu_point; void _node_menu_id_pressed(int p_idx); @@ -436,6 +469,7 @@ class VisualShaderEditor : public VBoxContainer { void _update_created_node(GraphNode *node); void _update_uniforms(bool p_update_refs); void _update_uniform_refs(Set<String> &p_names); + void _update_varyings(); void _visibility_changed(); @@ -444,7 +478,7 @@ protected: static void _bind_methods(); public: - void update_custom_nodes(); + void update_nodes(); void add_plugin(const Ref<VisualShaderNodePlugin> &p_plugin); void remove_plugin(const Ref<VisualShaderNodePlugin> &p_plugin); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index 55a4dc2c67..9963ac0232 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -883,7 +883,8 @@ void ProjectExportDialog::_export_project() { List<String> extension_list = platform->get_binary_extensions(current); for (int i = 0; i < extension_list.size(); i++) { - export_project->add_filter("*." + extension_list[i] + " ; " + platform->get_name() + " Export"); + // TRANSLATORS: This is the name of a project export file format. %s will be replaced by the platform name. + export_project->add_filter(vformat("*.%s; %s", extension_list[i], vformat(TTR("%s Export"), platform->get_name()))); } if (!current->get_export_path().is_empty()) { @@ -1055,7 +1056,7 @@ ProjectExportDialog::ProjectExportDialog() { // Subsections. sections = memnew(TabContainer); - sections->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + sections->set_tab_alignment(TabBar::ALIGNMENT_LEFT); sections->set_use_hidden_tabs_for_min_size(true); settings_vb->add_child(sections); sections->set_v_size_flags(Control::SIZE_EXPAND_FILL); @@ -1127,9 +1128,6 @@ ProjectExportDialog::ProjectExportDialog() { // Script export parameters. - updating_script_key = false; - updating_enc_filters = false; - VBoxContainer *sec_vb = memnew(VBoxContainer); sec_vb->set_name(TTR("Encryption")); @@ -1152,7 +1150,7 @@ ProjectExportDialog::ProjectExportDialog() { enc_ex_filters = memnew(LineEdit); enc_ex_filters->connect("text_changed", callable_mp(this, &ProjectExportDialog::_enc_filters_changed)); sec_vb->add_margin_child( - TTR("Filters to exclude files/folders\n(comma-separated, e.g: *.stex, *.import, music/*)"), + TTR("Filters to exclude files/folders\n(comma-separated, e.g: *.ctex, *.import, music/*)"), enc_ex_filters); script_key = memnew(LineEdit); @@ -1194,8 +1192,6 @@ ProjectExportDialog::ProjectExportDialog() { // Export buttons, dialogs and errors. - updating = false; - get_cancel_button()->set_text(TTR("Close")); get_ok_button()->set_text(TTR("Export PCK/ZIP...")); export_button = add_button(TTR("Export Project..."), !DisplayServer::get_singleton()->get_swap_cancel_ok(), "export"); diff --git a/editor/project_export.h b/editor/project_export.h index 569563ba55..057fd31168 100644 --- a/editor/project_export.h +++ b/editor/project_export.h @@ -71,7 +71,7 @@ private: CheckButton *runnable; Button *button_export; - bool updating; + bool updating = false; AcceptDialog *error_dialog; ConfirmationDialog *delete_confirm; @@ -152,8 +152,8 @@ private: void _update_feature_list(); void _custom_features_changed(const String &p_text); - bool updating_script_key; - bool updating_enc_filters; + bool updating_script_key = false; + bool updating_enc_filters = false; void _enc_pck_changed(bool p_pressed); void _enc_directory_changed(bool p_pressed); void _enc_filters_changed(const String &p_text); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 87d008d144..35902fd354 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -147,7 +147,7 @@ private: } String _test_path() { - DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); String valid_path, valid_install_path; if (d->change_dir(project_path->get_text()) == OK) { valid_path = project_path->get_text(); @@ -165,7 +165,6 @@ private: if (valid_path.is_empty()) { set_message(TTR("The path specified doesn't exist."), MESSAGE_ERROR); - memdelete(d); get_ok_button()->set_disabled(true); return ""; } @@ -179,7 +178,6 @@ private: if (valid_install_path.is_empty()) { set_message(TTR("The path specified doesn't exist."), MESSAGE_ERROR, INSTALL_PATH); - memdelete(d); get_ok_button()->set_disabled(true); return ""; } @@ -194,7 +192,6 @@ private: unzFile pkg = unzOpen2(valid_path.utf8().get_data(), &io); if (!pkg) { set_message(TTR("Error opening package file (it's not in ZIP format)."), MESSAGE_ERROR); - memdelete(d); get_ok_button()->set_disabled(true); unzClose(pkg); return ""; @@ -215,7 +212,6 @@ private: if (ret == UNZ_END_OF_LIST_OF_FILE) { set_message(TTR("Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file."), MESSAGE_ERROR); - memdelete(d); get_ok_button()->set_disabled(true); unzClose(pkg); return ""; @@ -242,14 +238,12 @@ private: if (!is_folder_empty) { set_message(TTR("Please choose an empty folder."), MESSAGE_WARNING, INSTALL_PATH); - memdelete(d); get_ok_button()->set_disabled(true); return ""; } } else { set_message(TTR("Please choose a \"project.godot\" or \".zip\" file."), MESSAGE_ERROR); - memdelete(d); install_path_container->hide(); get_ok_button()->set_disabled(true); return ""; @@ -257,7 +251,6 @@ private: } else if (valid_path.ends_with("zip")) { set_message(TTR("This directory already contains a Godot project."), MESSAGE_ERROR, INSTALL_PATH); - memdelete(d); get_ok_button()->set_disabled(true); return ""; } @@ -282,7 +275,6 @@ private: if (!is_folder_empty) { set_message(TTR("The selected path is not empty. Choosing an empty folder is highly recommended."), MESSAGE_WARNING); - memdelete(d); get_ok_button()->set_disabled(false); return valid_path; } @@ -290,7 +282,6 @@ private: set_message(""); set_message("", MESSAGE_SUCCESS, INSTALL_PATH); - memdelete(d); get_ok_button()->set_disabled(false); return valid_path; } @@ -389,7 +380,7 @@ private: return; } - DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); if (d->change_dir(project_path->get_text()) == OK) { if (!d->dir_exists(project_name_no_edges)) { if (d->make_dir(project_name_no_edges) == OK) { @@ -408,8 +399,6 @@ private: dialog_error->popup_centered(); } } - - memdelete(d); } void _text_changed(const String &p_text) { @@ -551,14 +540,11 @@ private: if (path.is_empty() || path == zip_root || !zip_root.is_subsequence_of(path)) { // } else if (path.ends_with("/")) { // a dir - path = path.substr(0, path.length() - 1); String rel_path = path.substr(zip_root.length()); - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); da->make_dir(dir.plus_file(rel_path)); - memdelete(da); - } else { Vector<uint8_t> data; data.resize(info.uncompressed_size); @@ -620,9 +606,8 @@ private: void _remove_created_folder() { if (!created_folder_path.is_empty()) { - DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); d->remove(created_folder_path); - memdelete(d); create_dir->set_disabled(false); created_folder_path = ""; @@ -725,10 +710,9 @@ public: project_path->set_text(fav_dir); fdialog->set_current_dir(fav_dir); } else { - DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); project_path->set_text(d->get_current_dir()); fdialog->set_current_dir(d->get_current_dir()); - memdelete(d); } String proj = TTR("New Game Project"); project_name->set_text(proj); @@ -1057,6 +1041,8 @@ public: } }; + bool project_opening_initiated; + ProjectList(); ~ProjectList(); @@ -1136,6 +1122,7 @@ ProjectList::ProjectList() { add_child(_scroll_children); _icon_load_index = 0; + project_opening_initiated = false; } ProjectList::~ProjectList() { @@ -1818,7 +1805,9 @@ void ProjectList::_panel_input(const Ref<InputEvent> &p_ev, Node *p_hb) { emit_signal(SNAME(SIGNAL_SELECTION_CHANGED)); - if (!mb->is_ctrl_pressed() && mb->is_double_click()) { + // Do not allow opening a project more than once using a single project manager instance. + // Opening the same project in several editor instances at once can lead to various issues. + if (!mb->is_ctrl_pressed() && mb->is_double_click() && !project_opening_initiated) { emit_signal(SNAME(SIGNAL_PROJECT_ASK_OPEN)); } } @@ -2140,6 +2129,8 @@ void ProjectManager::_open_selected_projects() { ERR_FAIL_COND(err); } + _project_list->project_opening_initiated = true; + _dim_window(); get_tree()->quit(); } @@ -2404,12 +2395,11 @@ void ProjectManager::_files_dropped(PackedStringArray p_files, int p_screen) { return; } Set<String> folders_set; - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); for (int i = 0; i < p_files.size(); i++) { String file = p_files[i]; folders_set.insert(da->dir_exists(file) ? file : file.get_base_dir()); } - memdelete(da); if (folders_set.size() > 0) { PackedStringArray folders; for (Set<String>::Element *E = folders_set.front(); E; E = E->next()) { @@ -2418,7 +2408,7 @@ void ProjectManager::_files_dropped(PackedStringArray p_files, int p_screen) { bool confirm = true; if (folders.size() == 1) { - DirAccess *dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + DirAccessRef dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); if (dir->change_dir(folders[0]) == OK) { dir->list_dir_begin(); String file = dir->get_next(); @@ -2430,7 +2420,6 @@ void ProjectManager::_files_dropped(PackedStringArray p_files, int p_screen) { } dir->list_dir_end(); } - memdelete(dir); } if (confirm) { multi_scan_ask->get_ok_button()->disconnect("pressed", callable_mp(this, &ProjectManager::_scan_multiple_folders)); @@ -2566,7 +2555,7 @@ ProjectManager::ProjectManager() { tabs = memnew(TabContainer); center_box->add_child(tabs); tabs->set_anchors_and_offsets_preset(Control::PRESET_WIDE); - tabs->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tabs->set_tab_alignment(TabBar::ALIGNMENT_LEFT); tabs->connect("tab_changed", callable_mp(this, &ProjectManager::_on_tab_changed)); HBoxContainer *projects_hb = memnew(HBoxContainer); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 03179733d5..c4019bc22d 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -63,7 +63,7 @@ void ProjectSettingsEditor::queue_save() { } void ProjectSettingsEditor::set_plugins_page() { - tab_container->set_current_tab(plugin_settings->get_index()); + tab_container->set_current_tab(tab_container->get_tab_idx_from_control(plugin_settings)); } void ProjectSettingsEditor::update_plugins() { @@ -559,7 +559,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { data = p_data; tab_container = memnew(TabContainer); - tab_container->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tab_container->set_tab_alignment(TabBar::ALIGNMENT_LEFT); tab_container->set_use_hidden_tabs_for_min_size(true); add_child(tab_container); @@ -663,7 +663,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { tab_container->add_child(localization_editor); autoload_settings = memnew(EditorAutoloadSettings); - autoload_settings->set_name(TTR("AutoLoad")); + autoload_settings->set_name(TTR("Autoload")); autoload_settings->connect("autoload_changed", callable_mp(this, &ProjectSettingsEditor::queue_save)); tab_container->add_child(autoload_settings); diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp index cd65ee7ae6..52fb0d4f4e 100644 --- a/editor/property_editor.cpp +++ b/editor/property_editor.cpp @@ -228,7 +228,7 @@ void CustomPropertyEditor::_menu_option(int p_which) { file_system_dock->navigate_to_path(r->get_path()); // Ensure that the FileSystem dock is visible. TabContainer *tab_container = (TabContainer *)file_system_dock->get_parent_control(); - tab_container->set_current_tab(file_system_dock->get_index()); + tab_container->set_current_tab(tab_container->get_tab_idx_from_control(file_system_dock)); } break; default: { if (p_which >= CONVERT_BASE_ID) { @@ -907,7 +907,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant:: } } - if (!is_custom_resource && !ClassDB::can_instantiate(t)) { + if (!is_custom_resource && (!ClassDB::can_instantiate(t) || ClassDB::is_virtual(t))) { continue; } @@ -1771,9 +1771,6 @@ void CustomPropertyEditor::_bind_methods() { } CustomPropertyEditor::CustomPropertyEditor() { - read_only = false; - updating = false; - value_vbox = memnew(VBoxContainer); add_child(value_vbox); diff --git a/editor/property_editor.h b/editor/property_editor.h index c4287dc115..73306e0bc2 100644 --- a/editor/property_editor.h +++ b/editor/property_editor.h @@ -119,7 +119,7 @@ class CustomPropertyEditor : public PopupPanel { TextureRect *texture_preview; ColorPicker *color_picker; TextEdit *text_edit; - bool read_only; + bool read_only = false; bool picking_viewport; GridContainer *checks20gc; CheckBox *checks20[20]; @@ -132,7 +132,7 @@ class CustomPropertyEditor : public PopupPanel { Object *owner; - bool updating; + bool updating = false; PropertyValueEvaluator *evaluator; diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp index 453ecb6b24..1ac15a0a9d 100644 --- a/editor/property_selector.cpp +++ b/editor/property_selector.cpp @@ -589,7 +589,6 @@ PropertySelector::PropertySelector() { search_options->connect("cell_selected", callable_mp(this, &PropertySelector::_item_selected)); search_options->set_hide_root(true); search_options->set_hide_folding(true); - virtuals_only = false; help_bit = memnew(EditorHelpBit); vbc->add_margin_child(TTR("Description:"), help_bit); diff --git a/editor/property_selector.h b/editor/property_selector.h index 1e8c6300a0..7e629a847e 100644 --- a/editor/property_selector.h +++ b/editor/property_selector.h @@ -56,7 +56,7 @@ class PropertySelector : public ConfirmationDialog { String base_type; ObjectID script; Object *instance; - bool virtuals_only; + bool virtuals_only = false; Vector<Variant::Type> type_filter; diff --git a/editor/quick_open.cpp b/editor/quick_open.cpp index 4e64aba1db..53da945868 100644 --- a/editor/quick_open.cpp +++ b/editor/quick_open.cpp @@ -245,8 +245,6 @@ void EditorQuickOpen::_bind_methods() { } EditorQuickOpen::EditorQuickOpen() { - allow_multi_select = false; - VBoxContainer *vbc = memnew(VBoxContainer); vbc->connect("theme_changed", callable_mp(this, &EditorQuickOpen::_theme_changed)); add_child(vbc); diff --git a/editor/quick_open.h b/editor/quick_open.h index dc485a7c86..f50f09604c 100644 --- a/editor/quick_open.h +++ b/editor/quick_open.h @@ -42,7 +42,7 @@ class EditorQuickOpen : public ConfirmationDialog { LineEdit *search_box; Tree *search_options; StringName base_type; - bool allow_multi_select; + bool allow_multi_select = false; Vector<String> files; OAHashMap<String, Ref<Texture2D>> icons; diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp index 46751058d0..93c5b9ad4c 100644 --- a/editor/rename_dialog.cpp +++ b/editor/rename_dialog.cpp @@ -114,7 +114,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und vbc->add_child(cbut_collapse_features); tabc_features = memnew(TabContainer); - tabc_features->set_tab_alignment(TabContainer::ALIGNMENT_LEFT); + tabc_features->set_tab_alignment(TabBar::ALIGNMENT_LEFT); tabc_features->set_use_hidden_tabs_for_min_size(true); vbc->add_child(tabc_features); diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 628e7880a1..8d7916685a 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -1535,7 +1535,7 @@ void SceneTreeDock::perform_node_renames(Node *p_base, Map<Node *, NodePath> *p_ } } - bool autorename_animation_tracks = bool(EDITOR_DEF("editors/animation/autorename_animation_tracks", true)); + bool autorename_animation_tracks = bool(EDITOR_GET("editors/animation/autorename_animation_tracks")); if (autorename_animation_tracks && Object::cast_to<AnimationPlayer>(p_base)) { AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_base); @@ -2551,7 +2551,7 @@ void SceneTreeDock::_files_dropped(Vector<String> p_files, NodePath p_to, int p_ menu_properties->clear(); for (const String &p : valid_properties) { menu_properties->add_item(capitalize ? p.capitalize() : p); - menu_properties->set_item_metadata(menu_properties->get_item_count() - 1, p); + menu_properties->set_item_metadata(-1, p); } menu_properties->reset_size(); @@ -3497,8 +3497,6 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec menu_subresources->set_name("Sub-Resources"); menu_subresources->connect("id_pressed", callable_mp(this, &SceneTreeDock::_tool_selected), make_binds(false)); menu->add_child(menu_subresources); - first_enter = true; - restore_script_editor_on_drag = false; menu_properties = memnew(PopupMenu); add_child(menu_properties); @@ -3512,9 +3510,6 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec set_process_input(true); set_process(true); - profile_allow_editing = true; - profile_allow_script_editing = true; - EDITOR_DEF("interface/editors/show_scene_tree_root_selection", true); EDITOR_DEF("interface/editors/derive_script_globals_by_name", true); EDITOR_DEF("_use_favorites_root_selection", false); diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h index 2a98c469dc..938f83725d 100644 --- a/editor/scene_tree_dock.h +++ b/editor/scene_tree_dock.h @@ -105,7 +105,7 @@ class SceneTreeDock : public VBoxContainer { Vector<ObjectID> subresources; - bool restore_script_editor_on_drag; + bool restore_script_editor_on_drag = false; bool reset_create_dialog = false; int current_option; @@ -166,7 +166,7 @@ class SceneTreeDock : public VBoxContainer { PopupMenu *menu_properties; ConfirmationDialog *clear_inherit_confirm; - bool first_enter; + bool first_enter = true; void _create(); void _do_create(Node *p_parent); @@ -261,8 +261,8 @@ class SceneTreeDock : public VBoxContainer { void _create_remap_for_node(Node *p_node, Map<RES, RES> &r_remap); void _create_remap_for_resource(RES p_resource, Map<RES, RES> &r_remap); - bool profile_allow_editing; - bool profile_allow_script_editing; + bool profile_allow_editing = true; + bool profile_allow_script_editing = true; static void _update_configuration_warning(); diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index ba65828ac1..3b8c540592 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -135,7 +135,8 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i set_selected(n); - NodeDock::get_singleton()->get_parent()->call("set_current_tab", NodeDock::get_singleton()->get_index()); + TabContainer *tab_container = Object::cast_to<TabContainer>(NodeDock::get_singleton()->get_parent()); + NodeDock::get_singleton()->get_parent()->call("set_current_tab", tab_container->get_tab_idx_from_control(NodeDock::get_singleton())); NodeDock::get_singleton()->show_connections(); } else if (p_id == BUTTON_GROUPS) { @@ -144,7 +145,8 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i set_selected(n); - NodeDock::get_singleton()->get_parent()->call("set_current_tab", NodeDock::get_singleton()->get_index()); + TabContainer *tab_container = Object::cast_to<TabContainer>(NodeDock::get_singleton()->get_parent()); + NodeDock::get_singleton()->get_parent()->call("set_current_tab", tab_container->get_tab_idx_from_control(NodeDock::get_singleton())); NodeDock::get_singleton()->show_groups(); } } @@ -1195,17 +1197,11 @@ void SceneTreeEditor::_bind_methods() { } SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_open_instance) { - connect_to_script_mode = false; - connecting_signal = false; undo_redo = nullptr; - tree_dirty = true; selected = nullptr; - marked_selectable = false; - marked_children_selectable = false; can_rename = p_can_rename; can_open_instance = p_can_open_instance; - display_foreign = false; editor_selection = nullptr; if (p_label) { @@ -1247,11 +1243,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_ope add_child(warning); warning->set_title(TTR("Node Configuration Warning!")); - show_enabled_subscene = false; - last_hash = 0; - pending_test_update = false; - updating_tree = false; blocked = 0; update_timer = memnew(Timer); diff --git a/editor/scene_tree_editor.h b/editor/scene_tree_editor.h index f700182681..2466b8576a 100644 --- a/editor/scene_tree_editor.h +++ b/editor/scene_tree_editor.h @@ -65,8 +65,8 @@ class SceneTreeEditor : public Control { AcceptDialog *warning; bool auto_expand_selected = true; - bool connect_to_script_mode; - bool connecting_signal; + bool connect_to_script_mode = false; + bool connecting_signal = false; int blocked; @@ -92,18 +92,18 @@ class SceneTreeEditor : public Control { bool can_rename; bool can_open_instance; - bool updating_tree; - bool show_enabled_subscene; + bool updating_tree = false; + bool show_enabled_subscene = false; void _renamed(); UndoRedo *undo_redo; Set<Node *> marked; - bool marked_selectable; - bool marked_children_selectable; - bool display_foreign; - bool tree_dirty; - bool pending_test_update; + bool marked_selectable = false; + bool marked_children_selectable = false; + bool display_foreign = false; + bool tree_dirty = true; + bool pending_test_update = false; static void _bind_methods(); void _cell_button_pressed(Object *p_item, int p_column, int p_id); diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp index bf43e11cdb..baafef8639 100644 --- a/editor/script_create_dialog.cpp +++ b/editor/script_create_dialog.cpp @@ -247,23 +247,22 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must return TTR("Path is not local."); } - DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES); - if (d->change_dir(p.get_base_dir()) != OK) { - memdelete(d); - return TTR("Base path is invalid."); + { + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + if (da->change_dir(p.get_base_dir()) != OK) { + return TTR("Base path is invalid."); + } } - memdelete(d); - // Check if file exists. - DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES); - if (f->dir_exists(p)) { - memdelete(f); - return TTR("A directory with the same name exists."); - } else if (p_file_must_exist && !f->file_exists(p)) { - memdelete(f); - return TTR("File does not exist."); + { + // Check if file exists. + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + if (da->dir_exists(p)) { + return TTR("A directory with the same name exists."); + } else if (p_file_must_exist && !da->file_exists(p)) { + return TTR("File does not exist."); + } } - memdelete(f); // Check file extension. String extension = p.get_extension(); @@ -556,13 +555,12 @@ void ScriptCreateDialog::_path_changed(const String &p_path) { } // Check if file exists. - DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES); + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); String p = ProjectSettings::get_singleton()->localize_path(p_path.strip_edges()); - if (f->file_exists(p)) { + if (da->file_exists(p)) { is_new_script_created = false; _msg_path_valid(true, TTR("File exists, it will be reused.")); } - memdelete(f); is_path_valid = true; _update_dialog(); @@ -643,7 +641,7 @@ void ScriptCreateDialog::_update_template_menu() { if (!templates_found.is_empty()) { if (!separator) { template_menu->add_separator(); - template_menu->set_item_text(template_menu->get_item_count() - 1, display_name); + template_menu->set_item_text(-1, display_name); separator = true; } for (ScriptLanguage::ScriptTemplate &t : templates_found) { @@ -838,7 +836,7 @@ Vector<ScriptLanguage::ScriptTemplate> ScriptCreateDialog::_get_user_templates(c String dir_path = p_dir.plus_file(p_object); - DirAccess *d = DirAccess::open(dir_path); + DirAccessRef d = DirAccess::open(dir_path); if (d) { d->list_dir_begin(); String file = d->get_next(); @@ -849,7 +847,6 @@ Vector<ScriptLanguage::ScriptTemplate> ScriptCreateDialog::_get_user_templates(c file = d->get_next(); } d->list_dir_end(); - memdelete(d); } return user_templates; } @@ -1029,7 +1026,6 @@ ScriptCreateDialog::ScriptCreateDialog() { hb->add_child(parent_browse_button); gc->add_child(memnew(Label(TTR("Inherits:")))); gc->add_child(hb); - is_browsing_parent = false; /* Class Name */ @@ -1040,8 +1036,6 @@ ScriptCreateDialog::ScriptCreateDialog() { gc->add_child(class_name); /* Templates */ - - is_using_templates = true; gc->add_child(memnew(Label(TTR("Template:")))); HBoxContainer *template_hb = memnew(HBoxContainer); template_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -1082,7 +1076,6 @@ ScriptCreateDialog::ScriptCreateDialog() { Label *label = memnew(Label(TTR("Path:"))); gc->add_child(label); gc->add_child(hb); - re_check_path = false; path_controls[0] = label; path_controls[1] = hb; @@ -1119,17 +1112,4 @@ ScriptCreateDialog::ScriptCreateDialog() { set_hide_on_ok(false); set_title(TTR("Attach Node Script")); - - is_parent_name_valid = false; - is_class_name_valid = false; - is_path_valid = false; - - has_named_classes = false; - supports_built_in = false; - can_inherit_from_file = false; - is_built_in = false; - built_in_enabled = true; - load_enabled = true; - - is_new_script_created = true; } diff --git a/editor/script_create_dialog.h b/editor/script_create_dialog.h index 5c0f51812f..d7c43f322c 100644 --- a/editor/script_create_dialog.h +++ b/editor/script_create_dialog.h @@ -66,25 +66,23 @@ class ScriptCreateDialog : public ConfirmationDialog { VBoxContainer *path_vb; AcceptDialog *alert; CreateDialog *select_class; - bool path_valid; - bool create_new; - bool is_browsing_parent; + bool is_browsing_parent = false; String template_inactive_message; String initial_bp; - bool is_new_script_created; - bool is_path_valid; - bool has_named_classes; - bool supports_built_in; - bool can_inherit_from_file; - bool is_parent_name_valid; - bool is_class_name_valid; - bool is_built_in; - bool is_using_templates; - bool built_in_enabled; - bool load_enabled; + bool is_new_script_created = true; + bool is_path_valid = false; + bool has_named_classes = false; + bool supports_built_in = false; + bool can_inherit_from_file = false; + bool is_parent_name_valid = false; + bool is_class_name_valid = false; + bool is_built_in = false; + bool is_using_templates = true; + bool built_in_enabled = true; + bool load_enabled = true; int current_language; int default_language; - bool re_check_path; + bool re_check_path = false; Control *path_controls[2]; Control *name_controls[2]; diff --git a/editor/translations/af.po b/editor/translations/af.po index ad1b7ef436..86ed70ec3a 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -1529,6 +1529,11 @@ msgstr "Laai die verstek Bus Uitleg." msgid "Create a new Bus Layout." msgstr "Skep 'n nuwe Bus Uitleg." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Oop Oudio-Bus Uitleg" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Ongeldige naam." @@ -2953,7 +2958,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5727,6 +5732,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Skep Vouer" @@ -8265,7 +8274,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9197,6 +9211,11 @@ msgstr "Soek Vervanging Hulpbron:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Hulpbron" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Lede" @@ -9247,6 +9266,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Verander Skikking Waarde-Soort" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Verander Skikking Waarde-Soort" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Laai Verstek" @@ -9264,7 +9297,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Verander Skikking Waarde-Soort" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9992,18 +10036,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Passendes:" @@ -12654,6 +12686,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Eienskappe" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13994,6 +14031,9 @@ msgstr "Ongeldige naam." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 29efa92a54..4bccc25d91 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -44,10 +44,10 @@ # أحمد مصطفى الطبراني <eltabaraniahmed@gmail.com>, 2020. # ChemicalInk <aladdinalkhafaji@gmail.com>, 2020. # Musab Alasaifer <mousablasefer@gmail.com>, 2020. -# Yassine Oudjana <y.oudjana@protonmail.com>, 2020. +# Yassine Oudjana <y.oudjana@protonmail.com>, 2020, 2022. # bruvzg <bruvzg13@gmail.com>, 2020. # StarlkYT <mrsstarlkps4@gmail.com>, 2020, 2021. -# Games Toon <xxtvgoodxx@gmail.com>, 2021. +# Games Toon <xxtvgoodxx@gmail.com>, 2021, 2022. # Kareem Abduljaleel <karemjaleel34@gmail.com>, 2021. # ILG - Game <moegypt277@gmail.com>, 2021. # Hatim Jamal <hatimjamal8@gmail.com>, 2021. @@ -55,7 +55,7 @@ # abubakrAlsaab <madeinsudan19@gmail.com>, 2021. # Hafid Talbi <atalbiie@gmail.com>, 2021. # Hareth Mohammed <harethpy@gmail.com>, 2021. -# Mohammed Mubarak <modymu9@gmail.com>, 2021. +# Mohammed Mubarak <modymu9@gmail.com>, 2021, 2022. # Spirit <i8bou3@gmail.com>, 2021, 2022. # TURKYM7MD <turkytb7700@gmail.com>, 2022. # zeyad majed <zmajd62@gmail.com>, 2022. @@ -66,7 +66,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-16 08:44+0000\n" +"PO-Revision-Date: 2022-02-28 15:48+0000\n" "Last-Translator: Mr.k <mineshtine28546271@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" @@ -76,7 +76,7 @@ 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.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -85,13 +85,13 @@ msgstr "معامل خاطئ لدالة ()Convert، استخدم احدى الث #: 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 #: 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" @@ -103,7 +103,7 @@ msgstr "لا يمكن استخدام self لأن النموذج فارغ (لم #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "معاملات غير صالحة للمشغل %s، %s و %s." +msgstr "معاملات غير صالحة للمشغل %s, %s و %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" @@ -111,11 +111,11 @@ msgstr "فهرس غير صحيح للنوع %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'" -msgstr "معامل غير صالح للإنشاء '%s'" +msgstr "معامل غير صالح لإنشاء '%s'" #: core/math/expression.cpp msgid "On call to '%s':" @@ -131,23 +131,23 @@ msgstr "كيلوبايت" #: 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" @@ -191,72 +191,72 @@ msgstr "تحريك نقاط بيزية" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" -msgstr "تكرار مفاتيح التحريك" +msgstr "Anim تكرار مفاتيح التحريك" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Delete Keys" -msgstr "أزل مفاتيح التحريك" +msgstr "Anim أزل مفاتيح التحريك" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Time" -msgstr "تغيير وقت الإطار الرئيسي للحركة" +msgstr "Anim تغيير وقت الإطار الرئيسي" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "تغيير إنتقالية الرسوم المتحركة" +msgstr "Anim تغيير إنتقالية الرسوم المتحركة" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" -msgstr "تحويل تغيير التحريك" +msgstr "Anim تغيير التحويل" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" -msgstr "تغيير قيمة الإطار الأساسي للحركة" +msgstr "Anim تغيير قيمة الإطار الرئيسي" #: editor/animation_track_editor.cpp msgid "Anim Change Call" -msgstr "نداء تغيير التحريك" +msgstr "Anim تغيير النداء (Call)" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Time" -msgstr "وقت الإطار متعدد التغييرات للرسم المتحرك" +msgstr "Anim تغييرات متعددة لوقت الإطار الرئيسي" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Transition" -msgstr "المراحل الانتقالية للرسم المتحرك متعدد التغييرات" +msgstr "Anim تغييرات متعددة للمراحل الانتقالية" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Transform" -msgstr "التَحَوّل متعدد التغيير للرسوم المتحركة" +msgstr "Anim تغييرات متعددة للتحويلات" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Keyframe Value" -msgstr "قيمة الإطار متعدد التغييرات للرسم المتحرك" +msgstr "Anim تغييرات متعددة لقيمة الإطار(ات) الرئيسية" #: editor/animation_track_editor.cpp msgid "Anim Multi Change Call" -msgstr "استدعاء الرسوم المتحركة متعددة التغيير" +msgstr "Anime تغييرات متعددة نداء(ات)" #: editor/animation_track_editor.cpp msgid "Change Animation Length" -msgstr "تعديل طول عرض الحركة" +msgstr "تعديل مدة الرسم المتحرك" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "تعديل رباط عرض الحركة" +msgstr "تعديل رباط (Loop) الرسم المتحرك" #: editor/animation_track_editor.cpp msgid "Property Track" -msgstr "خط الخاصية" +msgstr "مسار خاصية" #: editor/animation_track_editor.cpp msgid "3D Transform Track" -msgstr "خط التحريك ثلاثي الأبعاد" +msgstr "مسار التحويل (تحريك في الأبعاد)" #: editor/animation_track_editor.cpp msgid "Call Method Track" -msgstr "استدعاء أسلوب المسار" +msgstr "مسار لاستدعاء دالة" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" @@ -264,19 +264,19 @@ msgstr "مسار منحنى بيزيه" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" -msgstr "شريط صبط الصوت" +msgstr "شريط ضبط الصوت" #: editor/animation_track_editor.cpp msgid "Animation Playback Track" -msgstr "شريط ضبط الحركة" +msgstr "شريط ضبط حركة الرسم المتحرك (Animation)" #: editor/animation_track_editor.cpp msgid "Animation length (frames)" -msgstr "مدة الحركة (بالإطارات)" +msgstr "مدة الرسم المتحرك (بالإطارات)" #: editor/animation_track_editor.cpp msgid "Animation length (seconds)" -msgstr "مدة الحركة (بالثواني)" +msgstr "مدة الرسم المتحرك (بالثواني)" #: editor/animation_track_editor.cpp msgid "Add Track" @@ -300,6 +300,7 @@ msgid "Anim Clips:" msgstr "مقاطع الرسوم المتحركة:" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Change Track Path" msgstr "تغيير مسار الطريق" @@ -309,13 +310,14 @@ msgstr "تمكين/إيقاف هذا المسار." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "وضع التحديث (كيف يتم تعيين هذه الخاصية)" +msgstr "وضع التحديث (كيفية تعيين هذه الخاصية)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" msgstr "وضعية الأستيفاء" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" msgstr "وضع التفاف الحلقة (نهاية العشوائية مع بداية الحلقة)" @@ -341,7 +343,7 @@ msgstr "متقطع" #: editor/animation_track_editor.cpp msgid "Trigger" -msgstr "مُطلق" +msgstr "تفعيل/أطلاق" #: editor/animation_track_editor.cpp msgid "Capture" @@ -358,7 +360,7 @@ msgstr "خطي" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "مكعب" +msgstr "مكعبي" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" @@ -371,36 +373,35 @@ msgstr "التفاف الحلقة المثبتة" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "أدخل المفتاح" +msgstr "أدخل مفتاح" #: editor/animation_track_editor.cpp msgid "Duplicate Key(s)" -msgstr "مفتاح (مفاتيح) المكررة" +msgstr "تكرار المفتاح (المفاتيح)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add RESET Value(s)" -msgstr "إضافة %d إطار(ات)" +msgstr "أضفْ قيمة(قيم) إعادة تعيين (RESET)" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" -msgstr "مفتاح الحذف()" +msgstr "حذف المفتاح (المفاتيح)" #: editor/animation_track_editor.cpp msgid "Change Animation Update Mode" -msgstr "تغيير وضع تحديث الحركة" +msgstr "تغيير وضع التحديث للرسم المتحرك" #: editor/animation_track_editor.cpp msgid "Change Animation Interpolation Mode" -msgstr "تغيير وضع عقدة الحركة" +msgstr "تغيير وضع التفسير (Interpolation) للرسم المتحرك" #: editor/animation_track_editor.cpp msgid "Change Animation Loop Mode" -msgstr "تغيير وضع عقدة الحركة" +msgstr "تغيير وضع عقدة الرسم المتحرك" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" -msgstr "حذف مسار التحريك" +msgstr "إزالة مسار التحريك" #. TRANSLATORS: %s will be replaced by a phrase describing the target of track. #: editor/animation_track_editor.cpp @@ -426,21 +427,22 @@ msgstr "أنشئ" #: editor/animation_track_editor.cpp msgid "Anim Insert" -msgstr "إدخال حركة" +msgstr "Anim إدخال حركة" #. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. #: editor/animation_track_editor.cpp msgid "node '%s'" -msgstr "وحدة '%s'" +msgstr "الوحدة '%s'" #. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. #: editor/animation_track_editor.cpp msgid "animation" -msgstr "رسوم متحركة" +msgstr "رسم متحرك" #: editor/animation_track_editor.cpp msgid "AnimationPlayer can't animate itself, only other players." -msgstr "اللأعب المتحرك لا يستطيع تحريك نفسه ,فقط اللاعبين الآخرين." +msgstr "" +"لاعب-التحريك (AnimationPlayer) لا يستطيع تحريك نفسه ,فقط اللاعبين الآخرين." #. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. #: editor/animation_track_editor.cpp @@ -449,15 +451,15 @@ msgstr "الخاصية '%s'" #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" -msgstr "أنشي حركة وأدخلها" +msgstr "Anim أنشئ وأضفْ" #: editor/animation_track_editor.cpp msgid "Anim Insert Track & Key" -msgstr "أنشي مسار حركة و مفتاح" +msgstr "Anim أضفْ مسار حركة و مفتاح" #: editor/animation_track_editor.cpp msgid "Anim Insert Key" -msgstr "أضف مفتاح الحركة" +msgstr "Anim أضفْ مفتاح الحركة" #: editor/animation_track_editor.cpp msgid "Change Animation Step" @@ -469,7 +471,7 @@ msgstr "إعادة ترتيب المسارات" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." -msgstr "تنطبق مسارات التحويل فقط على الحيز المكاني." +msgstr "تنطبق مسارات التحويل فقط على وحدات الحيز المكاني." #: editor/animation_track_editor.cpp msgid "" @@ -478,18 +480,18 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" -"يمكن للمسارات الصوتية أن تشير فقط إلى حيز الكتابة:\n" -"-الصوت الجاري للأعب\n" -"-الصوت الجاري للأعب ثنائي الأبعاد\n" -"-الصوت الجاري للأعب ثلاثي الأبعاد" +"يمكن للمسارات الصوتية فقط أن تشير إلى وحدات بنوع:\n" +"-لاعب الصوت الجاري\n" +"-لاعب الصوت الجاري للحيز ثنائي الأبعاد\n" +"-لاعب الصوت الجاري للحيز ثلاثي الأبعاد" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "مسارات الحركة يمكنها فقط أن تشير إلى عُقد مشغّل الحركة." +msgstr "مسارات الحركة يمكنها فقط أن تشير إلى وحدات مشغّل الرسوم المتحركة." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "لا يمكن إضافة مقطع جديد بدون جذر" +msgstr "لا يمكن إضافة مقطع جديد بدون جذر (root)" #: editor/animation_track_editor.cpp msgid "Invalid track for Bezier (no suitable sub-properties)" @@ -509,11 +511,11 @@ msgstr "المقطع ليس من نوع مكاني (Spatial), لا يمكن إض #: editor/animation_track_editor.cpp msgid "Add Transform Track Key" -msgstr "أضف مفتاح مقطع المتحول (Transform)" +msgstr "أضفْ مفتاح لمقطع التحويل (Transform Track)" #: editor/animation_track_editor.cpp msgid "Add Track Key" -msgstr "أضف مفتاح المقطع" +msgstr "أضفْ مفتاح المقطع" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." @@ -521,15 +523,15 @@ msgstr "مسار المقطع غير صالح, إذن لا يمكن إضافة #: editor/animation_track_editor.cpp msgid "Add Method Track Key" -msgstr "أضف مفتاح مقطع الدالة" +msgstr "أضْف مفتاح لمقطع الدالة (Method Track)" #: editor/animation_track_editor.cpp msgid "Method not found in object: " -msgstr "دالة لم توجد في شيئ: " +msgstr "دالة لم توجد في الكائن: " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" -msgstr "مفتاح حركة التحريك" +msgstr "Anim تحريك المفاتيح" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -542,7 +544,7 @@ msgstr "لصق المقاطع" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" -msgstr "مفتاح تكبير حركة" +msgstr "Anim تكبير المفاتيح" #: editor/animation_track_editor.cpp msgid "" @@ -550,9 +552,8 @@ msgid "" msgstr "هذا الخيار لا يعمل لتعديل منحنى بيزر (Bezier), لأنه فقط مقطع واحد." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Add RESET Keys" -msgstr "مفتاح تكبير حركة" +msgstr "Anim إضافة مفاتيح إعادة تعيين (RESET Keys)" #: editor/animation_track_editor.cpp msgid "" @@ -566,13 +567,13 @@ msgid "" "Alternatively, use an import preset that imports animations to separate " "files." msgstr "" -"هذه الحركة (رسوم متحركة) تنتمي الى مشهد مستورد، لذا فإن أي تغييرات في " -"المسارات المستوردة لن يتم حفظها.\n" +"هذه الرسوم المتحركة تنتمي الى مشهد مستورد، لذا فإن أي تغييرات في المسارات " +"المستوردة لن يتم حفظها.\n" "\n" "لتشغيل الامكانية لإضافة مسارات خاصة، انتقل إلى إعدادات استيراد المشهد واضبط " "\"رسوم متحركة > تخزين\" إلى \"ملفات\"،\n" "شغل \"رسوم متحركة > أحتفظ بالمقاطع (المسارات) المخصصة\"، ثم اعد الاستيراد.\n" -"يمكنك ايضاً استخدام إعدادات استيراد مسبقة تقوم باستيراد الرسم المتحرك الى " +"يمكنك ايضاً استخدام إعدادات استيراد مسبقة تقوم باستيراد الرسوم المتحركة الى " "ملفات متفرقة." #: editor/animation_track_editor.cpp @@ -584,6 +585,7 @@ msgid "Select an AnimationPlayer node to create and edit animations." msgstr "اختر مشغل الرسم المتحرك من شجرة المشهد لكي تنشئ أو تعدل الحركة." #: editor/animation_track_editor.cpp +#, fuzzy msgid "Only show tracks from nodes selected in tree." msgstr "فقط قم بتبين المقاطع من العقد (Nodes) المحددة في الشجرة." @@ -678,7 +680,7 @@ msgstr "إستعمل منحنيات بيزر" #: editor/animation_track_editor.cpp msgid "Create RESET Track(s)" -msgstr "إنشاء مسار/ات إعادة التعيين (RESET)" +msgstr "إنشاء مسار(ات) إعادة التعيين (RESET)" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -1127,8 +1129,8 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved " "to the system trash or deleted permanently." msgstr "" -"هل تريد حذف الملفات المحددة من المشروع؟ (لا يمكن التراجع.)\n" -"إستنادًا إلى نظام تشغيل جهازك, قد يتم نقل الملفات إلى سلة المهملات أو حذفها " +"هل تريد حذف الملفات المحددة من المشروع؟ (لا يمكن استعادتها.)\n" +"حسب إِعدادات مُدير ملفات نظام تشغيلك, سيتم نقلها إلى سلة المهملات أو ستحذف " "نهائيًا." #: editor/dependency_editor.cpp @@ -1139,10 +1141,10 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved " "to the system trash or deleted permanently." msgstr "" -"الملفات التي يتم إزالتها مطلوبة من قبل موارد أخرى من اجل أَن تعمل.\n" -"هل تريد إزالتها على أي حال؟ (لا تراجع).\n" -"حسب إِعدادات مُدير ملفاتِك, إِما سيتم نقل الملقات إِلى سلة المُهملات أَو سيتم حذفها " -"نهائياً." +"الملفات التي يتم إزالتها هي مطلوبة من قبل موارد أخرى لكي تعمل.\n" +"هل تريد إزالتها على أي حال؟ (لا يمكن التراجع).\n" +"اعتماداً على إِعدادات مُدير ملفات نظام تشغيلك, سيتم نقلها إِلى سلة المُهملات أَو " +"سيتم حذفها نهائياً." #: editor/dependency_editor.cpp msgid "Cannot remove:" @@ -1313,7 +1315,7 @@ msgstr "تراخيص" #: editor/editor_asset_installer.cpp msgid "Error opening asset file for \"%s\" (not in ZIP format)." -msgstr "حدث خطأ عندفتح ملف %s الحزمة بسبب أن الملف ليس في صيغة \"ZIP\"." +msgstr "حدث خطأ عند فتح ملف الحزمة لـ \"%s\" (لأنه ليس بصيغة ZIP) ." #: editor/editor_asset_installer.cpp msgid "%s (already exists)" @@ -1527,6 +1529,11 @@ msgstr "تحميل نسق المسار الإفتراضي." msgid "Create a new Bus Layout." msgstr "أنشئ نسق مسار جديد." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "إفتح نسق مسار الصوت" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "اسم غير صالح." @@ -1787,7 +1794,7 @@ msgstr "رصيف العُقد" #: editor/editor_feature_profile.cpp msgid "FileSystem Dock" -msgstr "إرساء نظام الملفات" +msgstr "رصيف نظام الملفات" #: editor/editor_feature_profile.cpp msgid "Import Dock" @@ -2150,12 +2157,11 @@ msgstr "التعليمات على الإنترنت" #: editor/editor_help.cpp msgid "Properties" -msgstr "خاصيات" +msgstr "خصائص" #: editor/editor_help.cpp -#, fuzzy msgid "overrides %s:" -msgstr "يتجاوز s%:" +msgstr "يتجاوز %s:" #: editor/editor_help.cpp msgid "default:" @@ -2163,7 +2169,7 @@ msgstr "الافتراضي:" #: editor/editor_help.cpp msgid "Methods" -msgstr "طرق" +msgstr "دوال" #: editor/editor_help.cpp msgid "Theme Properties" @@ -2296,14 +2302,13 @@ msgid "Property:" msgstr "خاصية:" #: editor/editor_inspector.cpp -#, fuzzy msgid "Pin value" -msgstr "(القيمة)" +msgstr "القيمة المثبتة" #: editor/editor_inspector.cpp msgid "" "Pinning a value forces it to be saved even if it's equal to the default." -msgstr "تثبيت القيمةيجْبرَهٌ حتي لو كانت تساوي القيمة الإفتراضية." +msgstr "تثبيت القيمة يجْبِرَهُ على حفظها حتى لو كانت تساوي القيمة الإفتراضية." #: editor/editor_inspector.cpp msgid "Pin value [Disabled because '%s' is editor-only]" @@ -2337,9 +2342,8 @@ msgid "Paste Property" msgstr "لصق ال" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property Path" -msgstr "نسخ مسار النص البرمجي" +msgstr "نسخ مسار الخاصية" #: editor/editor_log.cpp msgid "Output:" @@ -2495,7 +2499,7 @@ msgstr "ينشئ الصورة المصغرة" #: editor/editor_node.cpp msgid "This operation can't be done without a tree root." -msgstr "هذه العملية لا يمكنها الإكتمال من غير شجرة رئيسة." +msgstr "هذه العميلة لا يمكن إجرائها من غير جذر رئيسي." #: editor/editor_node.cpp msgid "" @@ -2554,17 +2558,16 @@ msgid "" "option and delete the Default layout." msgstr "" "تم تجاوز اعدادات المحرر الاساسيه.\n" -"لإستعادة اعدادات المحرر, اذهب إلى خيار 'Delete Layout' من ثم إحفظ الاعدادات " -"الاساسيه." +"لإستعادة اعدادات المحررالأساسية, اذهب إلى خيار 'Delete Layout' من ثم أزل " +"الاعدادات الاساسيه." #: editor/editor_node.cpp msgid "Layout name not found!" msgstr "إسم النسق غير موجود!" #: editor/editor_node.cpp -#, fuzzy msgid "Restored the Default layout to its base settings." -msgstr "إسترجاع النسق الإفتراضي إلي الإعدادات الأساسية." +msgstr "تم إسترجاع النسق الإفتراضي (Default layout) لاعدادتهِ الأساسية." #: editor/editor_node.cpp msgid "" @@ -2667,11 +2670,12 @@ msgstr "" "عموما." #: editor/editor_node.cpp -#, fuzzy msgid "" "A root node is required to save the scene. You can add a root node using the " "Scene tree dock." -msgstr "يتطلب حفظ المشهد توافر عُقدة رئيسة." +msgstr "" +"يتطلب حفظ المشهد توافر وحدة رئيسة. يمكنك إضافة وحدة رئيسية من خلال رصيف شجرة " +"المشهد." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -2815,7 +2819,7 @@ msgid "" msgstr "" "غير قادر علي تحميل النص البرمجي للإضافة من المسار: '%s'. يبدو أنه يوجد خطأ " "في ذلك النص البرمجي.\n" -"تعطيل الإضافة في '%s' كي لا تحصل أخطاء." +"تعطيل الإضافة في '%s' لتجنب الأخطاء لاحقاً." #: editor/editor_node.cpp msgid "" @@ -2955,7 +2959,7 @@ msgstr "تمكين/إيقاف الوضع الخالي من الإلهاء." msgid "Add a new scene." msgstr "إضافة مشهد جديد." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "مشهد" @@ -3040,15 +3044,15 @@ msgstr "إعدادات المشروع..." #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Version Control" -msgstr "التحكم بالإصدار" +msgstr "إدارة الإصدارات (Version Control)" #: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp msgid "Set Up Version Control" -msgstr "إعداد التحكم بالنسخة" +msgstr "إعداد إدارة الإصدارات (Version Control)" #: editor/editor_node.cpp msgid "Shut Down Version Control" -msgstr "إطفاء التحكم بالنسخة Version Control" +msgstr "إطفاء إدارة الإصدارات (Version Control)" #: editor/editor_node.cpp msgid "Export..." @@ -3059,9 +3063,8 @@ msgid "Install Android Build Template..." msgstr "تحميل قالب البناء للأندرويد..." #: editor/editor_node.cpp -#, fuzzy msgid "Open User Data Folder" -msgstr "فتح مجلّد بيانات المحرّر" +msgstr "إفتح مجلّد بيانات المستخدم" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" @@ -3069,12 +3072,11 @@ msgstr "أدوات" #: editor/editor_node.cpp msgid "Orphan Resource Explorer..." -msgstr "متصفح الموارد أورفان..." +msgstr "متصفح الموارد اليتيمة..." #: editor/editor_node.cpp -#, fuzzy msgid "Reload Current Project" -msgstr "إعادة تسمية المشروع" +msgstr "إعادة تحميل/تشغيل المشروع الحالي" #: editor/editor_node.cpp msgid "Quit to Project List" @@ -3107,7 +3109,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Small Deploy with Network Filesystem" -msgstr "نشر مصغر مع نظام ملفات الشبكة" +msgstr "نشر صغير مع نظام ملفات الشبكة" #: editor/editor_node.cpp msgid "" @@ -3183,7 +3185,6 @@ msgid "Synchronize Script Changes" msgstr "مزامنة تغييرات النص البرمجي" #: editor/editor_node.cpp -#, fuzzy msgid "" "When this option is enabled, any script that is saved will be reloaded in " "the running project.\n" @@ -3192,8 +3193,8 @@ msgid "" msgstr "" "حينما يكون هذا الإعداد مُفعل، أي نص برمجي يتم حفظه سيتم إعادة تحميله في " "اللعبة العاملة.\n" -"حينما يتم إستخدامه عن بُعد على جهاز، سيكون هذا أكثر فعالية مع نظام شبكات " -"الملفات." +"حينما يتم إستخدامه عن بُعد على جهاز، سيكون أكثر كفاءتاً عند تفعيل إعداد نظام " +"ملفات الشبكة." #: editor/editor_node.cpp editor/script_create_dialog.cpp msgid "Editor" @@ -3244,9 +3245,8 @@ msgid "Help" msgstr "مساعدة" #: editor/editor_node.cpp -#, fuzzy msgid "Online Documentation" -msgstr "فتح الوثائق" +msgstr "الوثائق الإلكترونية" #: editor/editor_node.cpp msgid "Questions & Answers" @@ -3269,9 +3269,8 @@ msgid "Community" msgstr "المجتمع" #: editor/editor_node.cpp -#, fuzzy msgid "About Godot" -msgstr "حول" +msgstr "حول غو-دوت" #: editor/editor_node.cpp msgid "Support Godot Development" @@ -3287,7 +3286,7 @@ msgstr "تشغيل" #: editor/editor_node.cpp msgid "Pause the scene execution for debugging." -msgstr "إيقاف المشهد الحالي من أجل المعالجة البرمجية." +msgstr "إيقاف المشهد من أجل تنقيح الكبوات البرمجية (debugging)." #: editor/editor_node.cpp msgid "Pause Scene" @@ -3334,7 +3333,7 @@ msgstr "تحديث عند التغيير" #: editor/editor_node.cpp #, fuzzy msgid "Update Vital Changes" -msgstr "تغيرات المادة:" +msgstr "تغيرات المادة" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -3424,7 +3423,7 @@ msgstr "دمج مع الموجود" #: editor/editor_node.cpp #, fuzzy msgid "Apply MeshInstance Transforms" -msgstr "تحويل تغيير التحريك" +msgstr "تطبيق التحويلات ل MeshInstance" #: editor/editor_node.cpp msgid "Open & Run a Script" @@ -3530,7 +3529,6 @@ msgid "Version" msgstr "الإصدار" #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Author" msgstr "المالك" @@ -3544,14 +3542,12 @@ msgid "Measure:" msgstr "قياس:" #: editor/editor_profiler.cpp -#, fuzzy msgid "Frame Time (ms)" -msgstr "وقت الاطار (ميلي ثانية)" +msgstr "وقت الإطار (مللي ثانية)" #: editor/editor_profiler.cpp -#, fuzzy msgid "Average Time (ms)" -msgstr "متوسط الوقت (ميلي ثانية)" +msgstr "متوسط الوقت (مللي ثانية)" #: editor/editor_profiler.cpp msgid "Frame %" @@ -3725,7 +3721,7 @@ msgid "" "as runnable." msgstr "" "لا يوجد إعداد تصدير مسبق عامل لهذه المنصة.\n" -"من فضلك أضف إعداد تصدير عامل في قائمة التصدير." +"من فضلك أضفْ إعداد تصدير عامل في قائمة التصدير أو عرف إعداد تصدير موجود كعامل." #: editor/editor_run_script.cpp msgid "Write your logic in the _run() method." @@ -3775,9 +3771,8 @@ msgstr "إستيراد من عقدة:" #. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git"). #: editor/editor_vcs_interface.cpp -#, fuzzy msgid "%s Error" -msgstr "خطأ" +msgstr "٪s خطأ" #: editor/export_template_manager.cpp msgid "Open the folder containing these templates." @@ -3792,9 +3787,8 @@ msgid "There are no mirrors available." msgstr "لا يوجد مرايا متوفرة." #: editor/export_template_manager.cpp -#, fuzzy msgid "Retrieving the mirror list..." -msgstr "يستقبل المرايا، من فضلك إنتظر..." +msgstr "يتم استرداد قائمة المرايا، من فضلك إنتظر..." #: editor/export_template_manager.cpp msgid "Starting the download..." @@ -3806,7 +3800,7 @@ msgstr "خطأ في طلب الرابط:" #: editor/export_template_manager.cpp msgid "Connecting to the mirror..." -msgstr "يتم الاتصال بالمرآة..." +msgstr "يتم الاتصال بالمُضيف (المرآة)..." #: editor/export_template_manager.cpp msgid "Can't resolve the requested address." @@ -3857,8 +3851,8 @@ msgstr "هناك خطأ في جلب قائمة المرايا mirrors." #, fuzzy msgid "Error parsing JSON with the list of mirrors. Please report this issue!" msgstr "" -"حدث خطأ في فك (تفسير parsing) ملف JSON الخاص بقائمة المرايا. من فضلك بلّغ عن " -"هذه المشكلة!" +"حدث خطأ في تفسير/تحليل (parsing) ملف JSON الخاص بقائمة المرايا. من فضلك بلّغ " +"عن هذه المشكلة!" #: editor/export_template_manager.cpp msgid "Best available mirror" @@ -3917,7 +3911,7 @@ msgstr "خطأ مطابقة ssl" #: editor/export_template_manager.cpp #, fuzzy msgid "Can't open the export templates file." -msgstr "لم نستطع فتح الملف المضغوط المُورد." +msgstr "لا نستطيع فتح ملف القوالب." #: editor/export_template_manager.cpp msgid "Invalid version.txt format inside the export templates file: %s." @@ -3926,12 +3920,12 @@ msgstr "صيغة غير صالحة ل version.txt داخل ملف القالب: #: editor/export_template_manager.cpp #, fuzzy msgid "No version.txt found inside the export templates file." -msgstr "لا ملف version.txt تم إيجاده داخل القالب." +msgstr "لم يتم إيجاد ملف version.txt في داخل ملف القالب." #: editor/export_template_manager.cpp #, fuzzy msgid "Error creating path for extracting templates:" -msgstr "خطأ في إنشاء المسار للقوالب:" +msgstr "خطأ في إنشاء المسار لاستخراج القوالب:" #: editor/export_template_manager.cpp msgid "Extracting Export Templates" @@ -3966,9 +3960,8 @@ msgid "Export templates are installed and ready to be used." msgstr "تم تنصيب قوالب التصدير وهي جاهزة للاستعمال." #: editor/export_template_manager.cpp -#, fuzzy msgid "Open Folder" -msgstr "افتح الملف" +msgstr "افتح المجلد" #: editor/export_template_manager.cpp msgid "Open the folder containing installed templates for the current version." @@ -3989,12 +3982,11 @@ msgstr "التحميل من:" #: editor/export_template_manager.cpp #, fuzzy msgid "Open in Web Browser" -msgstr "تشغيل في المتصفح" +msgstr "أفتحهُ في المتصفح" #: editor/export_template_manager.cpp -#, fuzzy msgid "Copy Mirror URL" -msgstr "خطأ في نسخ" +msgstr "انسخ عنوان URL المرآة" #: editor/export_template_manager.cpp msgid "Download and Install" @@ -4025,19 +4017,16 @@ msgid "Cancel" msgstr "إلغاء" #: editor/export_template_manager.cpp -#, fuzzy msgid "Cancel the download of the templates." -msgstr "لم نستطع فتح الملف المضغوط المُورد." +msgstr "إلغاء تحميل القوالب." #: editor/export_template_manager.cpp -#, fuzzy msgid "Other Installed Versions:" -msgstr "النسخة المُثبتة:" +msgstr "نسخ مُثبتة اخرى:" #: editor/export_template_manager.cpp -#, fuzzy msgid "Uninstall Template" -msgstr "إلغاء التثبيت" +msgstr "إلغاء تثبيت القالب" #: editor/export_template_manager.cpp msgid "Select Template File" @@ -4111,6 +4100,9 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"لم يتعرف المحرر على امتداد الملف.\n" +"إذا تريد إعادة تسميتهُ على أي حال, فأستخدم مدير ملفات نظام التشغيل الخاص بك.\n" +"بعْدَ إعادة تسميتهُ إلى امتداد غير معرف, الملف لن يظهر في المحرر بعد الآن." #: editor/filesystem_dock.cpp msgid "" @@ -4204,9 +4196,8 @@ msgid "Collapse All" msgstr "طوي الكل" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Sort files" -msgstr "بحث الملفات" +msgstr "رتبْ الملفات" #: editor/filesystem_dock.cpp msgid "Sort by Name (Ascending)" @@ -4225,9 +4216,8 @@ msgid "Sort by Type (Descending)" msgstr "صنّف وفقاً للنوع (تنازلياً)" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Sort by Last Modified" -msgstr "آخر ما تم تعديله" +msgstr "رتب من آخر ما تم تعديله" #: editor/filesystem_dock.cpp msgid "Sort by First Modified" @@ -4313,6 +4303,7 @@ msgid "Folder:" msgstr "مجلد:" #: editor/find_in_files.cpp +#, fuzzy msgid "Filters:" msgstr "تنقيات:" @@ -4334,22 +4325,20 @@ msgid "Replace..." msgstr "استبدال..." #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Replace in Files" -msgstr "إستبدال الكل" +msgstr "إستبدل في كل المفات" #: editor/find_in_files.cpp msgid "Find: " -msgstr "إيجاد: " +msgstr "جدْ: " #: editor/find_in_files.cpp msgid "Replace: " msgstr "إستبدال: " #: editor/find_in_files.cpp -#, fuzzy msgid "Replace All (NO UNDO)" -msgstr "إستبدال الكل" +msgstr "إستبدال الكل (لا رجوع)" #: editor/find_in_files.cpp msgid "Searching..." @@ -4531,7 +4520,7 @@ msgstr "إخلاء الإفتراضي ل '%s'" #: editor/import_dock.cpp msgid "Reimport" -msgstr "إعادة إستيراد" +msgstr "إعادة الاستيراد" #: editor/import_dock.cpp msgid "" @@ -4540,6 +4529,10 @@ msgid "" "Selecting another resource in the FileSystem dock without clicking Reimport " "first will discard changes made in the Import dock." msgstr "" +"لديك تغييرات معلقة لم تطبقها حتى الآن. اضغط على إعادة الاستيراد لتطبيق " +"التغييرات التي تم اجراؤها من خيارات الاستيراد.\n" +"اختيار مورد آخر في رصيف نظام-الملفات من دون الضغط على إعادة الاستيراد أولاً " +"سيؤدي إلى اهمال التغييرات التي تم اجراؤها في رصيف الاستيراد." #: editor/import_dock.cpp msgid "Import As:" @@ -4566,21 +4559,19 @@ msgstr "تحذير: هناك مُلحقات تستخدم هذا المورد، msgid "" "Select a resource file in the filesystem or in the inspector to adjust " "import settings." -msgstr "" +msgstr "إختر ملف مورد في نظام الملفات أو في المُتفحص لضبط إعدادت الاستيراد." #: editor/inspector_dock.cpp msgid "Failed to load resource." msgstr "فشل تحميل المورد." #: editor/inspector_dock.cpp -#, fuzzy msgid "Copy Properties" -msgstr "خاصيات" +msgstr "إنسخ الخاصيات" #: editor/inspector_dock.cpp -#, fuzzy msgid "Paste Properties" -msgstr "خاصيات" +msgstr "إلصق الخاصيات" #: editor/inspector_dock.cpp msgid "Make Sub-Resources Unique" @@ -4605,23 +4596,21 @@ msgid "Save As..." msgstr "حفظ باسم..." #: editor/inspector_dock.cpp -#, fuzzy msgid "Extra resource options." -msgstr "ليس في مسار الموارد." +msgstr "أختيارات اضافية للمورد." #: editor/inspector_dock.cpp #, fuzzy msgid "Edit Resource from Clipboard" -msgstr "تحرير حافظة الموارد" +msgstr "تحرير المورد من الحافظة (Clipboard)" #: editor/inspector_dock.cpp msgid "Copy Resource" msgstr "نسخ الموارد" #: editor/inspector_dock.cpp -#, fuzzy msgid "Make Resource Built-In" -msgstr "إجعله مُدمج" +msgstr "إجعل المورد مُدمج" #: editor/inspector_dock.cpp msgid "Go to the previous edited object in history." @@ -4648,9 +4637,8 @@ msgid "Filter properties" msgstr "خصائص التصفية" #: editor/inspector_dock.cpp -#, fuzzy msgid "Manage object properties." -msgstr "خصائص العنصر." +msgstr "إدارة خصائص الكائن." #: editor/inspector_dock.cpp msgid "Changes may be lost!" @@ -4806,8 +4794,8 @@ msgid "" "Activate to enable playback, check node warnings if activation fails." msgstr "" "شجرة الرسومات المتحركة غير فعالة.\n" -"فعلها لتتمكن من التشغيل playback، تفقد التنبيه الذي تصدره العُقدة إن فشل " -"التفعيل." +"فعلها لتتمكن من التشغيل playback، تفقد تنبيهات/تحذيرات التي تصدرها الوحدة " +"إذا فشل التفعيل." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4867,6 +4855,7 @@ msgid "Remove BlendSpace2D Triangle" msgstr "إزالة مثلث الدمج الفضائي ثنائي البُعد BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy msgid "BlendSpace2D does not belong to an AnimationTree node." msgstr "" "إن BlendSpace2D لا ينتمي إلى عُقدة شجرة الرسومات المتحركة AnimationTree." @@ -4907,11 +4896,11 @@ msgstr "تعديل المُرشحات" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Output node can't be added to the blend tree." -msgstr "لا يمكن إضافة عُقدة المخرجات إلى شجرة الدمج." +msgstr "لا يمكن إضافة مخرجات الوحدة إلى شجرة الدمج." #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Add Node to BlendTree" -msgstr "إضافة عُقدة إلى شجرة الدمج BlendTree" +msgstr "أضفْ وحدة إلى شجرة الدمج" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Node Moved" @@ -5266,7 +5255,7 @@ msgstr "تمت إزالة الكائن" #: editor/plugins/animation_state_machine_editor.cpp msgid "Transition Removed" -msgstr "تمت إزالة النقل" +msgstr "تمت إزالة الانتقال" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" @@ -5284,11 +5273,11 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp msgid "Create new nodes." -msgstr "إنشاء عُقد جديدة." +msgstr "إنشاء وحدات جديدة." #: editor/plugins/animation_state_machine_editor.cpp msgid "Connect nodes." -msgstr "توصيل عقد." +msgstr "ربط الوحدات." #: editor/plugins/animation_state_machine_editor.cpp msgid "Remove selected node or transition." @@ -5311,7 +5300,7 @@ msgstr "الانتقال: " #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" -msgstr "وضع اللعب:" +msgstr "وضع التشغيل:" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -5325,7 +5314,7 @@ msgstr "إسم جديد:" #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/multimesh_editor_plugin.cpp msgid "Scale:" -msgstr "تكبير/تصغير:" +msgstr "تغيير الأبعاد:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Fade In (s):" @@ -5400,11 +5389,11 @@ msgstr "مسح المدخله" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation tree is valid." -msgstr "شجرة الحركة صحيحة." +msgstr "شجرة التحريك صالحةٌ." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation tree is invalid." -msgstr "شجرة الحركة خاطئة." +msgstr "شجرة التحريك غير صالحة." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation Node" @@ -5500,7 +5489,7 @@ msgstr "فشل إتمام الطلب٫ الرمز الذي تم إرجاعه:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Cannot save response to:" -msgstr "لا يمكن الحفظ بسبب:" +msgstr "لا يمكن حفظ الرد الى:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." @@ -5512,11 +5501,11 @@ msgstr "فشل الطلب٫ السبب هو اعادة التحويل مرات #: editor/plugins/asset_library_editor_plugin.cpp msgid "Redirect loop." -msgstr "اعادة توجيه حلقة التكرار." +msgstr "حلقة إعادة التوجيه." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, timeout" -msgstr "فشل الطلب ، انتهت المهلة" +msgstr "فشل الطلب، انتهت المهلة" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Timeout." @@ -5548,7 +5537,7 @@ msgstr "خطأ في تنزيل الأصول:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading (%s / %s)..." -msgstr "جاري التنزيل (%s / %s)..." +msgstr "جاري تنزيل (%s / %s)..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading..." @@ -5679,14 +5668,12 @@ msgid "Audio Preview Play/Pause" msgstr "معاينة الصوت شغّل/أوقف" #: editor/plugins/baked_lightmap_editor_plugin.cpp -#, fuzzy msgid "" "Can't determine a save path for lightmap images.\n" "Save your scene and try again." msgstr "" -"لا يمكن تحديد مسار حفظ لصور خرائط الضوء.\n" -"احفظ مشهدك (لكي تحفظ الصور في المسار ذاته), او اختر مسار حفظ لخصائص خرائط " -"الضوء المعدة مسبقا." +"لا يمكن تحديد مسار الحفظ لصور خرائط الضوء.\n" +"احفظ مشهدك ثم حاول مجدداً." #: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy @@ -5694,12 +5681,12 @@ msgid "" "No meshes to bake. Make sure they contain an UV2 channel and that the 'Use " "In Baked Light' and 'Generate Lightmap' flags are on." msgstr "" -"لايوجد ميش لكي يتم تجهيزة. تاكد من انه يحتوي على منفذ UV2 و ان زر الضوء " -"'المعد' مفعل." +"لا يوجد ميش ليتم تجهيزهُ. تأكد أنهُ يحتوي على منفذ UV2 و أن علامتا 'الأستخدام " +"في الضوء المخبوز ' و 'أنتج خريطة ضوئية' مفعلتان." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Failed creating lightmap images, make sure path is writable." -msgstr "لا يمكن انشاء خرائط الضوء, تاكد من ان المسار صحيح." +msgstr "لا يمكن انشاء خرائط الضوء, تاكد من ان المسار صحيح و قابل للكتابه." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Failed determining lightmap size. Maximum lightmap size too small?" @@ -5710,22 +5697,26 @@ msgid "" "Some mesh is invalid. Make sure the UV2 channel values are contained within " "the [0.0,1.0] square region." msgstr "" -"بعض الشبكات غير صالحة. تأكد من احتواء قيم قناة UV2 داخل منطقة مربعة " +"بعض المجسمات غير صالحة. تأكد من احتواء قيم قنوات UV2 في داخل منطقة مربعة " "[0.0،1.0]." #: editor/plugins/baked_lightmap_editor_plugin.cpp -#, fuzzy msgid "" "Godot editor was built without ray tracing support, lightmaps can't be baked." -msgstr "تم تجميع محرر Godot دون دعم لتتبع الأشعة. لا يمكن بناء خرائط الإضاءة." +msgstr "" +"تم تجميع محرر غو-دوت بدون دعم لتتبع الأشعة. لذلك لا يمكن بناء خرائط ضوئية." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Bake Lightmaps" msgstr "إعداد خرائط الضوء" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" -msgstr "حدد ملف الخريطة الضوئية:" +msgstr "حدد ملف الخريطة الضوئية (lightmap):" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5738,7 +5729,7 @@ msgstr "تعديل اللقطة" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Grid Offset:" -msgstr "معادل الشبكة:" +msgstr "مقدار إزاحة الشبكة:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Grid Step:" @@ -5746,7 +5737,7 @@ msgstr "خطوة الشبكة:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Primary Line Every:" -msgstr "الأخط الأولي كُل:" +msgstr "الخط الأساسي عند:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "steps" @@ -5754,7 +5745,7 @@ msgstr "خطوات" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Offset:" -msgstr "معادل الدوران:" +msgstr "مقدار إزاحة الدوران:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation Step:" @@ -5774,7 +5765,7 @@ msgstr "إنشاء موجه عمودي جديد" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Remove Vertical Guide" -msgstr "مسح الموجه العمودي" +msgstr "ازالة الموجه العمودي" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Horizontal Guide" @@ -5797,19 +5788,16 @@ msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)" msgstr "تعيين إزاحة \"CanvasItem \"%s المحورية إلى (%d, %d)" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Rotate %d CanvasItems" -msgstr "تدوير العنصر القماشي" +msgstr "تدوير%d من عناصر-اللوحة" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Rotate CanvasItem \"%s\" to %d degrees" -msgstr "تدوير العنصر القماشي" +msgstr "تدوير عنصر-اللوحة \"%s\" الى %d درجة" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move CanvasItem \"%s\" Anchor" -msgstr "تحريك العنصر القماشي" +msgstr "تحريك مرساة عنصر-اللوحة \"%s\"" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale Node2D \"%s\" to (%s, %s)" @@ -5820,24 +5808,20 @@ msgid "Resize Control \"%s\" to (%d, %d)" msgstr "تغيير حجم عنصر التحكم \"٪ s\" إلى (٪ d،٪ d)" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale %d CanvasItems" -msgstr "مقياس العنصر القماشي" +msgstr "تغيير حجم عناصر-اللوحة %d" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem \"%s\" to (%s, %s)" -msgstr "مقياس العنصر القماشي" +msgstr "تغيير حجم عنصر-اللوحة \"%s\" الى (%s, %s)" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move %d CanvasItems" -msgstr "تحريك العنصر القماشي" +msgstr "تحريك %d من عناصر-اللوحات" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move CanvasItem \"%s\" to (%d, %d)" -msgstr "تحريك العنصر القماشي" +msgstr "تحريك عنصر-اللوحة \"%s\" الى (%d, %d)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5849,7 +5833,7 @@ msgstr "حُدد القفل" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "Grouped" -msgstr "المجموعات" +msgstr "مُجَمعَ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5951,24 +5935,23 @@ msgstr "تغيير المرتكزات" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "" "Project Camera Override\n" "Overrides the running project's camera with the editor viewport camera." msgstr "" -"تجاوز كاميرا اللعبة.\n" -"تجاوز كاميرا اللعبة عن طريق كاميرا إطار العرض في المحرر." +"تجاوز كاميرا المشروع.\n" +"يتجاوز كاميرا المشروع و يستخدم بدلها كاميرا إطار العرض في المحرر." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "" "Project Camera Override\n" "No project instance running. Run the project from the editor to use this " "feature." msgstr "" "تجاوز كاميرا المشروع.\n" -"ليس هناك مشروع يعمل حالياً. شغل المشروع من المحرر لاستعمال هذه الميزة." +"ليس هناك نسخة من المشروع قيد التشغيل حالياً. قم بتشغيل المشروع من المحرر " +"لاستعمال هذه الميزة." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6034,9 +6017,8 @@ msgstr "تحديد الوضع" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Drag: Rotate selected node around pivot." -msgstr "ازالة الكائن المحدد او الإنتقال المحدد." +msgstr "أسحبْ: تدوير الوحدة المحددة حول النقطة المحورية." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+Drag: Move selected node." @@ -6047,15 +6029,14 @@ msgid "Alt+Drag: Scale selected node." msgstr "Alt+سحب: لتغيير حجم الوحدة المحددة." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "V: Set selected node's pivot position." -msgstr "ازالة الكائن المحدد او الإنتقال المحدد." +msgstr "V: تعيين نقطة المحور للوحدة المحددة." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Alt+RMB: Show list of all nodes at position clicked, including locked." msgstr "" -"Alt + زر الفأرة الأيمن: أظهر قائمة لكل الوحدات في المنطقة المضغوطة، متضمنة " +"Alt + زر-الفأرة-الأيمن: أظهر قائمة لكل الوحدات في المنطقة المضغوطة، متضمنة " "المقفلة منها." #: editor/plugins/canvas_item_editor_plugin.cpp @@ -6079,7 +6060,7 @@ msgstr "وضع التحجيم" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Shift: Scale proportionally." -msgstr "" +msgstr "Shift: التكبير بالتساوي." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6180,7 +6161,7 @@ msgstr "قفل العنصر المحدد في هذا المكان (لا يمكن #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "Lock Selected Node(s)" -msgstr "حُدد القفل" +msgstr "إقفال الوحدة(الوحدات) المحددة" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6191,7 +6172,7 @@ msgstr "إلغاء القفل عن هذا العنصر (يمكن تحريكه ا #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "Unlock Selected Node(s)" -msgstr "حُدد إلغاء القفل" +msgstr "إلغاء فقل الوحدة(الوحدات) المحددة" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6202,7 +6183,7 @@ msgstr "تأكد من أن الطفل للعنصر غير قابل للتحدي #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "Group Selected Node(s)" -msgstr "حُدد التجميع" +msgstr "إجمعْ الوحدة(الوحدات) المحددة" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6213,7 +6194,7 @@ msgstr "إرجاع مقدرة تحديد الطفل للعنصر." #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "Ungroup Selected Node(s)" -msgstr "حُدد إلغاء التجميع" +msgstr "إلغاء جمعْ الوحدة(الوحدات) المحددة" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton Options" @@ -6325,9 +6306,8 @@ msgid "Clear Pose" msgstr "إخلاء الوضع" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Add Node Here" -msgstr "إضافة عُقدة" +msgstr "أضفْ وحدة هنا" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -6402,7 +6382,7 @@ msgstr "لا يمكن إضافة وحدات متعددة بدون الوحدةا #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Create Node" -msgstr "إنشاء عقدة" +msgstr "إنشاء وحدة" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp @@ -6472,8 +6452,9 @@ msgstr "قناع الانبعاث" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp +#, fuzzy msgid "Solid Pixels" -msgstr "البكسيلات الأساسية Solid Pixels" +msgstr "البكسيلات الأساسية (Solid Pixels)" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp @@ -6630,9 +6611,8 @@ msgid "Couldn't create a single convex collision shape." msgstr "لم يتم إنشاء شكل محدب تصادمي وحيد." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Simplified Convex Shape" -msgstr "أنشئ شكل محدب وحيد" +msgstr "إنشاء شكل مُحدب مبسط" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Single Convex Shape" @@ -6732,9 +6712,8 @@ msgstr "" "هذا هو الخيار الأسرع (لكنه الأقل دقة) للكشف عن وقوع التصادم." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Simplified Convex Collision Sibling" -msgstr "إنشاء شقيق تصادم محدب مفرد" +msgstr "إنشاء شقيق تصادم مُحدب مبسط" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" @@ -6751,14 +6730,13 @@ msgid "Create Multiple Convex Collision Siblings" msgstr "إنشاء أشقاء تصادم محدب متعددة" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between a single convex collision and a " "polygon-based collision." msgstr "" -"إنشاء شكل تصادمي مُضلعي الهيئة.\n" -"هذا الخيار \\مُتوسط الأداء بين الخيارين أعلاه." +"ينشئ شكل تصادم قائم على المضلع.\n" +"هذا الخيار مُتوسط الأداء بين التصادم مُحدب مبسط وحيد و تصادم قائم على المضلع." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -6825,14 +6803,12 @@ msgid "Remove Selected Item" msgstr "مسح العنصر المحدد" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Import from Scene (Ignore Transforms)" -msgstr "إستيراد من المشهد" +msgstr "إستيراد من المشهد (تجاهل التحويلات)" #: editor/plugins/mesh_library_editor_plugin.cpp -#, fuzzy msgid "Import from Scene (Apply Transforms)" -msgstr "إستيراد من المشهد" +msgstr "إستيراد من المشهد (مع وضع التحويلات)" #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Update from Scene" @@ -6950,12 +6926,11 @@ msgstr "توليد Rect الرؤية" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" -msgstr "لا يمكن إنشاء سوى نقطة وحيدة داخل ParticlesMaterial معالج المواد" +msgstr "لا يمكن إنشاء سوى نقطة وحيدة داخل معالج المواد لـ ParticlesMaterial" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Convert to CPUParticles2D" -msgstr "تحويل إلى %s" +msgstr "حولْ إلى جسيمات-ثنائية-البُعد-لوحدة-المعالجة-المركزية (CPUParticles2D)" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -7020,7 +6995,7 @@ msgstr "ولد رؤية AABB" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" -msgstr "إزالة نقطة من المنحنى" +msgstr "إزالة النقطة من المنحنى" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Out-Control from Curve" @@ -7247,18 +7222,16 @@ msgid "Move Points" msgstr "تحريك النقاط" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Command: Rotate" -msgstr "سحب: للتدوير" +msgstr "Command: استدارة" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" msgstr "Shift: تحريك الكُل" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Shift+Command: Scale" -msgstr "Shift+Ctrl: تحجيم" +msgstr "Shift+Command: تغيير الحجم" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -7304,14 +7277,12 @@ msgid "Radius:" msgstr "نصف القطر:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Copy Polygon to UV" -msgstr "إنشاء مُضلع وUV" +msgstr "إنسخ المُضلع إلى UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Copy UV to Polygon" -msgstr "تحويل إلى مُضلع ثنائي الأبعاد" +msgstr "إنسخ ال UV إلى المُضلع" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Clear UV" @@ -7412,38 +7383,32 @@ msgid "ResourcePreloader" msgstr "مورد محمل سلفاً" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Flip Portals" -msgstr "القلب أفقياً" +msgstr "إقلبْ البوابات" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Room Generate Points" -msgstr "عدد النقاط المولدة" +msgstr "تم توليد نقاط للغرفة" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Generate Points" -msgstr "عدد النقاط المولدة" +msgstr "قم بتوليد نقاط" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Flip Portal" -msgstr "القلب أفقياً" +msgstr "إقلبْ البوابة" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Occluder Set Transform" -msgstr "محو التَحَوّل" +msgstr "تم تغيير تحويل ال Occluder" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Center Node" -msgstr "إنشاء عقدة" +msgstr "حركْ الوحدة للمنتصف" #: editor/plugins/root_motion_editor_plugin.cpp msgid "AnimationTree has no path set to an AnimationPlayer" -msgstr "لا تملك شجرة الرسومات المتحركة مساراً لمشغل الرسومات المتحركة" +msgstr "لا تملك شجرة التحريك مساراً لمشغل الرسومات المتحركة" #: editor/plugins/root_motion_editor_plugin.cpp msgid "Path to AnimationPlayer is invalid" @@ -7871,9 +7836,8 @@ msgid "Find in Files..." msgstr "جِد في الملفات..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Replace in Files..." -msgstr "استبدال..." +msgstr "إستبدل في الملفات..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" @@ -7949,14 +7913,12 @@ msgid "Skeleton2D" msgstr "هيكل ثنائي البُعد" #: editor/plugins/skeleton_2d_editor_plugin.cpp -#, fuzzy msgid "Reset to Rest Pose" -msgstr "تحديد العظام لتكون في وضعية الراحة" +msgstr "إعادة تعيين العظام للوضعية الافتراضية (Rest Pose)" #: editor/plugins/skeleton_2d_editor_plugin.cpp -#, fuzzy msgid "Overwrite Rest Pose" -msgstr "الكتابة المُتراكبة Overwrite" +msgstr "الكتابة فوق الوضعية الافتراضية (Rest Pose)" #: editor/plugins/skeleton_editor_plugin.cpp msgid "Create physical bones" @@ -8252,7 +8214,13 @@ msgid "Cinematic Preview" msgstr "معاينة سينمائية" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "غير متوافر عند استخدام الخرج البصري GLES2 ." #: editor/plugins/spatial_editor_plugin.cpp @@ -8288,9 +8256,8 @@ msgid "Freelook Slow Modifier" msgstr "مُعدّل تباطؤ الرؤية الحُرة" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Toggle Camera Preview" -msgstr "غيّر حجم الكاميرا" +msgstr "تفعيل/تعطيل العرض المسبق للكاميرا" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Rotation Locked" @@ -8300,7 +8267,8 @@ msgstr "تدوير الرؤية مقفول" msgid "" "To zoom further, change the camera's clipping planes (View -> Settings...)" msgstr "" -"للتكبير بشكل أكبر ، قم بتغيير مستويات اقتصاص الكاميرا (عرض -> الإعدادات ...)" +"للتكبير بشكل أكبر ، قم بتغيير مستويات اقتصاص (clipping planes) للكاميرا (عرض " +"-> الإعدادات ...)" #: editor/plugins/spatial_editor_plugin.cpp msgid "" @@ -8335,9 +8303,8 @@ msgstr "" "السينية\")." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Snap Nodes to Floor" -msgstr "محاذاة العُقد إلى الأرضية" +msgstr "محاذاة الوحدات إلى الأرضية" #: editor/plugins/spatial_editor_plugin.cpp msgid "Couldn't find a solid floor to snap the selection to." @@ -8429,9 +8396,8 @@ msgid "Increase Field of View" msgstr "زدْ مجال الرؤية" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Reset Field of View to Default" -msgstr "إعادة التعيين إلى الافتراضي" +msgstr "إعادة تعيين مجال الرؤية إلى الافتراضي" #: editor/plugins/spatial_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8713,9 +8679,8 @@ msgid "New Animation" msgstr "رسومية متحركة جديدة" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Speed:" -msgstr "السرعة (إطار ف. ث. FPS):" +msgstr "السرعة:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Loop" @@ -8806,9 +8771,8 @@ msgid "Step:" msgstr "الخطوة:" #: editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Separation:" -msgstr "التعدادات:" +msgstr "التباعُدات:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "TextureRegion" @@ -8888,12 +8852,11 @@ msgstr "تحديث المحرر" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Finalizing" -msgstr "جاري التحليل" +msgstr "جاري إنهاء الاستيراد" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Filter:" -msgstr "تنقيات:" +msgstr "تصفية:" #: editor/plugins/theme_editor_plugin.cpp msgid "With Data" @@ -9188,6 +9151,11 @@ msgstr "حذف المورد:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "إعادة تسمية المورد" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "استيراد الموضوع Theme" @@ -9200,9 +9168,8 @@ msgid "Filter the list of types or create a new custom type:" msgstr "قم بتصفية قائمة الأنواع أو قم بأنشاء نوع جديد:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Available Node-based types:" -msgstr "الملفات المتوافرة:" +msgstr "أنواع المستندة-إلى-الوحدات المتوافرة:" #: editor/plugins/theme_editor_plugin.cpp msgid "Type name is empty!" @@ -9237,6 +9204,20 @@ msgstr "" "المشابهة في جميع صناديق المظهر من هذا النوع." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "إضافة نوع للعنصر" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "تحيد نوع المتغير" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "تعديل النوع الأساس" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "أظهر الإفتراضي" @@ -9253,8 +9234,19 @@ msgid "Override all default type items." msgstr "تجاوز جميع أنواع العناصر الافتراضية." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "إضافة نوع للعنصر" +#, fuzzy +msgid "Base Type" +msgstr "تعديل النوع الأساس" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -9263,16 +9255,15 @@ msgstr "الموضوع:" #: editor/plugins/theme_editor_plugin.cpp msgid "Manage Items..." -msgstr "إدارة الأنواع..." +msgstr "إدارة العناصر..." #: editor/plugins/theme_editor_plugin.cpp msgid "Add, remove, organize and import Theme items." -msgstr "أضف، أزل، رتّب واستورد عناصر القالب." +msgstr "أضفْ، أزلْ، رتّبْ واستوردْ عناصر القالب." #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Add Preview" -msgstr "عرض" +msgstr "إضافة عرض مسبق" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -9611,7 +9602,7 @@ msgstr "نسخ قناع-البِت." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Paste bitmask." -msgstr "لصق قناع البِت" +msgstr "لصق قناع-البِت." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Erase bitmask." @@ -9977,30 +9968,16 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "فروع" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Create New Branch" -msgstr "إنشاء مشروع جديد" +msgstr "إنشاء فرع جديد" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remove Branch" -msgstr "حذف مسار التحريك" +msgstr "إزالة فرع" #: editor/plugins/version_control_editor_plugin.cpp msgid "Branch Name" @@ -11284,7 +11261,7 @@ msgstr "مُحرك الإخراج البصري:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "OpenGL ES 3.0" +msgstr "خلفية بدعم OpenGL ES 3.0" #: editor/project_manager.cpp msgid "Not supported by your GPU drivers." @@ -11304,7 +11281,7 @@ msgstr "" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "OpenGL ES 2.0" +msgstr "خلفية بدعم OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -11412,12 +11389,10 @@ msgid "Are you sure to run %d projects at once?" msgstr "هل أنت متأكد من فتح %d مشاريع مرّة واحدة؟" #: editor/project_manager.cpp -#, fuzzy msgid "Remove %d projects from the list?" -msgstr "أتريد إزالة %d من المشاريع من القائمة؟" +msgstr "أتريد إزالة %d مشروع من القائمة؟" #: editor/project_manager.cpp -#, fuzzy msgid "Remove this project from the list?" msgstr "أتريد إزالة هذا المشروع من القائمة؟" @@ -12151,7 +12126,7 @@ msgstr "فصل النص البرمجي" #: editor/scene_tree_dock.cpp msgid "This operation can't be done on the tree root." -msgstr "لا يمكن إجراء هذه العملية على جذر الشجرة." +msgstr "لا يمكن إجراء هذه العملية على الجذر الرئيسي." #: editor/scene_tree_dock.cpp msgid "Move Node In Parent" @@ -12433,9 +12408,9 @@ msgid "" "every time it updates.\n" "Switch back to the Local scene tree dock to improve performance." msgstr "" -"إذا تم تحديده ، فسيؤدي شجرة المشهد إلى توقف المشروع في كل مرة يتم فيها " -"تحديثه.\n" -"قم بالتبديل مرة أخرى إلى رصيف شجرة المشهد المحلي لتحسين الأداء." +"إذا تم تحديده ، فسيؤدي شجرة المشهد البعيده (Remote) إلى توقف المشروع في كل " +"مرة يتم تحديث المشروع.\n" +"قمْ بالتبديل مرة أخرى إلى رصيف شجرة المشهد المحلي لتحسين الأداء." #: editor/scene_tree_dock.cpp msgid "Local" @@ -12750,6 +12725,11 @@ msgid "Stack Frames" msgstr "حزم الإطارات Stack Frames" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "تنقية البلاطات" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "مُنشئ الملفات التعريفية Profiler" @@ -13007,7 +12987,7 @@ msgstr "مكتبات: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "GDNative" +msgstr "لغة البرمجة GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -13491,7 +13471,7 @@ msgstr "إضافة عُقدة" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" -msgstr "إضافة عُقدة (عُقد) من الشجرة" +msgstr "أضفْ وحدة(وحدات) من الشجرة" #: modules/visual_script/visual_script_editor.cpp msgid "" @@ -14008,9 +13988,8 @@ msgid "Running on %s" msgstr "يعمل على %s" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Exporting APK..." -msgstr "تصدير APK..." +msgstr "جاري تصدير APK..." #: platform/android/export/export_plugin.cpp msgid "Uninstalling..." @@ -14022,9 +14001,8 @@ msgid "Installing to device, please wait..." msgstr "يستقبل المرايا، من فضلك إنتظر..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not install to device: %s" -msgstr "لم يتمكن من التثبيت على الجهاز: %s" +msgstr "لم نتمكن من التثبيت على الجهاز: %s" #: platform/android/export/export_plugin.cpp #, fuzzy @@ -14088,7 +14066,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Missing 'platform-tools' directory!" -msgstr "دليل ملفات \"أدوات-المنصة platform-tools\" مفقود!" +msgstr "المجلد 'أدوات-المنصة (platform-tools)' مفقود!" #: platform/android/export/export_plugin.cpp msgid "Unable to find Android SDK platform-tools' adb command." @@ -14122,9 +14100,10 @@ msgstr "اسم رُزمة غير صالح:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"وحدة \"GodotPaymentV3\" المضمنة في إعدادات المشروع \"android / modules\" غير " -"صالحة (تم تغييره في Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14205,9 +14184,8 @@ msgid "'apksigner' returned with error #%d" msgstr "أعاد 'apksigner' الخطأ التالي #%d" #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Verifying %s..." -msgstr "التأكيد من %s..." +msgstr "جاري التحقق من %s..." #: platform/android/export/export_plugin.cpp msgid "'apksigner' verification of %s failed." @@ -14228,9 +14206,8 @@ msgid "APK Expansion not compatible with Android App Bundle." msgstr "توسيع APK غير متوافق مع حزمة تطبيق الأندرويد Android App Bundle." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Invalid filename! Android APK requires the *.apk extension." -msgstr "إسم ملف غير صالح! يتطلب ملف اندرويد APK اللاحقة .*.apk" +msgstr "أسم الملف غير صالح! يتطلب ملف اندرويد APK أمتداد *.apk لتعمل." #: platform/android/export/export_plugin.cpp msgid "Unsupported export format!\n" @@ -14328,9 +14305,8 @@ msgid "Adding files..." msgstr "إضافة %s..." #: platform/android/export/export_plugin.cpp -#, fuzzy msgid "Could not export project files" -msgstr "لا يمكن كتابة الملف" +msgstr "لم نتمكن من تصدير ملفات المشروع" #: platform/android/export/export_plugin.cpp msgid "Aligning APK..." @@ -14512,9 +14488,7 @@ msgstr "ينشئ الصورة المصغرة" #: platform/osx/export/export.cpp #, fuzzy msgid "Could not find template app to export:" -msgstr "" -"لم يتم إيجاد قالب APK للتصدير:\n" -"%s" +msgstr "لم يتم إيجاد تطبيق القالب (Template app) للتصدير:" #: platform/osx/export/export.cpp msgid "" @@ -14730,19 +14704,16 @@ msgid "" msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "مسار غير صالح." +msgstr "مسار الأيقونة غير صالح:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "صيغة غير صالحة." +msgstr "إصدار الملف غير صالح:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "مُعرف GUID (المُعرّف الفريد العالمي) للمنتج غير صالح." +msgstr "مُعرف GUID (المُعرّف الفريد العالمي) للمنتج غير صالح:" #: scene/2d/animated_sprite.cpp msgid "" @@ -15268,7 +15239,7 @@ msgstr "" #: scene/3d/physics_joint.cpp msgid "Joint is not connected to any PhysicsBodies" -msgstr "" +msgstr "المفصل غير متصل لأي الاجسام الفيزيائية (PhysicsBodies)" #: scene/3d/physics_joint.cpp msgid "Node A and Node B must be different PhysicsBodies" @@ -15332,7 +15303,7 @@ msgstr "" #: scene/3d/room_manager.cpp msgid "There should only be one RoomManager in the SceneTree." -msgstr "" +msgstr "يجب توافر مدير-غرف (RoomManager) واحد فقط في شجرة المشهد." #: scene/3d/room_manager.cpp msgid "" @@ -15423,9 +15394,11 @@ msgstr "" "اضبط وضع الخلفية لهذه البيئة على لوحة (Canvas) (للمشاهد ثنائية البُعد)." #: scene/animation/animation_blend_tree.cpp +#, fuzzy msgid "On BlendTree node '%s', animation not found: '%s'" msgstr "" -"في عقدة خليط-الشجرة (BlendTree) '%s'، لم يتم العثور على الرسوم المتحركة:'%s '" +"في عقدة خليط-الشجرة (BlendTree) '%s'، لم يتم العثور على الرسوم المتحركة: '%s " +"'" #: scene/animation/animation_blend_tree.cpp msgid "Animation not found: '%s'" @@ -15467,8 +15440,8 @@ msgstr "العُقدة الرئيسة لمُشغل الرسومات المتحر #: scene/animation/animation_tree_player.cpp msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" -"لقد تم إهمال هذه العُقدةز استخدم شجرة الرسومات المتحركة AnimationTree بدلاً عن " -"ذلك." +"لقد تم إهمال هذه الوحدة, أستخدم شجرة الرسومات المتحركة (AnimationTree) بدلاً " +"عنها." #: scene/gui/color_picker.cpp #, fuzzy @@ -15569,7 +15542,7 @@ msgstr "" #: scene/gui/tree.cpp msgid "(Other)" -msgstr "(أخرى)" +msgstr "(آخر)" #: scene/main/scene_tree.cpp msgid "" diff --git a/editor/translations/az.po b/editor/translations/az.po index 46738301a9..c958bc1f45 100644 --- a/editor/translations/az.po +++ b/editor/translations/az.po @@ -1519,6 +1519,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2873,7 +2877,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5525,6 +5529,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7966,7 +7974,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8845,6 +8858,11 @@ msgid "Select Another Theme Resource:" msgstr "Əvəzetmə mənbəyini axtarın:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Mənbə" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8893,6 +8911,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8909,7 +8939,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "%s növünü dəyişdirin" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9589,18 +9630,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Uyğunlaşmalar:" @@ -12163,6 +12192,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Siqnalları filtirlə" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13455,6 +13489,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 7bb426d010..a91ee554b6 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -1471,6 +1471,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Неправилно име." @@ -2843,7 +2847,7 @@ msgstr "" msgid "Add a new scene." msgstr "Добавяне на нови нова сцена." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Сцена" @@ -5530,6 +5534,10 @@ msgid "Bake Lightmaps" msgstr "Изпичане на карти на осветеност" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Изберете файл за изпичане на карта на осветеност:" @@ -7984,7 +7992,13 @@ msgid "Cinematic Preview" msgstr "Кинематографски предварителен преглед" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Не е налично при използване на изчертаване чрез GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -8872,6 +8886,11 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Ресурс" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Друга тема" @@ -8918,6 +8937,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Добавяне на тип елемент" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Показване на стандартните" @@ -8934,8 +8965,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Добавяне на тип елемент" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9620,18 +9661,6 @@ msgid "Commit list size" msgstr "Размер на списъка с подавания" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Клони" @@ -12198,6 +12227,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Филтриране на плочките" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13498,9 +13532,10 @@ msgstr "Неправилно име на пакет:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"В настройките на проекта, раздел „android/modules“, присъства неправилен " -"модул „GodotPaymentV3“ (това е променено във Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/bn.po b/editor/translations/bn.po index b8b8ccbf84..514a488c1f 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -1526,6 +1526,11 @@ msgstr "ডিফল্ট বাস লেআউট লোড করুন।" msgid "Create a new Bus Layout." msgstr "নতুন বাস লেআউট তৈরি করুন।" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "অডিও বাস লেআউট ওপেন করুন" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "অগ্রহনযোগ্য নাম।" @@ -3050,7 +3055,7 @@ msgstr "বিক্ষেপ-হীন মোড" msgid "Add a new scene." msgstr "নতুন ট্র্যাক/পথ-সমূহ যোগ করুন।" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "দৃশ্য" @@ -6022,6 +6027,10 @@ msgid "Bake Lightmaps" msgstr "লাইট্ম্যাপে হস্তান্তর করুন:" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "লাইটম্যাপ বেক ফাইলটি নির্বাচন করুন:" @@ -8730,7 +8739,12 @@ msgid "Cinematic Preview" msgstr "মেস লাইব্রেরি তৈরি হচ্ছে" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9717,6 +9731,11 @@ msgstr "রিসোর্স অপসারণ করুন" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "রিসোর্স পুনঃনামকরণ করুন" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "থিম ইম্পোর্ট করুন" @@ -9771,6 +9790,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "বস্তু যোগ করুন" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "চলক/ভেরিয়েবল সম্পাদন করুন:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "ধরণ পরিবর্তন করুন" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "লোড ডিফল্ট" @@ -9789,8 +9823,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "বস্তু যোগ করুন" +msgid "Base Type" +msgstr "ধরণ পরিবর্তন করুন" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -10567,18 +10611,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "মিলসমূহ:" @@ -13405,6 +13437,11 @@ msgid "Stack Frames" msgstr "ফ্রেমসমূহ স্তূপ করুন" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "দ্রুত ফাইলসমূহ ফিল্টার করুন..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "প্রোফাইলার" @@ -14852,6 +14889,9 @@ msgstr "অগ্রহণযোগ্য ক্লাস নাম" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/br.po b/editor/translations/br.po index 574adeb121..325635fe0e 100644 --- a/editor/translations/br.po +++ b/editor/translations/br.po @@ -1454,6 +1454,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2805,7 +2809,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5449,6 +5453,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7881,7 +7889,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8756,6 +8769,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8802,6 +8819,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8818,7 +8847,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9494,18 +9533,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12060,6 +12087,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13348,6 +13379,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 144cbbad2e..c4208b23c4 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -1505,6 +1505,11 @@ msgstr "Carrega el disseny del Bus predeterminat." msgid "Create a new Bus Layout." msgstr "Crea un nou Disseny de Bus." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Obre un Disseny de Bus d'Àudio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nom no vàlid." @@ -2970,7 +2975,7 @@ msgstr "Commutar el Mode Lliure de Distraccions." msgid "Add a new scene." msgstr "Afegeix una escena nova." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Escena" @@ -5795,6 +5800,10 @@ msgid "Bake Lightmaps" msgstr "Precalcular Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Seleccioneu un Fitxer de Plantilla:" @@ -8365,7 +8374,13 @@ msgid "Cinematic Preview" msgstr "Previsualització Cinemàtica" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "No disponible quan s'utilitza el renderitzador GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9311,6 +9326,11 @@ msgstr "Elimina el Recurs:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Reanomena el Recurs" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Importa un Tema" @@ -9365,6 +9385,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Afegeix un Element" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Estableix el Tipus de Variable" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Modifica el Tipus de Base" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Carrega Valors predeterminats" @@ -9383,8 +9418,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Afegeix un Element" +msgid "Base Type" +msgstr "Modifica el Tipus de Base" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -10135,18 +10180,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Coincidències:" @@ -12991,6 +13024,11 @@ msgid "Stack Frames" msgstr "Fotogrames de la Pila" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrar tiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Perfilador" @@ -14406,6 +14444,9 @@ msgstr "El nom del paquet no és vàlid:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 3908694615..9094006744 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -34,7 +34,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-10 07:50+0000\n" +"PO-Revision-Date: 2022-03-08 08:59+0000\n" "Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" @@ -43,7 +43,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.11-dev\n" +"X-Generator: Weblate 4.12-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1503,6 +1503,11 @@ msgstr "Načíst výchozí rozvržení sběrnice." msgid "Create a new Bus Layout." msgstr "Vytvořit nové rozvržení sběrnice." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Otevřít rozložení audio sběrnice" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Neplatný název." @@ -2936,7 +2941,7 @@ msgstr "Zapnout nerozptylující režim." msgid "Add a new scene." msgstr "Přidat novou scénu." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scéna" @@ -4721,7 +4726,7 @@ msgstr "Odstranit polygon a bod" #: editor/plugins/animation_state_machine_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Animation" -msgstr "Přidat animaci" +msgstr "Přidání animace" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -5690,6 +5695,10 @@ msgid "Bake Lightmaps" msgstr "Zapéct lightmapy" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Vybrat soubor pro zapečení světelných map:" @@ -8186,7 +8195,13 @@ msgid "Cinematic Preview" msgstr "Filmový náhled" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Není k dispozici při použití vykreslovacího modulu GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9104,6 +9119,11 @@ msgstr "Vybrerte jiný zdroj motivu:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Přejmenovat zdroj" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Importovat motiv" @@ -9155,6 +9175,21 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Add Item Type" +msgstr "Přidat položku" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Nastavit typ proměnné" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Změnit základní typ" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Zobrazit výchozí" @@ -9172,8 +9207,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Přidat položku" +msgid "Base Type" +msgstr "Změnit základní typ" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9889,18 +9934,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Shody:" @@ -12628,6 +12661,11 @@ msgid "Stack Frames" msgstr "Rámce zásobníku" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrovat dlaždice" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -13543,7 +13581,7 @@ msgstr "" #: modules/visual_script/visual_script_flow_control.cpp msgid "While" -msgstr "" +msgstr "While" #: modules/visual_script/visual_script_flow_control.cpp msgid "while (cond):" @@ -13977,9 +14015,10 @@ msgstr "Neplatné jméno balíčku:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Neplatný modul \"GodotPaymentV3\" v nastavení projektu \"Android / " -"moduly\" (změněno v Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/da.po b/editor/translations/da.po index 0fe9e67693..fa49368276 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -1543,6 +1543,11 @@ msgstr "Indlæs standard Bus Layout." msgid "Create a new Bus Layout." msgstr "Opret et nyt Bus Layout." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Åben Audio Bus Layout" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Ugyldigt navn." @@ -3027,7 +3032,7 @@ msgstr "Skift distraktions-fri modus." msgid "Add a new scene." msgstr "Tilføj en ny scene." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scene" @@ -5897,6 +5902,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Vælg template fil" @@ -8478,7 +8487,12 @@ msgid "Cinematic Preview" msgstr "Opretter Maske Forhåndsvisninger" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9428,6 +9442,11 @@ msgstr "Søg Erstatnings Ressource:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Ressource" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Medlemmer" @@ -9480,6 +9499,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Sæt Variabel Type" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Skift Base Type" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Indlæs Default" @@ -9497,7 +9530,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Skift Base Type" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -10253,18 +10297,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Matches:" @@ -12972,6 +13004,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrer filer..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14353,6 +14390,9 @@ msgstr "Ugyldigt navn." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/de.po b/editor/translations/de.po index 88904ba7d7..aeb8000e85 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -76,13 +76,14 @@ # Tim <tim14speckenwirth@gmail.com>, 2021. # Antonio Noack <corperateraider@gmail.com>, 2022. # <artism90@googlemail.com>, 2022. +# Coxcopi70f00b67b61542fe <hn_vogel@gmx.net>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-16 08:44+0000\n" -"Last-Translator: <artism90@googlemail.com>\n" +"PO-Revision-Date: 2022-03-02 18:39+0000\n" +"Last-Translator: Coxcopi70f00b67b61542fe <hn_vogel@gmx.net>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -90,7 +91,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.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1556,6 +1557,11 @@ msgstr "Standard Bus-Layout laden." msgid "Create a new Bus Layout." msgstr "Neues Audiobus-Layout erstellen." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Öffne Audiobus-Layout" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Ungültiger Name." @@ -2235,7 +2241,7 @@ msgstr "Stile" #: editor/editor_help.cpp msgid "Enumerations" -msgstr "Aufzählungstypen" +msgstr "Aufzählungen" #: editor/editor_help.cpp msgid "Property Descriptions" @@ -3020,7 +3026,7 @@ msgstr "Ablenkungsfreien Modus umschalten." msgid "Add a new scene." msgstr "Eine neue Szene hinzufügen." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Szene" @@ -3396,14 +3402,12 @@ msgid "Update Continuously" msgstr "Fortlaufend aktualisieren" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Bei Änderungen aktualisieren" +msgstr "Bei allen Änderungen aktualisieren" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Materialänderungen:" +msgstr "Nur bei wichtigen Änderungen aktualisieren" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4181,6 +4185,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Diese Dateiendung wird nicht vom Editor erkannt.\n" +"Zum Durchführen der Umbenennung muss ein anderer Dateimanager genutzt " +"werden.\n" +"Dateien mit unbekannten Dateiendungen werden daraufhin nicht mehr im Editor " +"angezeigt." #: editor/filesystem_dock.cpp msgid "" @@ -5802,6 +5811,10 @@ msgid "Bake Lightmaps" msgstr "Lightmaps vorrendern" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Lightmap-Bake-Datei auswählen:" @@ -8299,7 +8312,13 @@ msgid "Cinematic Preview" msgstr "Cinematische Vorschau" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Nicht verfügbar wenn der GLES2–Renderer genutzt wird." #: editor/plugins/spatial_editor_plugin.cpp @@ -9199,6 +9218,11 @@ msgid "Select Another Theme Resource:" msgstr "Andere Thema-Ressource auswählen:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Ressource umbenennen" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Anderes Design" @@ -9247,6 +9271,20 @@ msgstr "" "StyleBox werden ebenfalls in allen StyleBoxen des gleichen Typs geändert." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Elementtyp hinzufügen" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Variablentyp festlegen" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Basistyp ändern" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Standard anzeigen" @@ -9263,8 +9301,19 @@ msgid "Override all default type items." msgstr "Alle Standard-Typelemente überbrücken." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Elementtyp hinzufügen" +#, fuzzy +msgid "Base Type" +msgstr "Basistyp ändern" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9972,18 +10021,6 @@ msgid "Commit list size" msgstr "Größe der Commit-Liste" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Zweige" @@ -12745,6 +12782,11 @@ msgid "Stack Frames" msgstr "Aufrufsverlauf" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Kacheln filtern" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -12918,14 +12960,12 @@ msgid "Set Occluder Sphere Position" msgstr "Occluder-Sphärenposition festlegen" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Portal-Point-Position festlegen" +msgstr "Position von Occluder-Polygon-Punkt festlegen" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Kurvenpunktposition festlegen" +msgstr "Position von Occluder-Loch-Punkt festlegen" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -14072,9 +14112,10 @@ msgstr "Ungültiger Paketname:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Ungültiges „GodotPaymentV3“-Modul eingebunden in den „android/modules“-" -"Projekteinstellungen (wurde in Godot 3.2.2 geändert).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14341,166 +14382,167 @@ msgstr "Fehler beim Starten des HTTP-Servers:" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "Dateisystemzugriff fehlgeschlagen." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "Lesen von Info.plist-Hash fehlgeschlagen." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Ungültiger Projektname." +msgstr "Ungültige Info.plist, kein exe-Name." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Ungültige Info.plist, keine bundle-id." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Ungültige Geometrie, Polygon kann nicht erzeugt werden." +msgstr "Ungültige Info.plist, kann nicht geladen werden." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "Ordner konnte nicht erstellt werden." +msgstr "Erzeugen von Unterordner „%s“ fehlgeschlagen." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "Entpacken von thin binary fehlgeschlagen." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Ungültiger Basispfad." +msgstr "Ungültiges Binärformat." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Bereits signiert!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "Laden der Ressource gescheitert." +msgstr "Verarbeiten verschachtelter Ressourcen fehlgeschlagen." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "Erzeugen von _CodeSignature-Unterordner fehlgeschlagen." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "Laden der Ressource gescheitert." +msgstr "Erhalten von CodeResources-Hash fehlgeschlagen." #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "Ungültige Dateiendung." +msgstr "Ungültige entitlements-Datei." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Ungültige Dateiendung." +msgstr "Ungültige ausführbare Datei." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "Signatur-Lade-Kommando kann nicht vergrößert/verkleinert werden." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "Erstellen von fat binary fehlgeschlagen." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Unbekannter bundle-Typ." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Unbekannter Objekttyp." #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." msgstr "" +"Hinweis: Der Beglaubigungsprozess dauert gewöhnlich weniger als eine Stunde. " +"Nach Ablauf wird eine Bestätigungsmail versandt." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Der Fortschritt kann manuell mithilfe des folgenden Befehls in der Konsole " +"überprüft werden:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Mit folgendem Befehl kann die Beglaubigungsbescheinigung an die exportierte " +"Anwendung geheftet werden (optional):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "Keine Symbole gefunden." +msgstr "Keine Identität gefunden." #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "Erzeuge Miniaturansicht" +msgstr "Erzeuge App-Bundle" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"Konnte keine APK-Vorlage zum Exportieren finden:\n" -"%s" +msgstr "Es konnte keine Vorlagen-App zum Exportieren gefunden werden:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"Relative symbolische Links werden von diesem Betriebssystem nicht " +"unterstützt, das exportierte Projekt könnte fehlerhaft sein!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." msgstr "" +"Benötigte Vorlagen-Binary ‚%s‘ nicht gefunden. Es könnte im Vorlagen-Archiv " +"fehlen." #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "Erzeuge PKG" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"Ad-hoc signierte Anwendungen benötigen die ‚Disable Library Validation‘-" +"Berechtigung um dynamische Bibliotheken zu laden." #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "Codesignierungs-Bundle" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Erstelle DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "Codesignierendes DMG" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Erstelle ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"Der Beglaubigungsprozess setzt voraus dass die Anwendung archiviert wurde. " +"Das DMG- oder ZIP-Exportformat sollte stattdessen ausgewählt werden." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Sende Archiv zur Beglaubigung" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14511,31 +14553,36 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Warnung: Das eingebettete „codesign“ ist in den Editoreinstellungen " +"ausgewählt. Codesignierung ist eingeschränkt auf Ad-hoc-Signaturen." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Warnung: Die Xcode-Kommandozeilenprogramme sind nicht installiert, verwende " +"eingebautes „codesign“. Codesignierung ist eingeschränkt auf Ad-hoc-" +"Signaturen." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." msgstr "" +"Beglaubigung: Beglaubigungen von Ad-hoc-Signaturen werden nicht erstellt." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "Beglaubigung: Code-Signierung wird benötigt." +msgstr "Beglaubigung: Code-Signierung wird zur Beglaubigung benötigt." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "Beglaubigung: Abgehärtete Ausführungsumgebung wird benötigt." +msgstr "" +"Beglaubigung: Abgehärtete Ausführungsumgebung wird zur Beglaubigung benötigt." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "Beglaubigung: Abgehärtete Ausführungsumgebung wird benötigt." +msgstr "" +"Beglaubigung: Zeitstempel-Ausführungsumgebung wird für Beglaubigung benötigt." #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14550,63 +14597,87 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Warnung: Beglaubigungen sind deaktiviert. Das exportierte Projekt wird von " +"Gatekeeper geblockt werden, falls es von einer unbekannten Quelle " +"heruntergeladen wird." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"Code-Signierung ist deaktiviert. Das exportierte Projekt wird sich nicht auf " +"Macs mit aktiviertem Gatekeeper oder Apple-Silicon-Macs ausführen lassen." #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" msgstr "" +"Die abgehärtete Laufzeitumgebung ist nicht mit Ad-hoc-Signaturen kompatibel, " +"und wird deaktiviert!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" msgstr "" +"Zeitstempel sind nicht mit Ad-hoc-Signaturen kompatibel, und werden " +"deaktiviert!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Warnung: Beglaubigungen werden von diesem Betriebssystem nicht unterstützt. " +"Das exportierte Projekt wird von Gatekeeper blockiert, falls es aus einer " +"unbekannten Quelle geladen wurde." #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Privatsphäre: Mikrophonzugriff ist aktiviert, aber keine " +"Nutzungsbeschreibung angegeben." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Privatsphäre: Kamerazugriff ist aktiviert, aber keine Nutzungsbeschreibung " +"angegeben." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Privatsphäre: Standortzugriff ist aktiviert, aber keine Nutzungsbeschreibung " +"angegeben." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Privatsphäre: Adressbuchzugriff ist aktiviert, aber keine " +"Nutzungsbeschreibung angegeben." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Privatsphäre: Kalenderzugriff ist aktiviert, aber keine Nutzungsbeschreibung " +"angegeben." #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"Privatsphäre: Photobibliothekszugriff ist aktiviert, aber keine " +"Nutzungsbeschreibung angegeben." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14665,21 +14736,21 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"Das Rcedit-Werkzeug muss in den Editoreinstellungen (Export > Windows > " +"Rcedit) festgelegt werden um Icon- oder Anwendungsinformation festlegen zu " +"können." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Ungültiger Pfad." +msgstr "Ungültiger Icon-Pfad:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Ungültige Dateiendung." +msgstr "Ungültige Dateiversion:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "Ungültige Produkt-GUID." +msgstr "Ungültige Produktversion:" #: scene/2d/animated_sprite.cpp msgid "" @@ -15443,14 +15514,13 @@ msgstr "" "AnimationTree." #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" "RMB: Remove preset" msgstr "" "Farbe: #%s\n" -"LMT: Farbe festlegen\n" +"LMT: Farbe anwenden\n" "RMT: Voreinstellung entfernen" #: scene/gui/color_picker.cpp diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index f9d1c47b88..ae2e0321ff 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -1432,6 +1432,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2781,7 +2785,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5423,6 +5427,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7848,7 +7856,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8723,6 +8736,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8769,6 +8786,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8785,7 +8814,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9461,18 +9500,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12026,6 +12053,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13309,6 +13340,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/el.po b/editor/translations/el.po index d3cbb4b072..ebfb007a9d 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -1511,6 +1511,11 @@ msgstr "Φόρτωση προεπιλεγμένης διάταξης διαύλ msgid "Create a new Bus Layout." msgstr "Δημιουργία νέας διάταξης διαύλων ήχου." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Άνοιγμα διάταξης διαύλων ήχου" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Μη έγκυρο όνομα." @@ -2976,7 +2981,7 @@ msgstr "Εναλλαγή λειτουργίας χωρίς περισπασμο msgid "Add a new scene." msgstr "Προσθήκη νέας σκηνής." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Σκηνή" @@ -5792,6 +5797,10 @@ msgid "Bake Lightmaps" msgstr "Προετοιμασία Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Επιλογή Αρχείου Προτύπων:" @@ -8356,7 +8365,13 @@ msgid "Cinematic Preview" msgstr "Κινηματογραφική Προεπισκόπηση" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Δεν είναι διαθέσιμο στην απόδοση GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9304,6 +9319,11 @@ msgstr "Διαγραφή πόρου" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Μετονομασία πόρου" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Εισαγωγή θέματος" @@ -9358,6 +9378,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Προσθήκη στοιχείου" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Ορισμός τύπου μεταβλητής" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Αλλαγή βασικού τύπου" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Φόρτωση προεπιλογής" @@ -9376,8 +9411,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Προσθήκη στοιχείου" +msgid "Base Type" +msgstr "Αλλαγή βασικού τύπου" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -10105,18 +10150,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Αντιστοιχίες:" @@ -12882,6 +12915,11 @@ msgid "Stack Frames" msgstr "Στοίβαξη καρέ" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Φιλτράρισμα πλακιδίων" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Πρόγραμμα Δημιουργίας Προφίλ" @@ -14270,9 +14308,10 @@ msgstr "Άκυρο όνομα πακέτου:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Εσφαλμένη λειτουργική μονάδα «GodotPaymentV3» στην ρύθμιση εργου «Android/" -"Modules» (άλλαξε στην Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/en_Shaw.po b/editor/translations/en_Shaw.po new file mode 100644 index 0000000000..1251476928 --- /dev/null +++ b/editor/translations/en_Shaw.po @@ -0,0 +1,14652 @@ +# English (Shavian) translation of the Godot Engine editor. +# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. +# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). +# This file is distributed under the same license as the Godot source code. +# +# haley <haleyhalcyon@gmail.com>, 2022. +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine editor\n" +"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" +"PO-Revision-Date: 2022-02-26 10:27+0000\n" +"Last-Translator: haley <haleyhalcyon@gmail.com>\n" +"Language-Team: English (Shavian) <https://hosted.weblate.org/projects/godot-" +"engine/godot/en-Shaw/>\n" +"Language: en-Shaw\n" +"MIME-Version: 1.0\n" +"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.11.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 "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑑𐑲𐑐 𐑸𐑜𐑘𐑩𐑥𐑩𐑯𐑑 𐑑 convert(), 𐑿𐑟 TYPE_* 𐑒𐑪𐑯𐑕𐑑𐑩𐑒𐑑𐑕." + +#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp +msgid "Expected a string of length 1 (a character)." +msgstr "𐑦𐑒𐑕𐑐𐑧𐑒𐑑𐑩𐑛 𐑩 𐑕𐑑𐑮𐑦𐑙 𐑝 𐑤𐑧𐑙𐑔 1 (𐑩 𐑒𐑨𐑮𐑩𐑒𐑑𐑼)." + +#: 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 "𐑯𐑪𐑑 𐑦𐑯𐑳𐑓 𐑚𐑲𐑑𐑕 𐑓 𐑛𐑰𐑒𐑴𐑛𐑦𐑙 𐑚𐑲𐑑𐑕, 𐑹 𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑓𐑹𐑥𐑨𐑑." + +#: core/math/expression.cpp +msgid "Invalid input %i (not passed) in expression" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑦𐑯𐑐𐑫𐑑 %i (𐑯𐑪𐑑 𐑐𐑭𐑕𐑑) 𐑦𐑯 𐑦𐑒𐑕𐑐𐑮𐑧𐑖𐑩𐑯" + +#: core/math/expression.cpp +msgid "self can't be used because instance is null (not passed)" +msgstr "self 𐑒𐑭𐑯𐑑 𐑚𐑰 𐑿𐑟𐑛 𐑚𐑦𐑒𐑪𐑟 𐑦𐑯𐑕𐑑𐑩𐑯𐑕 𐑦𐑟 𐑯𐑳𐑤 (𐑯𐑪𐑑 𐑐𐑭𐑕𐑑)" + +#: core/math/expression.cpp +msgid "Invalid operands to operator %s, %s and %s." +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑪𐑐𐑼𐑨𐑯𐑛𐑟 𐑑 𐑪𐑐𐑼𐑱𐑑𐑼 %s, %s 𐑯 %s." + +#: core/math/expression.cpp +msgid "Invalid index of type %s for base type %s" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑦𐑯𐑛𐑧𐑒𐑕 𐑝 𐑑𐑲𐑐 %s 𐑓 𐑚𐑱𐑕 𐑑𐑲𐑐 %s" + +#: core/math/expression.cpp +msgid "Invalid named index '%s' for base type %s" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑯𐑱𐑥𐑛 𐑦𐑯𐑛𐑧𐑒𐑕 '%s' 𐑓 𐑚𐑱𐑕 𐑑𐑲𐑐 %s" + +#: core/math/expression.cpp +msgid "Invalid arguments to construct '%s'" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑸𐑜𐑘𐑩𐑥𐑩𐑯𐑑𐑕 𐑑 𐑒𐑩𐑯𐑕𐑑𐑮𐑳𐑒𐑑 '%s'" + +#: core/math/expression.cpp +msgid "On call to '%s':" +msgstr "𐑪𐑯 𐑒𐑷𐑤 𐑑 '%s':" + +#: core/ustring.cpp +msgid "B" +msgstr "" + +#: core/ustring.cpp +msgid "KiB" +msgstr "" + +#: core/ustring.cpp +msgid "MiB" +msgstr "" + +#: core/ustring.cpp +msgid "GiB" +msgstr "" + +#: core/ustring.cpp +msgid "TiB" +msgstr "" + +#: core/ustring.cpp +msgid "PiB" +msgstr "" + +#: core/ustring.cpp +msgid "EiB" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Free" +msgstr "𐑓𐑮𐑰" + +#: editor/animation_bezier_editor.cpp +msgid "Balanced" +msgstr "𐑚𐑨𐑮𐑩𐑯𐑕𐑑" + +#: editor/animation_bezier_editor.cpp +msgid "Mirror" +msgstr "𐑥𐑦𐑮𐑼" + +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "𐑑𐑲𐑥:" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "𐑝𐑨𐑤𐑿:" + +#: editor/animation_bezier_editor.cpp +msgid "Insert Key Here" +msgstr "𐑦𐑯𐑕𐑻𐑑 𐑒𐑰 𐑣𐑽" + +#: editor/animation_bezier_editor.cpp +msgid "Duplicate Selected Key(s)" +msgstr "𐑛𐑿𐑐𐑤𐑦𐑒𐑱𐑑 𐑕𐑦𐑤𐑧𐑒𐑑𐑩𐑛 𐑒𐑰(𐑟)" + +#: editor/animation_bezier_editor.cpp +msgid "Delete Selected Key(s)" +msgstr "𐑛𐑦𐑤𐑰𐑑 𐑕𐑦𐑤𐑧𐑒𐑑𐑩𐑛 𐑒𐑰(𐑟)" + +#: editor/animation_bezier_editor.cpp +msgid "Add Bezier Point" +msgstr "𐑨𐑛 𐑚𐑧𐑟𐑦𐑱 𐑐𐑶𐑯𐑑" + +#: editor/animation_bezier_editor.cpp +msgid "Move Bezier Points" +msgstr "𐑥𐑵𐑝 𐑚𐑧𐑟𐑦𐑱 𐑐𐑶𐑯𐑑𐑕" + +#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp +msgid "Anim Duplicate Keys" +msgstr "𐑛𐑿𐑐𐑤𐑦𐑒𐑱𐑑 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑟" + +#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp +msgid "Anim Delete Keys" +msgstr "𐑛𐑦𐑤𐑰𐑑 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑟" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Keyframe Time" +msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑲𐑥" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Transition" +msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑑𐑮𐑨𐑯𐑟𐑦𐑖𐑩𐑯" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Transform" +msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Keyframe Value" +msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑝𐑨𐑤𐑿" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Call" +msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑷𐑤" + +#: editor/animation_track_editor.cpp +msgid "Anim Multi Change Keyframe Time" +msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑲𐑥𐑟" + +#: editor/animation_track_editor.cpp +msgid "Anim Multi Change Transition" +msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑮𐑨𐑯𐑟𐑦𐑖𐑩𐑯𐑟" + +#: editor/animation_track_editor.cpp +msgid "Anim Multi Change Transform" +msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥" + +#: editor/animation_track_editor.cpp +msgid "Anim Multi Change Keyframe Value" +msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑝𐑨𐑤𐑿𐑟" + +#: editor/animation_track_editor.cpp +msgid "Anim Multi Change Call" +msgstr "𐑗𐑱𐑯𐑡 𐑥𐑳𐑤𐑑𐑦𐑐𐑩𐑤 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑰𐑓𐑮𐑱𐑥 𐑒𐑷𐑤𐑟" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Length" +msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑧𐑙𐑒𐑔" + +#: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Change Animation Loop" +msgstr "𐑗𐑱𐑯𐑡 𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑵𐑐" + +#: editor/animation_track_editor.cpp +msgid "Property Track" +msgstr "𐑐𐑮𐑪𐑐𐑼𐑑𐑦 𐑑𐑮𐑨𐑒" + +#: editor/animation_track_editor.cpp +msgid "3D Transform Track" +msgstr "3-𐑛 𐑑𐑮𐑨𐑯𐑕𐑓𐑹𐑥 𐑑𐑮𐑨𐑒" + +#: editor/animation_track_editor.cpp +msgid "Call Method Track" +msgstr "𐑒𐑷𐑤 𐑥𐑧𐑔𐑩𐑛 𐑑𐑮𐑨𐑒" + +#: editor/animation_track_editor.cpp +msgid "Bezier Curve Track" +msgstr "𐑚𐑧𐑟𐑦𐑱 𐑒𐑻𐑝 𐑑𐑮𐑨𐑒" + +#: editor/animation_track_editor.cpp +msgid "Audio Playback Track" +msgstr "𐑷𐑛𐑦𐑴 𐑐𐑮𐑱𐑚𐑨𐑒 𐑑𐑮𐑨𐑒" + +#: editor/animation_track_editor.cpp +msgid "Animation Playback Track" +msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑐𐑤𐑱𐑚𐑨𐑒 𐑑𐑮𐑨𐑒" + +#: editor/animation_track_editor.cpp +msgid "Animation length (frames)" +msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑧𐑙𐑒𐑔 (𐑓𐑮𐑱𐑥𐑟)" + +#: editor/animation_track_editor.cpp +msgid "Animation length (seconds)" +msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑧𐑙𐑒𐑔 (𐑕𐑧𐑒𐑩𐑯𐑛𐑟)" + +#: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "𐑨𐑛 𐑑𐑮𐑨𐑒" + +#: editor/animation_track_editor.cpp +msgid "Animation Looping" +msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑤𐑵𐑐𐑦𐑙" + +#: editor/animation_track_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Functions:" +msgstr "𐑓𐑳𐑙𐑒𐑖𐑩𐑯𐑟:" + +#: editor/animation_track_editor.cpp +msgid "Audio Clips:" +msgstr "𐑷𐑛𐑦𐑴 𐑒𐑤𐑦𐑐𐑕:" + +#: editor/animation_track_editor.cpp +msgid "Anim Clips:" +msgstr "𐑨𐑯𐑦𐑥𐑱𐑖𐑩𐑯 𐑒𐑤𐑦𐑐𐑕:" + +#: editor/animation_track_editor.cpp +msgid "Change Track Path" +msgstr "𐑗𐑱𐑯𐑡 𐑑𐑮𐑨𐑒 𐑐𐑭𐑔" + +#: editor/animation_track_editor.cpp +msgid "Toggle this track on/off." +msgstr "𐑑𐑪𐑜𐑩𐑤 𐑞𐑦𐑕 𐑑𐑮𐑨𐑒 𐑪𐑯/𐑪𐑓." + +#: editor/animation_track_editor.cpp +msgid "Update Mode (How this property is set)" +msgstr "𐑳𐑐𐑛𐑱𐑑 𐑥𐑴𐑛 (𐑣𐑬 𐑞𐑦𐑕 𐑐𐑮𐑪𐑐𐑼𐑑𐑦 𐑦𐑟 𐑕𐑧𐑑)" + +#: editor/animation_track_editor.cpp +msgid "Interpolation Mode" +msgstr "𐑦𐑯𐑑𐑻𐑐𐑩𐑤𐑱𐑖𐑩𐑯 𐑥𐑴𐑛" + +#: editor/animation_track_editor.cpp +msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" +msgstr "𐑤𐑵𐑐 𐑮𐑨𐑐 𐑥𐑴𐑛 (𐑦𐑯𐑑𐑻𐑐𐑩𐑤𐑱𐑑 𐑧𐑯𐑛 𐑢𐑦𐑞 𐑚𐑦𐑜𐑦𐑯𐑦𐑙 𐑪𐑯 𐑤𐑵𐑐)" + +#: editor/animation_track_editor.cpp +msgid "Remove this track." +msgstr "𐑮𐑦𐑥𐑵𐑝 𐑞𐑦𐑕 𐑑𐑮𐑨𐑒." + +#: editor/animation_track_editor.cpp +msgid "Time (s): " +msgstr "𐑑𐑲𐑥(𐑟): " + +#: editor/animation_track_editor.cpp +msgid "Toggle Track Enabled" +msgstr "𐑑𐑪𐑜𐑩𐑤 𐑑𐑮𐑨𐑒 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" + +#: editor/animation_track_editor.cpp +msgid "Continuous" +msgstr "𐑒𐑩𐑯𐑑𐑦𐑯𐑘𐑫𐑩𐑕" + +#: editor/animation_track_editor.cpp +msgid "Discrete" +msgstr "𐑛𐑦𐑕𐑒𐑮𐑰𐑑" + +#: editor/animation_track_editor.cpp +msgid "Trigger" +msgstr "𐑑𐑮𐑦𐑜𐑼" + +#: editor/animation_track_editor.cpp +msgid "Capture" +msgstr "𐑒𐑨𐑐𐑗𐑼" + +#: editor/animation_track_editor.cpp +msgid "Nearest" +msgstr "𐑯𐑽𐑩𐑕𐑑" + +#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp +#: editor/property_editor.cpp +msgid "Linear" +msgstr "𐑤𐑦𐑯𐑽" + +#: editor/animation_track_editor.cpp +msgid "Cubic" +msgstr "𐑒𐑿𐑚𐑦𐑒" + +#: editor/animation_track_editor.cpp +msgid "Clamp Loop Interp" +msgstr "𐑒𐑤𐑨𐑥𐑐 𐑤𐑵𐑐 𐑦𐑯𐑑𐑻𐑐" + +#: editor/animation_track_editor.cpp +msgid "Wrap Loop Interp" +msgstr "𐑮𐑨𐑐 𐑤𐑵𐑐 𐑦𐑯𐑑𐑻𐑐" + +#: editor/animation_track_editor.cpp +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Duplicate Key(s)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add RESET Value(s)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Delete Key(s)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Update Mode" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Interpolation Mode" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Loop Mode" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Remove Anim Track" +msgstr "" + +#. TRANSLATORS: %s will be replaced by a phrase describing the target of track. +#: editor/animation_track_editor.cpp +msgid "Create NEW track for %s and insert key?" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Create %d NEW tracks and insert keys?" +msgstr "" + +#: editor/animation_track_editor.cpp editor/create_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/mesh_instance_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/version_control_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Create" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Insert" +msgstr "" + +#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. +#: editor/animation_track_editor.cpp +msgid "node '%s'" +msgstr "" + +#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. +#: editor/animation_track_editor.cpp +msgid "animation" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "AnimationPlayer can't animate itself, only other players." +msgstr "" + +#. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. +#: editor/animation_track_editor.cpp +msgid "property '%s'" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Create & Insert" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Insert Track & Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Insert Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Step" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Rearrange Tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Transform tracks only apply to Spatial-based nodes." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "" +"Audio tracks can only point to nodes of type:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation tracks can only point to AnimationPlayer nodes." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Not possible to add a new track without a root" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Invalid track for Bezier (no suitable sub-properties)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Bezier Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Track path is invalid, so can't add a key." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Track is not of type Spatial, can't insert key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Transform Track Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Track path is invalid, so can't add a method key." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Method Track Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Method not found in object: " +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Move Keys" +msgstr "" + +#: editor/animation_track_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Clipboard is empty!" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Paste Tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Scale Keys" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "" +"This option does not work for Bezier editing, as it's only a single track." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Add RESET Keys" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom " +"Tracks\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Select an AnimationPlayer node to create and edit animations." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Only show tracks from nodes selected in tree." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Group tracks by node or display them as plain list." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Snap:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation step value." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Seconds" +msgstr "" + +#: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "FPS" +msgstr "" + +#: editor/animation_track_editor.cpp editor/editor_plugin_settings.cpp +#: editor/editor_resource_picker.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/tile_set_editor_plugin.cpp editor/project_manager.cpp +#: editor/project_settings_editor.cpp editor/property_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation properties." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Copy Tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Scale Selection" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Scale From Cursor" +msgstr "" + +#: editor/animation_track_editor.cpp editor/plugins/script_text_editor.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Duplicate Selection" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Duplicate Transposed" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Delete Selection" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Go to Next Step" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Go to Previous Step" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Apply Reset" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Optimize Animation" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-Up Animation" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Pick the node that will be animated:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Use Bezier Curves" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Create RESET Track(s)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim. Optimizer" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Max. Linear Error:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Max. Angular Error:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Max Optimizable Angle:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Optimize" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Remove invalid keys" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Remove unresolved and empty tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-up all animations" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-Up Animation(s) (NO UNDO!)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-Up" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Scale Ratio:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Select Tracks to Copy" +msgstr "" + +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_resource_picker.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp +#: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Copy" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Select All/None" +msgstr "" + +#: editor/animation_track_editor_plugins.cpp +msgid "Add Audio Track Clip" +msgstr "" + +#: editor/animation_track_editor_plugins.cpp +msgid "Change Audio Track Clip Start Offset" +msgstr "" + +#: editor/animation_track_editor_plugins.cpp +msgid "Change Audio Track Clip End Offset" +msgstr "" + +#: editor/array_property_edit.cpp +msgid "Resize Array" +msgstr "" + +#: editor/array_property_edit.cpp +msgid "Change Array Value Type" +msgstr "" + +#: editor/array_property_edit.cpp +msgid "Change Array Value" +msgstr "" + +#: editor/code_editor.cpp +msgid "Go to Line" +msgstr "" + +#: editor/code_editor.cpp +msgid "Line Number:" +msgstr "" + +#: editor/code_editor.cpp +msgid "%d replaced." +msgstr "" + +#: editor/code_editor.cpp editor/editor_help.cpp +msgid "%d match." +msgstr "" + +#: editor/code_editor.cpp editor/editor_help.cpp +msgid "%d matches." +msgstr "" + +#: editor/code_editor.cpp editor/find_in_files.cpp +msgid "Match Case" +msgstr "" + +#: editor/code_editor.cpp editor/find_in_files.cpp +msgid "Whole Words" +msgstr "" + +#: editor/code_editor.cpp +msgid "Replace" +msgstr "" + +#: editor/code_editor.cpp +msgid "Replace All" +msgstr "" + +#: editor/code_editor.cpp +msgid "Selection Only" +msgstr "" + +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + +#: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp +msgid "Toggle Scripts Panel" +msgstr "" + +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/sprite_frames_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 "" + +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/sprite_frames_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 "" + +#: editor/code_editor.cpp +msgid "Reset Zoom" +msgstr "" + +#: editor/code_editor.cpp +msgid "Warnings" +msgstr "" + +#: editor/code_editor.cpp +msgid "Line and column numbers." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Method in target node must be specified." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Method name must be a valid identifier." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "" +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + +#: 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 "" + +#: editor/connections_dialog.cpp editor/dependency_editor.cpp +#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/version_control_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp +#: editor/project_settings_editor.cpp +msgid "Remove" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Add Extra Call Argument:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Extra Call Arguments:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Receiver Method:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Advanced" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Deferred" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Oneshot" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + +#: editor/connections_dialog.cpp editor/dependency_editor.cpp +#: editor/export_template_manager.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/property_editor.cpp +#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Close" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Signal:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect '%s' to '%s'" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnect '%s' from '%s'" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnect all from signal: '%s'" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect..." +msgstr "" + +#: editor/connections_dialog.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Disconnect" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect a Signal to a Method" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Edit Connection:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Are you sure you want to remove all connections from the \"%s\" signal?" +msgstr "" + +#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp +msgid "Signals" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Filter signals" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Are you sure you want to remove all connections from this signal?" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnect All" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Edit..." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Go to Method" +msgstr "" + +#: editor/create_dialog.cpp +msgid "Change %s Type" +msgstr "" + +#: editor/create_dialog.cpp editor/project_settings_editor.cpp +msgid "Change" +msgstr "" + +#: editor/create_dialog.cpp +msgid "Create New %s" +msgstr "" + +#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp +msgid "No results for \"%s\"." +msgstr "" + +#: editor/create_dialog.cpp editor/property_selector.cpp +msgid "No description available for %s." +msgstr "" + +#: editor/create_dialog.cpp editor/editor_file_dialog.cpp +#: editor/filesystem_dock.cpp +msgid "Favorites:" +msgstr "" + +#: editor/create_dialog.cpp editor/editor_file_dialog.cpp +msgid "Recent:" +msgstr "" + +#: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp +#: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Search:" +msgstr "" + +#: 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 "" + +#: editor/create_dialog.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Description:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Search Replacement For:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Dependencies For:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "" +"Scene '%s' is currently being edited.\n" +"Changes will only take effect when reloaded." +msgstr "" + +#: editor/dependency_editor.cpp +msgid "" +"Resource '%s' is in use.\n" +"Changes will only take effect when reloaded." +msgstr "" + +#: editor/dependency_editor.cpp +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Dependencies" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_resource_picker.cpp +msgid "Resource" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp +#: editor/project_manager.cpp editor/project_settings_editor.cpp +msgid "Path" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Dependencies:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Fix Broken" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Dependency Editor" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Search Replacement Resource:" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help_search.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp +#: editor/property_selector.cpp editor/quick_open.cpp +#: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_property_selector.cpp +#: scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Owners Of:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "" +"Remove the selected files from the project? (Cannot be undone.)\n" +"Depending on your filesystem configuration, the files will either be moved " +"to the system trash or deleted permanently." +msgstr "" + +#: editor/dependency_editor.cpp +msgid "" +"The files being removed are required by other resources in order for them to " +"work.\n" +"Remove them anyway? (Cannot be undone.)\n" +"Depending on your filesystem configuration, the files will either be moved " +"to the system trash or deleted permanently." +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Cannot remove:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Error loading:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Load failed due to missing dependencies:" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_node.cpp +msgid "Open Anyway" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Which action should be taken?" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Fix Dependencies" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Errors loading!" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Permanently delete %d item(s)? (No undo!)" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Show Dependencies" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Orphan Resource Explorer" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp +msgid "Delete" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + +#: editor/editor_about.cpp +msgid "Thanks from the Godot community!" +msgstr "" + +#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp +msgid "Click to copy." +msgstr "" + +#: editor/editor_about.cpp +msgid "Godot Engine contributors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Project Founders" +msgstr "" + +#: editor/editor_about.cpp +msgid "Lead Developer" +msgstr "" + +#. TRANSLATORS: This refers to a job title. +#. The trailing space is used to distinguish with the project list application, +#. you do not have to keep it in your translation. +#: editor/editor_about.cpp +msgid "Project Manager " +msgstr "" + +#: editor/editor_about.cpp +msgid "Developers" +msgstr "" + +#: editor/editor_about.cpp +msgid "Authors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Platinum Sponsors" +msgstr "" + +#: editor/editor_about.cpp +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 "" + +#: editor/editor_about.cpp +msgid "Gold Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Silver Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "License" +msgstr "" + +#: editor/editor_about.cpp +msgid "Third-party Licenses" +msgstr "" + +#: editor/editor_about.cpp +msgid "" +"Godot Engine relies on a number of third-party free and open source " +"libraries, all compatible with the terms of its MIT license. The following " +"is an exhaustive list of all such third-party components with their " +"respective copyright statements and license terms." +msgstr "" + +#: editor/editor_about.cpp +msgid "All Components" +msgstr "" + +#: editor/editor_about.cpp +msgid "Components" +msgstr "" + +#: editor/editor_about.cpp +msgid "Licenses" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Error opening asset file for \"%s\" (not in ZIP format)." +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "%s (already exists)" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Contents of asset \"%s\" - No files conflict with your project:" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Uncompressing Assets" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "The following files failed extraction from asset \"%s\":" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "(and %s more files)" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Asset \"%s\" installed successfully!" +msgstr "" + +#: editor/editor_asset_installer.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Success!" +msgstr "" + +#: editor/editor_asset_installer.cpp editor/editor_node.cpp +msgid "Install" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Asset Installer" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Speakers" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Rename Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Change Audio Bus Volume" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Solo" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Mute" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Bypass Effects" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Select Audio Bus Send" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Audio Bus Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Move Bus Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Delete Bus Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Drag & drop to rearrange." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Solo" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Mute" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Bypass" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Bus Options" +msgstr "" + +#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp +#: editor/scene_tree_dock.cpp +msgid "Duplicate" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Reset Volume" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Delete Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Audio" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Master bus can't be deleted!" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Delete Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Duplicate Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Reset Bus Volume" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Move Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Save Audio Bus Layout As..." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Location for New Layout..." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Open Audio Bus Layout" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Invalid file, not an audio bus layout." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Error saving file: %s" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add a new Audio Bus to this layout." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/editor_resource_picker.cpp +#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp +#: editor/script_create_dialog.cpp +msgid "Load" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Load an existing Bus Layout." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Save As" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Save this Bus Layout to a file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/import_dock.cpp +msgid "Load Default" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Load the default Bus Layout." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Create a new Bus Layout." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Invalid name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Cannot begin with a digit." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Valid characters:" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing built-in type name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Autoload '%s' already exists!" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Rename Autoload" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Toggle AutoLoad Globals" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Move Autoload" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Remove Autoload" +msgstr "" + +#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp +msgid "Enable" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Rearrange Autoloads" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Can't add autoload:" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "%s is an invalid path. File does not exist." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "%s is an invalid path. Not in resource path (res://)." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Add AutoLoad" +msgstr "" + +#: 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 "" + +#: editor/editor_autoload_settings.cpp +msgid "Node Name:" +msgstr "" + +#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp +#: editor/editor_plugin_settings.cpp editor/editor_profiler.cpp +#: editor/project_manager.cpp editor/settings_config_dialog.cpp +msgid "Name" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Global Variable" +msgstr "" + +#: editor/editor_data.cpp +msgid "Paste Params" +msgstr "" + +#: editor/editor_data.cpp +msgid "Updating Scene" +msgstr "" + +#: editor/editor_data.cpp +msgid "Storing local changes..." +msgstr "" + +#: editor/editor_data.cpp +msgid "Updating scene..." +msgstr "" + +#: editor/editor_data.cpp editor/editor_resource_picker.cpp +msgid "[empty]" +msgstr "" + +#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "[unsaved]" +msgstr "" + +#: editor/editor_dir_dialog.cpp +msgid "Please select a base directory first." +msgstr "" + +#: editor/editor_dir_dialog.cpp +msgid "Choose a Directory" +msgstr "" + +#: 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 "" + +#: 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 +#: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp +msgid "Name:" +msgstr "" + +#: 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 "" + +#: editor/editor_dir_dialog.cpp +msgid "Choose" +msgstr "" + +#: editor/editor_export.cpp +msgid "Storing File:" +msgstr "" + +#: editor/editor_export.cpp +msgid "No export template found at the expected path:" +msgstr "" + +#: editor/editor_export.cpp +msgid "Packing" +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " +"Etc' in Project Settings." +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'ETC2' texture compression for GLES3. Enable " +"'Import Etc 2' in Project Settings." +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'ETC' texture compression for the driver fallback " +"to GLES2.\n" +"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " +"Enabled'." +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'PVRTC' texture compression for GLES2. Enable " +"'Import Pvrtc' in Project Settings." +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'ETC2' or 'PVRTC' texture compression for GLES3. " +"Enable 'Import Etc 2' or 'Import Pvrtc' in Project Settings." +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'PVRTC' texture compression for the driver fallback " +"to GLES2.\n" +"Enable 'Import Pvrtc' in Project Settings, or disable 'Driver Fallback " +"Enabled'." +msgstr "" + +#: editor/editor_export.cpp platform/android/export/export_plugin.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 "" + +#: editor/editor_export.cpp platform/android/export/export_plugin.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 "" + +#: editor/editor_export.cpp platform/javascript/export/export.cpp +msgid "Template file not found:" +msgstr "" + +#: editor/editor_export.cpp +msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "FileSystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Allows to view and edit 3D scenes." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Allows to edit scripts using the integrated script editor." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Provides built-in access to the Asset Library." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Allows editing the node hierarchy in the Scene dock." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Allows to work with signals and groups of the node selected in the Scene " +"dock." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Allows to browse the local file system via a dedicated dock." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Allows to configure import settings for individual assets. Requires the " +"FileSystem dock to function." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(current)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(none)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Remove currently selected profile, '%s'? Cannot be undone." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Main Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Nodes and Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remove it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Reset to Default" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Create Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Remove Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Configure Selected Profile:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Extra Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Create or import a profile to edit available classes and properties." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Godot Feature Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Select Current Folder" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "File exists, overwrite?" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Select This Folder" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "Copy Path" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "Open in File Manager" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +msgid "Show in File Manager" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "New Folder..." +msgstr "" + +#: editor/editor_file_dialog.cpp editor/find_in_files.cpp +msgid "Refresh" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "All Recognized" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "All Files (*)" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a File" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open File(s)" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a Directory" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a File or Directory" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/editor_resource_picker.cpp editor/import_defaults_editor.cpp +#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp scene/gui/file_dialog.cpp +msgid "Save" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Save a File" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go Back" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go Forward" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go Up" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Hidden Files" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Favorite" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Mode" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Focus Path" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Move Favorite Up" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Move Favorite Down" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go to previous folder." +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go to next folder." +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Refresh files." +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "(Un)favorite current folder." +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Toggle the visibility of hidden files." +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "View items as a grid of thumbnails." +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "View items as a list." +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Directories & Files:" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp +#: editor/plugins/style_box_editor_plugin.cpp editor/rename_dialog.cpp +msgid "Preview:" +msgstr "" + +#: editor/editor_file_dialog.cpp +#: editor/plugins/version_control_editor_plugin.cpp scene/gui/file_dialog.cpp +msgid "File:" +msgstr "" + +#: editor/editor_file_system.cpp +msgid "ScanSources" +msgstr "" + +#: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp +msgid "(Re)Importing Assets" +msgstr "" + +#: editor/editor_help.cpp +msgid "Top" +msgstr "" + +#: editor/editor_help.cpp +msgid "Class:" +msgstr "" + +#: editor/editor_help.cpp editor/scene_tree_editor.cpp +#: editor/script_create_dialog.cpp +msgid "Inherits:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Inherited by:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Description" +msgstr "" + +#: editor/editor_help.cpp +msgid "Online Tutorials" +msgstr "" + +#: editor/editor_help.cpp +msgid "Properties" +msgstr "" + +#: editor/editor_help.cpp +msgid "overrides %s:" +msgstr "" + +#: editor/editor_help.cpp +msgid "default:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Methods" +msgstr "" + +#: editor/editor_help.cpp +msgid "Theme Properties" +msgstr "" + +#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Colors" +msgstr "" + +#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Constants" +msgstr "" + +#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Fonts" +msgstr "" + +#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Icons" +msgstr "" + +#: editor/editor_help.cpp +msgid "Styles" +msgstr "" + +#: editor/editor_help.cpp +msgid "Enumerations" +msgstr "" + +#: editor/editor_help.cpp +msgid "Property Descriptions" +msgstr "" + +#: editor/editor_help.cpp +msgid "(value)" +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 "" + +#: editor/editor_help.cpp +msgid "Method Descriptions" +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 "" + +#: editor/editor_help_search.cpp editor/editor_node.cpp +#: editor/plugins/script_editor_plugin.cpp +msgid "Search Help" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Case Sensitive" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Show Hierarchy" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Display All" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Classes Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Methods Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Signals Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Constants Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Properties Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Theme Properties Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Member Type" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Class" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Method" +msgstr "" + +#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/editor_help_search.cpp modules/visual_script/visual_script_nodes.cpp +msgid "Constant" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Property" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Theme Property" +msgstr "" + +#: editor/editor_inspector.cpp editor/project_settings_editor.cpp +msgid "Property:" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Pin value" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "" +"Pinning a value forces it to be saved even if it's equal to the default." +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Pin value [Disabled because '%s' is editor-only]" +msgstr "" + +#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp +#: modules/visual_script/visual_script_func_nodes.cpp +#: modules/visual_script/visual_script_nodes.cpp +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Set %s" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Set Multiple:" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Pinned %s" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Unpinned %s" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Copy Property" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Paste Property" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Copy Property Path" +msgstr "" + +#: editor/editor_log.cpp +msgid "Output:" +msgstr "" + +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + +#: editor/editor_log.cpp editor/editor_network_profiler.cpp +#: editor/editor_profiler.cpp editor/editor_resource_picker.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/property_editor.cpp editor/scene_tree_dock.cpp +#: editor/script_editor_debugger.cpp +#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Clear" +msgstr "" + +#: editor/editor_log.cpp +msgid "Clear Output" +msgstr "" + +#: editor/editor_network_profiler.cpp editor/editor_node.cpp +#: editor/editor_profiler.cpp +msgid "Stop" +msgstr "" + +#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp +#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp +msgid "Start" +msgstr "" + +#: editor/editor_network_profiler.cpp +msgid "%s/s" +msgstr "" + +#: editor/editor_network_profiler.cpp +msgid "Down" +msgstr "" + +#: editor/editor_network_profiler.cpp +msgid "Up" +msgstr "" + +#: editor/editor_network_profiler.cpp editor/editor_node.cpp +msgid "Node" +msgstr "" + +#: editor/editor_network_profiler.cpp +msgid "Incoming RPC" +msgstr "" + +#: editor/editor_network_profiler.cpp +msgid "Incoming RSET" +msgstr "" + +#: editor/editor_network_profiler.cpp +msgid "Outgoing RPC" +msgstr "" + +#: editor/editor_network_profiler.cpp +msgid "Outgoing RSET" +msgstr "" + +#: editor/editor_node.cpp editor/project_manager.cpp +msgid "New Window" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Spins when the editor window redraws.\n" +"Update Continuously is enabled, which can increase power usage. Click to " +"disable it." +msgstr "" + +#: editor/editor_node.cpp +msgid "Spins when the editor window redraws." +msgstr "" + +#: editor/editor_node.cpp +msgid "Imported resources can't be saved." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp scene/gui/dialogs.cpp +msgid "OK" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Error saving resource!" +msgstr "" + +#: 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 "" + +#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Save Resource As..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't open file for writing:" +msgstr "" + +#: editor/editor_node.cpp +msgid "Requested file format unknown:" +msgstr "" + +#: editor/editor_node.cpp +msgid "Error while saving." +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 "" + +#: editor/editor_node.cpp +msgid "Error while parsing '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unexpected end of file '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Missing '%s' or its dependencies." +msgstr "" + +#: editor/editor_node.cpp +msgid "Error while loading '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Saving Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Analyzing" +msgstr "" + +#: editor/editor_node.cpp +msgid "Creating Thumbnail" +msgstr "" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a tree root." +msgstr "" + +#: 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 "" + +#: editor/editor_node.cpp +msgid "" +"Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " +"be satisfied." +msgstr "" + +#: editor/editor_node.cpp +msgid "Could not save one or more scenes!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save All Scenes" +msgstr "" + +#: editor/editor_node.cpp editor/scene_tree_dock.cpp +msgid "Can't overwrite scene that is still open!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't load MeshLibrary for merging!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Error saving MeshLibrary!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't load TileSet for merging!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Error saving TileSet!" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"An error occurred while trying to save the editor layout.\n" +"Make sure the editor's user data path is writable." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Default editor layout overridden.\n" +"To restore the Default layout to its base settings, use the Delete Layout " +"option and delete the Default layout." +msgstr "" + +#: editor/editor_node.cpp +msgid "Layout name not found!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Restored the Default layout to its base settings." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This resource belongs to a scene that was imported, so it's not editable.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" + +#: 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 "" + +#: 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 "" +"This scene was imported, so changes to it won't be kept.\n" +"Instancing it or inheriting will allow making changes to it.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This is a remote object, so changes to it won't be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp +msgid "There is no defined scene to run." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save scene before running..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Could not start subprocess!" +msgstr "" + +#: editor/editor_node.cpp editor/filesystem_dock.cpp +msgid "Open Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Base Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Open Scene..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Open Script..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save & Close" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save changes to '%s' before closing?" +msgstr "" + +#: editor/editor_node.cpp +msgid "%s no longer exists! Please specify a new save location." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"The current scene has no root node, but %d modified external resource(s) " +"were saved anyway." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"A root node is required to save the scene. You can add a root node using the " +"Scene tree dock." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save Scene As..." +msgstr "" + +#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp +msgid "This operation can't be done without a scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Export Mesh Library" +msgstr "" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp +msgid "Export Tile Set" +msgstr "" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a selected node." +msgstr "" + +#: editor/editor_node.cpp +msgid "Current scene not saved. Open anyway?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't undo while mouse buttons are pressed." +msgstr "" + +#: editor/editor_node.cpp +msgid "Nothing to undo." +msgstr "" + +#: editor/editor_node.cpp +msgid "Undo: %s" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't redo while mouse buttons are pressed." +msgstr "" + +#: editor/editor_node.cpp +msgid "Nothing to redo." +msgstr "" + +#: editor/editor_node.cpp +msgid "Redo: %s" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't reload a scene that was never saved." +msgstr "" + +#: editor/editor_node.cpp +msgid "Reload Saved Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"The current scene has unsaved changes.\n" +"Reload the saved scene anyway? This action cannot be undone." +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Run Scene..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Quit" +msgstr "" + +#: editor/editor_node.cpp +msgid "Yes" +msgstr "" + +#: editor/editor_node.cpp +msgid "Exit the editor?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Project Manager?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save & Quit" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save changes to the following scene(s) before quitting?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save changes to the following scene(s) before opening Project Manager?" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This option is deprecated. Situations where refresh must be forced are now " +"considered a bug. Please report." +msgstr "" + +#: editor/editor_node.cpp +msgid "Pick a Main Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Reopen Closed Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to enable addon plugin at: '%s' parsing of config failed." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to find script field for addon plugin at: '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to load addon script from path: '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Unable to load addon script from path: '%s'. This might be due to a code " +"error in that script.\n" +"Disabling the addon at '%s' to prevent further errors." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Unable to load addon script from path: '%s' Base type is not EditorPlugin." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to load addon script from path: '%s' Script is not in tool mode." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: editor/editor_node.cpp +msgid "Clear Recent Scenes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save Layout" +msgstr "" + +#: editor/editor_node.cpp +msgid "Delete Layout" +msgstr "" + +#: editor/editor_node.cpp editor/import_dock.cpp +#: editor/script_create_dialog.cpp +msgid "Default" +msgstr "" + +#: editor/editor_node.cpp editor/editor_resource_picker.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp +msgid "Show in FileSystem" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play This Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "Undo Close Tab" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Switch Scene Tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" +msgstr "" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" + +#: editor/editor_node.cpp +msgid "Distraction Free Mode" +msgstr "" + +#: editor/editor_node.cpp +msgid "Toggle distraction-free mode." +msgstr "" + +#: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp +msgid "Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Go to previously opened scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Copy Text" +msgstr "" + +#: editor/editor_node.cpp +msgid "Next tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "Previous tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "Filter Files..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Operations with scene files." +msgstr "" + +#: editor/editor_node.cpp +msgid "New Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "New Inherited Scene..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Scene..." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Open Recent" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Convert To..." +msgstr "" + +#: editor/editor_node.cpp +msgid "MeshLibrary..." +msgstr "" + +#: editor/editor_node.cpp +msgid "TileSet..." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Undo" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Redo" +msgstr "" + +#: editor/editor_node.cpp +msgid "Miscellaneous project or scene-wide tools." +msgstr "" + +#: editor/editor_node.cpp editor/project_manager.cpp +#: editor/script_create_dialog.cpp +msgid "Project" +msgstr "" + +#: editor/editor_node.cpp +msgid "Project Settings..." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/version_control_editor_plugin.cpp +msgid "Set Up Version Control" +msgstr "" + +#: editor/editor_node.cpp +msgid "Shut Down Version Control" +msgstr "" + +#: editor/editor_node.cpp +msgid "Export..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Install Android Build Template..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Open User Data Folder" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp +msgid "Tools" +msgstr "" + +#: editor/editor_node.cpp +msgid "Orphan Resource Explorer..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Reload Current Project" +msgstr "" + +#: editor/editor_node.cpp +msgid "Quit to Project List" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/project_export.cpp +msgid "Debug" +msgstr "" + +#: editor/editor_node.cpp +msgid "Deploy with Remote Debug" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, using one-click deploy will make the executable " +"attempt to connect to this computer's IP so the running project can be " +"debugged.\n" +"This option is intended to be used for remote debugging (typically with a " +"mobile device).\n" +"You don't need to enable it to use the GDScript debugger locally." +msgstr "" + +#: editor/editor_node.cpp +msgid "Small Deploy with Network Filesystem" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, using one-click deploy for Android will only " +"export an executable without the project data.\n" +"The filesystem will be provided from the project by the editor over the " +"network.\n" +"On Android, deploying will use the USB cable for faster performance. This " +"option speeds up testing for projects with large assets." +msgstr "" + +#: editor/editor_node.cpp +msgid "Visible Collision Shapes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, collision shapes and raycast nodes (for 2D and " +"3D) will be visible in the running project." +msgstr "" + +#: editor/editor_node.cpp +msgid "Visible Navigation" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, navigation meshes and polygons will be visible " +"in the running project." +msgstr "" + +#: editor/editor_node.cpp +msgid "Force Shader Fallbacks" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, shaders will be used in their fallback form " +"(either visible via an ubershader or hidden) during all the run time.\n" +"This is useful for verifying the look and performance of fallbacks, which " +"are normally displayed briefly.\n" +"Asynchronous shader compilation must be enabled in the project settings for " +"this option to make a difference." +msgstr "" + +#: editor/editor_node.cpp +msgid "Synchronize Scene Changes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, any changes made to the scene in the editor " +"will be replicated in the running project.\n" +"When used remotely on a device, this is more efficient when the network " +"filesystem option is enabled." +msgstr "" + +#: editor/editor_node.cpp +msgid "Synchronize Script Changes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, any script that is saved will be reloaded in " +"the running project.\n" +"When used remotely on a device, this is more efficient when the network " +"filesystem option is enabled." +msgstr "" + +#: editor/editor_node.cpp editor/script_create_dialog.cpp +msgid "Editor" +msgstr "" + +#: editor/editor_node.cpp +msgid "Editor Settings..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Editor Layout" +msgstr "" + +#: editor/editor_node.cpp +msgid "Take Screenshot" +msgstr "" + +#: editor/editor_node.cpp +msgid "Screenshots are stored in the Editor Data/Settings Folder." +msgstr "" + +#: editor/editor_node.cpp +msgid "Toggle Fullscreen" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Editor Data/Settings Folder" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Editor Data Folder" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Editor Settings Folder" +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Editor Features..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Export Templates..." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp +msgid "Help" +msgstr "" + +#: editor/editor_node.cpp +msgid "Online Documentation" +msgstr "" + +#: editor/editor_node.cpp +msgid "Questions & Answers" +msgstr "" + +#: editor/editor_node.cpp +msgid "Report a Bug" +msgstr "" + +#: editor/editor_node.cpp +msgid "Suggest a Feature" +msgstr "" + +#: editor/editor_node.cpp +msgid "Send Docs Feedback" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp +msgid "Community" +msgstr "" + +#: editor/editor_node.cpp +msgid "About Godot" +msgstr "" + +#: editor/editor_node.cpp +msgid "Support Godot Development" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play the project." +msgstr "" + +#: editor/editor_node.cpp +msgid "Play" +msgstr "" + +#: editor/editor_node.cpp +msgid "Pause the scene execution for debugging." +msgstr "" + +#: editor/editor_node.cpp +msgid "Pause Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Stop the scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Play the edited scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Play Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play custom scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play Custom Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Changing the video driver requires restarting the editor." +msgstr "" + +#: editor/editor_node.cpp editor/project_settings_editor.cpp +#: editor/settings_config_dialog.cpp +msgid "Save & Restart" +msgstr "" + +#: editor/editor_node.cpp +msgid "Update Continuously" +msgstr "" + +#: editor/editor_node.cpp +msgid "Update All Changes" +msgstr "" + +#: editor/editor_node.cpp +msgid "Update Vital Changes" +msgstr "" + +#: editor/editor_node.cpp +msgid "Hide Update Spinner" +msgstr "" + +#: editor/editor_node.cpp +msgid "FileSystem" +msgstr "" + +#: editor/editor_node.cpp +msgid "Inspector" +msgstr "" + +#: editor/editor_node.cpp +msgid "Expand Bottom Panel" +msgstr "" + +#: editor/editor_node.cpp +msgid "Output" +msgstr "" + +#: editor/editor_node.cpp +msgid "Don't Save" +msgstr "" + +#: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "Install from file" +msgstr "" + +#: editor/editor_node.cpp +msgid "Select android sources file" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will set up your project for custom Android builds by installing the " +"source template to \"res://android/build\".\n" +"You can then apply modifications and build your own custom APK on export " +"(adding modules, changing the AndroidManifest.xml, etc.).\n" +"Note that in order to make custom builds instead of using pre-built APKs, " +"the \"Use Custom Build\" option should be enabled in the Android export " +"preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"The Android build template is already installed in this project and it won't " +"be overwritten.\n" +"Remove the \"res://android/build\" directory manually before attempting this " +"operation again." +msgstr "" + +#: editor/editor_node.cpp +msgid "Import Templates From ZIP File" +msgstr "" + +#: editor/editor_node.cpp +msgid "Template Package" +msgstr "" + +#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp +msgid "Export Library" +msgstr "" + +#: editor/editor_node.cpp +msgid "Merge With Existing" +msgstr "" + +#: editor/editor_node.cpp +msgid "Apply MeshInstance Transforms" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open & Run a Script" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/editor_node.cpp +msgid "New Inherited" +msgstr "" + +#: editor/editor_node.cpp +msgid "Load Errors" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp +#: modules/visual_script/visual_script_nodes.cpp +msgid "Select" +msgstr "" + +#: editor/editor_node.cpp +msgid "Select Current" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open 2D Editor" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open 3D Editor" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Script Editor" +msgstr "" + +#: editor/editor_node.cpp editor/project_manager.cpp +msgid "Open Asset Library" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open the next Editor" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open the previous Editor" +msgstr "" + +#: editor/editor_node.h +msgid "Warning!" +msgstr "" + +#: editor/editor_path.cpp +msgid "No sub-resources found." +msgstr "" + +#: editor/editor_path.cpp +msgid "Open a list of sub-resources." +msgstr "" + +#: editor/editor_plugin.cpp +msgid "Creating Mesh Previews" +msgstr "" + +#: editor/editor_plugin.cpp +msgid "Thumbnail..." +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Main Script:" +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Edit Plugin" +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Installed Plugins:" +msgstr "" + +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp +msgid "Update" +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Version" +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Author" +msgstr "" + +#: editor/editor_plugin_settings.cpp +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Status" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Measure:" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Frame Time (ms)" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Average Time (ms)" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Frame %" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Physics Frame %" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Inclusive" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Self" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "" +"Inclusive: Includes time from other functions called by this function.\n" +"Use this to spot bottlenecks.\n" +"\n" +"Self: Only count the time spent in the function itself, not in other " +"functions called by that function.\n" +"Use this to find individual functions to optimize." +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Frame #:" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Time" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Calls" +msgstr "" + +#: editor/editor_properties.cpp +msgid "Edit Text:" +msgstr "" + +#: editor/editor_properties.cpp editor/script_create_dialog.cpp +msgid "On" +msgstr "" + +#: editor/editor_properties.cpp +msgid "Layer" +msgstr "" + +#: editor/editor_properties.cpp +msgid "Bit %d, value %d" +msgstr "" + +#: editor/editor_properties.cpp +msgid "[Empty]" +msgstr "" + +#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp +msgid "Assign..." +msgstr "" + +#: editor/editor_properties.cpp +msgid "Invalid RID" +msgstr "" + +#: editor/editor_properties.cpp +msgid "" +"Can't create a ViewportTexture on resources saved as a file.\n" +"Resource needs to belong to a scene." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" +"Can't create a ViewportTexture on this resource because it's not set as " +"local to scene.\n" +"Please switch on the 'local to scene' property on it (and all resources " +"containing it up to a node)." +msgstr "" + +#: editor/editor_properties.cpp editor/property_editor.cpp +msgid "Pick a Viewport" +msgstr "" + +#: editor/editor_properties.cpp editor/property_editor.cpp +msgid "Selected node is not a Viewport!" +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "Size: " +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "Page: " +msgstr "" + +#: editor/editor_properties_array_dict.cpp +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove Item" +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "New Key:" +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "New Value:" +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "Add Key/Value Pair" +msgstr "" + +#: editor/editor_resource_picker.cpp +msgid "" +"The selected resource (%s) does not match any type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_resource_picker.cpp +msgid "Quick Load" +msgstr "" + +#: editor/editor_resource_picker.cpp editor/property_editor.cpp +msgid "Make Unique" +msgstr "" + +#: editor/editor_resource_picker.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +#: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp +#: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Paste" +msgstr "" + +#: editor/editor_resource_picker.cpp editor/property_editor.cpp +msgid "Convert to %s" +msgstr "" + +#: editor/editor_resource_picker.cpp editor/property_editor.cpp +msgid "New %s" +msgstr "" + +#: editor/editor_resource_picker.cpp editor/property_editor.cpp +msgid "New Script" +msgstr "" + +#: editor/editor_resource_picker.cpp editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + +#: editor/editor_run_native.cpp +msgid "" +"No runnable export preset found for this platform.\n" +"Please add a runnable preset in the Export menu or define an existing preset " +"as runnable." +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Write your logic in the _run() method." +msgstr "" + +#: editor/editor_run_script.cpp +msgid "There is an edited scene already." +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Couldn't instance script:" +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Did you forget the 'tool' keyword?" +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Couldn't run script:" +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Did you forget the '_run' method?" +msgstr "" + +#: editor/editor_spin_slider.cpp +msgid "Hold %s to round to integers. Hold Shift for more precise changes." +msgstr "" + +#: editor/editor_sub_scene.cpp +msgid "Select Node(s) to Import" +msgstr "" + +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + +#: editor/editor_sub_scene.cpp +msgid "Scene Path:" +msgstr "" + +#: editor/editor_sub_scene.cpp +msgid "Import From Node:" +msgstr "" + +#. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git"). +#: editor/editor_vcs_interface.cpp +msgid "%s Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Open the folder containing these templates." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Uninstall these templates." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "There are no mirrors available." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Retrieving the mirror list..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Starting the download..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting URL:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to the mirror..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't resolve the requested address." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't connect to the mirror." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "No response from the mirror." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Request ended up in a redirect loop." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Request failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download complete; extracting templates..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Cannot remove temporary file:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "" +"Templates installation failed.\n" +"The problematic templates archives can be found at '%s'." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error getting the list of mirrors." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error parsing JSON with the list of mirrors. Please report this issue!" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Best available mirror" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Connect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't open the export templates file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Invalid version.txt format inside the export templates file: %s." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "No version.txt found inside the export templates file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error creating path for extracting templates:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Extracting Export Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Importing:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Remove templates for the version '%s'?" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Export Template Manager" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Current Version:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Export templates are missing. Download them or install from a file." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Export templates are installed and ready to be used." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Open Folder" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Open the folder containing installed templates for the current version." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Uninstall" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Uninstall templates for the current version." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download from:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Open in Web Browser" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Copy Mirror URL" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download and Install" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "" +"Download and install templates for the current version from the best " +"possible mirror." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Official export templates aren't available for development builds." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Install from File" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Install templates from a local file." +msgstr "" + +#: editor/export_template_manager.cpp editor/find_in_files.cpp +#: editor/progress_dialog.cpp scene/gui/dialogs.cpp +msgid "Cancel" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Cancel the download of the templates." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Other Installed Versions:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Uninstall Template" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select Template File" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Godot Export Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "" +"The templates will continue to download.\n" +"You may experience a short editor freeze when they finish." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Favorites" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Status: Import of file failed. Please fix file and reimport manually." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "" +"Importing has been disabled for this file, so it can't be opened for editing." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Cannot move/rename resources root." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Cannot move a folder into itself." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Error moving:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Error duplicating:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Unable to update dependencies:" +msgstr "" + +#: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp +msgid "No name provided." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Provided name contains invalid characters." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "A file or folder with this name already exists." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Name contains invalid characters." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "" +"This file extension is not recognized by the editor.\n" +"If you want to rename it anyway, use your operating system's file manager.\n" +"After renaming to an unknown extension, the file won't be shown in the " +"editor anymore." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "" +"The following files or folders conflict with items in the target location " +"'%s':\n" +"\n" +"%s\n" +"\n" +"Do you wish to overwrite them?" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Renaming file:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Renaming folder:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Duplicating file:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Duplicating folder:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Set As Main Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Instance" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Add to Favorites" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Remove from Favorites" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Edit Dependencies..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "View Owners..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Move To..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "New Scene..." +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp +msgid "New Script..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "New Resource..." +msgstr "" + +#: editor/filesystem_dock.cpp editor/inspector_dock.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp +msgid "Expand All" +msgstr "" + +#: editor/filesystem_dock.cpp editor/inspector_dock.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp +msgid "Collapse All" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Sort files" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Sort by Name (Ascending)" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Sort by Name (Descending)" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Sort by Type (Ascending)" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Sort by Type (Descending)" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Sort by Last Modified" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Sort by First Modified" +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Duplicate..." +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Rename..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Focus the search box" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Previous Folder/File" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Next Folder/File" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Re-Scan Filesystem" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Toggle Split Mode" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Search files" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "" +"Scanning Files,\n" +"Please Wait..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Move" +msgstr "" + +#: editor/filesystem_dock.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/project_manager.cpp editor/rename_dialog.cpp +#: editor/scene_tree_dock.cpp +msgid "Rename" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Overwrite" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Create Scene" +msgstr "" + +#: 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 +msgid "Find in Files" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Find:" +msgstr "" + +#: editor/find_in_files.cpp editor/rename_dialog.cpp +msgid "Replace:" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Folder:" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Filters:" +msgstr "" + +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find..." +msgstr "" + +#: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp +msgid "Replace..." +msgstr "" + +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp +msgid "Replace in Files" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Find: " +msgstr "" + +#: editor/find_in_files.cpp +msgid "Replace: " +msgstr "" + +#: editor/find_in_files.cpp +msgid "Replace All (NO UNDO)" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Searching..." +msgstr "" + +#: editor/find_in_files.cpp +msgid "%d match in %d file." +msgstr "" + +#: editor/find_in_files.cpp +msgid "%d matches in %d file." +msgstr "" + +#: editor/find_in_files.cpp +msgid "%d matches in %d files." +msgstr "" + +#: editor/groups_editor.cpp +msgid "Add to Group" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Remove from Group" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Group name already exists." +msgstr "" + +#: editor/groups_editor.cpp +msgid "Invalid group name." +msgstr "" + +#: editor/groups_editor.cpp +msgid "Rename Group" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Delete Group" +msgstr "" + +#: editor/groups_editor.cpp editor/node_dock.cpp +msgid "Groups" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Nodes Not in Group" +msgstr "" + +#: editor/groups_editor.cpp editor/scene_tree_dock.cpp +#: editor/scene_tree_editor.cpp +msgid "Filter nodes" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Nodes in Group" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Empty groups will be automatically removed." +msgstr "" + +#: editor/groups_editor.cpp +msgid "Group Editor" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Manage Groups" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Single Scene" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Materials" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Materials" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Materials+Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Materials+Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Multiple Scenes" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Multiple Scenes+Materials" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Import Scene" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Importing Scene..." +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Generating Lightmaps" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Generating for Mesh: " +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Running Custom Script..." +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Couldn't load post-import script:" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Invalid/broken script for post-import (check console):" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Error running post-import script:" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Did you return a Node-derived object in the `post_import()` method?" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Saving..." +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Select Importer" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Importer:" +msgstr "" + +#: editor/import_defaults_editor.cpp +msgid "Reset to Defaults" +msgstr "" + +#: editor/import_dock.cpp +msgid "Keep File (No Import)" +msgstr "" + +#: editor/import_dock.cpp +msgid "%d Files" +msgstr "" + +#: editor/import_dock.cpp +msgid "Set as Default for '%s'" +msgstr "" + +#: editor/import_dock.cpp +msgid "Clear Default for '%s'" +msgstr "" + +#: editor/import_dock.cpp +msgid "Reimport" +msgstr "" + +#: editor/import_dock.cpp +msgid "" +"You have pending changes that haven't been applied yet. Click Reimport to " +"apply changes made to the import options.\n" +"Selecting another resource in the FileSystem dock without clicking Reimport " +"first will discard changes made in the Import dock." +msgstr "" + +#: editor/import_dock.cpp +msgid "Import As:" +msgstr "" + +#: editor/import_dock.cpp +msgid "Preset" +msgstr "" + +#: editor/import_dock.cpp +msgid "Save Scenes, Re-Import, and Restart" +msgstr "" + +#: editor/import_dock.cpp +msgid "Changing the type of an imported file requires editor restart." +msgstr "" + +#: editor/import_dock.cpp +msgid "" +"WARNING: Assets exist that use this resource, they may stop loading properly." +msgstr "" + +#: editor/import_dock.cpp +msgid "" +"Select a resource file in the filesystem or in the inspector to adjust " +"import settings." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Failed to load resource." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Copy Properties" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Paste Properties" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Make Sub-Resources Unique" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Create a new resource in memory and edit it." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Load an existing resource from disk and edit it." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Save the currently edited resource." +msgstr "" + +#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +msgid "Save As..." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Extra resource options." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Edit Resource from Clipboard" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Copy Resource" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Make Resource Built-In" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Go to the previous edited object in history." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Go to the next edited object in history." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "History of recently edited objects." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Open documentation for this object." +msgstr "" + +#: editor/inspector_dock.cpp editor/scene_tree_dock.cpp +msgid "Open Documentation" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Filter properties" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Manage object properties." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Changes may be lost!" +msgstr "" + +#: editor/multi_node_edit.cpp +msgid "MultiNode Set" +msgstr "" + +#: editor/node_dock.cpp +msgid "Select a single node to edit its signals and groups." +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Edit a Plugin" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Create a Plugin" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Plugin Name:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Subfolder:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Author:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Version:" +msgstr "" + +#: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp +msgid "Language:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Script Name:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Activate now?" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "" +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Edit Polygon" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Insert Point" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Edit Polygon (Remove Point)" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Remove Polygon And Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Animation" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Load..." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Move Node Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Change BlendSpace1D Limits" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Change BlendSpace1D Labels" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_state_machine_editor.cpp +msgid "This type of node can't be used. Only root nodes are allowed." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Add Node Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Add Animation Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Remove BlendSpace1D Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Move BlendSpace1D Node Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +msgid "" +"AnimationTree is inactive.\n" +"Activate to enable playback, check node warnings if activation fails." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Set the blending position within the space" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Select and move points, create points with RMB." +msgstr "" + +#: 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 "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Open Editor" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Open Animation Node" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Triangle already exists." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Add Triangle" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Change BlendSpace2D Limits" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Change BlendSpace2D Labels" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Remove BlendSpace2D Point" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Remove BlendSpace2D Triangle" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "BlendSpace2D does not belong to an AnimationTree node." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "No triangles exist, so no blending can take place." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Toggle Auto Triangles" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create triangles by connecting points." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Erase points and triangles." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Generate blend triangles automatically (instead of manually)" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend:" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Parameter Changed:" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Edit Filters" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Output node can't be added to the blend tree." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Add Node to BlendTree" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Node Moved" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Unable to connect, port may be in use or connection may be invalid." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Nodes Connected" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Nodes Disconnected" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Set Animation" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Delete Node" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/scene_tree_dock.cpp +msgid "Delete Node(s)" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Toggle Filter On/Off" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Change Filter" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "No animation player set, so unable to retrieve track names." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Player path set is invalid, so unable to retrieve track names." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "" +"Animation player has no valid root node path, so unable to retrieve track " +"names." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Anim Clips" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Audio Clips" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Functions" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Node Renamed" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "Edit Filtered Tracks:" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Enable Filtering" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Toggle Autoplay" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New Animation Name:" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New Anim" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Change Animation Name:" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Delete Animation?" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Remove Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Invalid animation name!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation name already exists!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Duplicate Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Blend Next Changed" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Change Blend Time" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Load Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "No animation to copy!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "No animation resource on clipboard!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Pasted Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Paste Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "No animation to edit!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation backwards from current pos. (A)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation backwards from end. (Shift+A)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Stop animation playback. (S)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation from start. (Shift+D)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation from current pos. (D)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation position (in seconds)." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Scale animation playback globally for the node." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation Tools" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/version_control_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Edit Transitions..." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Open in Inspector" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Display list of animations in player." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Autoplay on Load" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Enable Onion Skinning" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Onion Skinning Options" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Directions" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Past" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Future" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Depth" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "1 step" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "2 steps" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "3 steps" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Differences Only" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Force White Modulate" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Include Gizmos (3D)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Pin AnimationPlayer" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation Name:" +msgstr "" + +#: 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 "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Blend Times:" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Next (Auto Queue):" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Cross-Animation Blend Times" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Move Node" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Transition exists!" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Add Transition" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Node" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "End" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Immediate" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Sync" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "At End" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Travel" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Start and end nodes are needed for a sub-transition." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "No playback resource set at path: %s." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Node Removed" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Transition Removed" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Set Start Node (Autoplay)" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "" +"Select and move nodes.\n" +"RMB to add new nodes.\n" +"Shift+LMB to create connections." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Create new nodes." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Connect nodes." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Remove selected node or transition." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Toggle autoplay this animation on start, restart or seek to zero." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Set the end animation. This is useful for sub-transitions." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Transition: " +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Play Mode:" +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "AnimationTree" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "New name:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Scale:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Fade In (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Fade Out (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Mix" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Auto Restart:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Restart (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Random Restart (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Start!" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Amount:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend 0:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend 1:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "X-Fade Time (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Current:" +msgstr "" + +#: 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 "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Clear Auto-Advance" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Set Auto-Advance" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Delete Input" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Animation tree is valid." +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Animation tree is invalid." +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Animation Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "OneShot Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Mix Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend2 Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend3 Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend4 Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "TimeScale Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "TimeSeek Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Transition Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Import Animations..." +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Edit Node Filters" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Filters..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Contents:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "View Files" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connection error, please try again." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect to host:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response from host:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve hostname:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed, return code:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Cannot save response to:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Write error." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed, too many redirects" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect loop." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed, timeout" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Timeout." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Bad download hash, assuming file has been tampered with." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Expected:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Got:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed SHA-256 hash check" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Asset Download Error:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Downloading (%s / %s)..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Downloading..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Resolving..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Error making request" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Idle" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Install..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Retry" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download Error" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download for this asset is already in progress!" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Recently Updated" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Least Recently Updated" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Name (A-Z)" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Name (Z-A)" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "License (A-Z)" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "License (Z-A)" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "First" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Previous" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Next" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Last" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "All" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Search templates, projects, and demos" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Search assets (excluding templates, projects, and demos)" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Import..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Plugins..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Sort:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Category:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Site:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Support" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Official" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Testing" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Loading..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Assets ZIP File" +msgstr "" + +#: editor/plugins/audio_stream_editor_plugin.cpp +msgid "Audio Preview Play/Pause" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "" +"Can't determine a save path for lightmap images.\n" +"Save your scene and try again." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "" +"No meshes to bake. Make sure they contain an UV2 channel and that the 'Use " +"In Baked Light' and 'Generate Lightmap' flags are on." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "Failed creating lightmap images, make sure path is writable." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "Failed determining lightmap size. Maximum lightmap size too small?" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "" +"Some mesh is invalid. Make sure the UV2 channel values are contained within " +"the [0.0,1.0] square region." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "" +"Godot editor was built without ray tracing support, lightmaps can't be baked." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "Bake Lightmaps" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "Select lightmap bake file:" +msgstr "" + +#: editor/plugins/camera_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Preview" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Configure Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Grid Offset:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Grid Step:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Primary Line Every:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "steps" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation Offset:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation Step:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale Step:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move Vertical Guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Vertical Guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove Vertical Guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move Horizontal Guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Horizontal Guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove Horizontal Guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Horizontal and Vertical Guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Set CanvasItem \"%s\" Pivot Offset to (%d, %d)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotate %d CanvasItems" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotate CanvasItem \"%s\" to %d degrees" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move CanvasItem \"%s\" Anchor" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale Node2D \"%s\" to (%s, %s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Resize Control \"%s\" to (%d, %d)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale %d CanvasItems" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale CanvasItem \"%s\" to (%s, %s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move %d CanvasItems" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move CanvasItem \"%s\" to (%d, %d)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Locked" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Grouped" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Top Left" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Top Right" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Bottom Right" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Bottom Left" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center Left" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center Top" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center Right" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center Bottom" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Left Wide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Top Wide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Right Wide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Bottom Wide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "VCenter Wide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "HCenter Wide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Full Rect" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Keep Ratio" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Anchors only" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Anchors and Margins" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Anchors" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Project Camera Override\n" +"Overrides the running project's camera with the editor viewport camera." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Project Camera Override\n" +"No project instance running. Run the project from the editor to use this " +"feature." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Paste Pose" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/sprite_frames_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 "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Select Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Drag: Rotate selected node around pivot." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Alt+Drag: Move selected node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Alt+Drag: Scale selected node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "V: Set selected node's pivot position." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Alt+RMB: Show list of all nodes at position clicked, including locked." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "RMB: Add node at position clicked." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Move Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Shift: Scale proportionally." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Show a list of all objects at the position clicked\n" +"(same as Alt+RMB in select mode)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Click to change object's rotation pivot." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Ruler Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Toggle smart snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Smart Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Toggle grid snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Grid Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Rotation Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Scale Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap Relative" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Pixel Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Smart Snapping" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Configure Snap..." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Parent" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Node Anchor" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Node Sides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Node Center" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Other Nodes" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Guides" +msgstr "" + +#: 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 "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock the selected object (can be moved)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Makes sure the object's children are not selectable." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected Node(s)" +msgstr "" + +#: 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 "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Skeleton Options" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Custom Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Always Show Grid" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Helpers" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Rulers" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Origin" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Viewport" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Group And Lock Icons" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center Selection" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Frame Selection" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Preview Canvas Scale" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Translation mask for inserting keys." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation mask for inserting keys." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale mask for inserting keys." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert keys (based on mask)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Auto insert keys when objects are translated, rotated or scaled (based on " +"mask).\n" +"Keys are only added to existing tracks, no new tracks will be created.\n" +"Keys must be inserted manually for the first time." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Auto Insert Key" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Animation Key and Pose Options" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert Key (Existing Tracks)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Copy Pose" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Pose" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add Node Here" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Instance Scene Here" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Multiply grid step by 2" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Divide grid step by 2" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 3.125%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 6.25%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 12.5%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 25%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 50%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 100%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 200%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 400%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 800%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Zoom to 1600%" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Add %s" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Cannot instantiate multiple nodes without root." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: 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 "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Default Type" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "" + +#: editor/plugins/collision_shape_2d_editor_plugin.cpp +msgid "Set Handle" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Load Emission Mask" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/cpu_particles_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Restart" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Clear Emission Mask" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Particles" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generated Point Count:" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Emission Mask" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Solid Pixels" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Border Pixels" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Directed Border Pixels" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Capture from Pixel" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Emission Colors" +msgstr "" + +#: editor/plugins/cpu_particles_editor_plugin.cpp +msgid "CPUParticles" +msgstr "" + +#: editor/plugins/cpu_particles_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emission Points From Mesh" +msgstr "" + +#: editor/plugins/cpu_particles_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emission Points From Node" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Flat 0" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Flat 1" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Smoothstep" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Modify Curve Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Modify Curve Tangent" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Load Curve Preset" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Add Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Remove Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Left Linear" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right Linear" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Load Preset" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Remove Curve Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Toggle Curve Linear Tangent" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Hold Shift to edit tangents individually" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right click to add point" +msgstr "" + +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + +#: editor/plugins/gradient_editor_plugin.cpp +msgid "Gradient Edited" +msgstr "" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Item %d" +msgstr "" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Items" +msgstr "" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Item List Editor" +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create Occluder Polygon" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh is empty!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Couldn't create a Trimesh collision shape." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Static Trimesh Body" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "This doesn't work on scene root!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Static Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Can't create a single convex collision shape for the scene root." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Couldn't create a single convex collision shape." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Simplified Convex Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Single Convex Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Can't create multiple convex collision shapes for the scene root." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Couldn't create any collision shapes." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Multiple Convex Shapes" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Navigation Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Contained Mesh is not of type ArrayMesh." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "UV Unwrap failed, mesh may not be manifold?" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "No mesh to debug." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh has no UV in layer %d." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "MeshInstance lacks a Mesh!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh has not surface to create outlines from!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Could not create outline!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Static Body" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "" +"Creates a StaticBody and assigns a polygon-based collision shape to it " +"automatically.\n" +"This is the most accurate (but slowest) option for collision detection." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Collision Sibling" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "" +"Creates a polygon-based collision shape.\n" +"This is the most accurate (but slowest) option for collision detection." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Single Convex Collision Sibling" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "" +"Creates a single convex collision shape.\n" +"This is the fastest (but least accurate) option for collision detection." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Simplified Convex Collision Sibling" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "" +"Creates a simplified convex collision shape.\n" +"This is similar to single collision shape, but can result in a simpler " +"geometry in some cases, at the cost of accuracy." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Multiple Convex Collision Siblings" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "" +"Creates a polygon-based collision shape.\n" +"This is a performance middle-ground between a single convex collision and a " +"polygon-based collision." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline Mesh..." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "" +"Creates a static outline mesh. The outline mesh will have its normals " +"flipped automatically.\n" +"This can be used instead of the SpatialMaterial Grow property when using " +"that property isn't possible." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "View UV1" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "View UV2" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Unwrap UV2 for Lightmap/AO" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Outline Size:" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "UV Channel Debug" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Remove item %d?" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "" +"Update from existing scene?:\n" +"%s" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Mesh Library" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Add Item" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Remove Selected Item" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Import from Scene (Ignore Transforms)" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Import from Scene (Apply Transforms)" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Update from Scene" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No mesh source specified (and no MultiMesh set in node)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No mesh source specified (and MultiMesh contains no Mesh)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (invalid path)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (not a MeshInstance)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (contains no Mesh resource)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No surface source specified." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (invalid path)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (no geometry)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (no faces)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Select a Source Mesh:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Select a Target Surface:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate Surface" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate MultiMesh" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Target Surface:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Source Mesh:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "X-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Y-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Z-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh Up Axis:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Rotation:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Tilt:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Scale:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate" +msgstr "" + +#: editor/plugins/navigation_polygon_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Navigation Polygon" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generating Visibility Rect" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generate Visibility Rect" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Can only set point into a ParticlesMaterial process material" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Convert to CPUParticles2D" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generation Time (sec):" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "The geometry's faces don't contain any area." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "The geometry doesn't contain any faces." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "\"%s\" doesn't inherit from Spatial." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "\"%s\" doesn't contain geometry." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "\"%s\" doesn't contain face geometry." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emitter" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Emission Points:" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Surface Points" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Surface Points+Normal (Directed)" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Volume" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Emission Source: " +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "A processor material of type 'ParticlesMaterial' is required." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generating AABB" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generate Visibility AABB" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove Point from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove Out-Control from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove In-Control from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Add Point to Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move Point in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move In-Control in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move Out-Control in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Select Control Points (Shift+Drag)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Close Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +#: editor/plugins/theme_editor_preview.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp +msgid "Options" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Mirror Handle Angles" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Mirror Handle Lengths" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Curve Point #" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve Point Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve In Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve Out Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Path" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove Path Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove Out-Control Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove In-Control Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + +#: editor/plugins/physical_bone_plugin.cpp +msgid "Move Joint" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"The skeleton property of the Polygon2D does not point to a Skeleton2D node" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create UV Map" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"Polygon 2D has internal vertices, so it can no longer be edited in the " +"viewport." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon & UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Internal Vertex" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Remove Internal Vertex" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Invalid Polygon (need 3 different vertices)" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Add Custom Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Remove Custom Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Transform UV Map" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Polygon 2D UV Editor" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Points" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Polygons" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Move Points" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Command: Rotate" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Shift: Move All" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Shift+Command: Scale" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Ctrl: Rotate" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Shift+Ctrl: Scale" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Move Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Rotate Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Scale Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create a custom polygon. Enables custom polygon rendering." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"Remove a custom polygon. If none remain, custom polygon rendering is " +"disabled." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint weights with specified intensity." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Unpaint weights with specified intensity." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Radius:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Copy Polygon to UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Copy UV to Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Clear UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Settings" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Snap" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Enable Snap" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Configure Grid:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Offset X:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Offset Y:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Step X:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Step Y:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Sync Bones to Polygon" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "ERROR: Couldn't load resource!" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Add Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Rename Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Delete Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Resource clipboard is empty!" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Paste Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/scene_tree_editor.cpp +msgid "Instance:" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp +#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Type:" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp +msgid "Open in Editor" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Load Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "ResourcePreloader" +msgstr "" + +#: editor/plugins/room_manager_editor_plugin.cpp +msgid "Flip Portals" +msgstr "" + +#: editor/plugins/room_manager_editor_plugin.cpp +msgid "Room Generate Points" +msgstr "" + +#: editor/plugins/room_manager_editor_plugin.cpp +msgid "Generate Points" +msgstr "" + +#: editor/plugins/room_manager_editor_plugin.cpp +msgid "Flip Portal" +msgstr "" + +#: editor/plugins/room_manager_editor_plugin.cpp +msgid "Occluder Set Transform" +msgstr "" + +#: editor/plugins/room_manager_editor_plugin.cpp +msgid "Center Node" +msgstr "" + +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "AnimationTree has no path set to an AnimationPlayer" +msgstr "" + +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "Path to AnimationPlayer is invalid" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Clear Recent Files" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close and save changes?" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error writing TextFile:" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Could not load file at:" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving file!" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error Saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error importing theme." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error Importing" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "New Text File..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Open File" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save File As..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Can't obtain the script for running." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Script failed reloading, check console for errors." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Script is not in tool mode, will not be able to run." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "" +"To run this script, it must inherit EditorScript and be set to tool mode." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Import Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save Theme As..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "%s Class Reference" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Filter scripts" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Toggle alphabetical sorting of the method list." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Filter methods" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: 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 Up" +msgstr "" + +#: 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 "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Next Script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Previous Script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "File" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Open..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Reopen Closed Script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save All" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Soft Reload Script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Copy Script Path" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "History Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "History Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +msgid "Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Import Theme..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Reload Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close All" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Docs" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +msgid "Run" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Search" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Step Into" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Step Over" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Break" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/script_editor_debugger.cpp +msgid "Continue" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Keep Debugger Open" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Debug with External Editor" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Online Docs" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Open Godot online documentation." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Search the reference documentation." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Go to previous edited document." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Go to next edited document." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Discard" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?:" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Debugger" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Search Results" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Clear Recent Scripts" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "[Ignore]" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Function" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Only resources from filesystem can be dropped." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't drop nodes because script '%s' is not used in this scene." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Lookup Symbol" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Pick Color" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Convert Case" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Uppercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Lowercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Capitalize" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Syntax Highlighter" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Breakpoints" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Go To" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Cut" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/theme_editor_plugin.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Delete Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Indent Left" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Indent Right" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Toggle Comment" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold/Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Complete Symbol" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Evaluate Selection" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Trim Trailing Whitespace" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert Indent to Spaces" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert Indent to Tabs" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Auto Indent" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Find in Files..." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Replace in Files..." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Contextual Help" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Function..." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Line..." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Toggle Breakpoint" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Breakpoints" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Breakpoint" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Breakpoint" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp +msgid "Shader" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "This skeleton has no bones, create some children Bone2D nodes." +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Set Rest Pose to Bones" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Create Rest Pose from Bones" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Skeleton2D" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Reset to Rest Pose" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Overwrite Rest Pose" +msgstr "" + +#: editor/plugins/skeleton_editor_plugin.cpp +msgid "Create physical bones" +msgstr "" + +#: editor/plugins/skeleton_editor_plugin.cpp +msgid "Skeleton" +msgstr "" + +#: editor/plugins/skeleton_editor_plugin.cpp +msgid "Create physical skeleton" +msgstr "" + +#: editor/plugins/skeleton_ik_editor_plugin.cpp +msgid "Play IK" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear Perspective" +msgstr "" + +#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled. +#: editor/plugins/spatial_editor_plugin.cpp +msgid " [auto]" +msgstr "" + +#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled. +#: editor/plugins/spatial_editor_plugin.cpp +msgid " [portals active]" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Aborted." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "X-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Y-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Z-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Plane Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp scene/resources/visual_shader.cpp +msgid "None" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate" +msgstr "" + +#. TRANSLATORS: This refers to the movement that changes the position of an object. +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translate" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotating %s degrees." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Keying is disabled (no key inserted)." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Animation Key Inserted." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Pitch:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Yaw:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Size:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Objects Drawn:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Material Changes:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Shader Changes:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Surface Changes:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Draw Calls:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Vertices:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "FPS: %d (%s ms)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Align Transform with View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Align Rotation with View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Auto Orthogonal Enabled" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock View Rotation" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Normal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Wireframe" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Overdraw" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Unshaded" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Environment" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Gizmos" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Information" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Audio Listener" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Enable Doppler" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Cinematic Preview" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Left" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Right" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Forward" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Backwards" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Up" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Down" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Speed Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Slow Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Camera Preview" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Rotation Locked" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"To zoom further, change the camera's clipping planes (View -> Settings...)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Note: The FPS value displayed is the editor's framerate.\n" +"It cannot be used as a reliable indication of in-game performance." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Convert Rooms" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "XForm Dialog" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Click to toggle between visibility states.\n" +"\n" +"Open eye: Gizmo is visible.\n" +"Closed eye: Gizmo is hidden.\n" +"Half-open eye: Gizmo is also visible through opaque surfaces (\"x-ray\")." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Nodes to Floor" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Couldn't find a solid floor to snap the selection to." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Local Space" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Converts rooms for portal culling." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orbit View Down" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orbit View Left" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orbit View Right" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orbit View Up" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orbit View 180" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Switch Perspective/Orthogonal View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Insert Animation Key" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Focus Origin" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Focus Selection" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Decrease Field of View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Increase Field of View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Reset Field of View to Default" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Object to Floor" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Dialog..." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "1 Viewport" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "2 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "2 Viewports (Alt)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "3 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "3 Viewports (Alt)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "4 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Gizmos" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Origin" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Grid" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Portal Culling" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Occlusion Culling" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Settings..." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translate Snap:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate Snap (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale Snap (%):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Viewport Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Perspective FOV (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Z-Near:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Z-Far:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Change" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translate:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale (ratio):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Type" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Pre" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Post" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unnamed Gizmo" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create Mesh2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Mesh2D Preview" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create Polygon2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Polygon2D Preview" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create CollisionPolygon2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "CollisionPolygon2D Preview" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create LightOccluder2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "LightOccluder2D Preview" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite is empty!" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Can't convert a sprite using animation frames to mesh." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't replace by mesh." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Convert to Mesh2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Convert to Polygon2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create CollisionPolygon2D Sibling" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create LightOccluder2D Sibling" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Simplification: " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Shrink (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Grow (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Update Preview" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Settings:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frame" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Unable to load images" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Resource clipboard is empty or not a texture!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Paste Frame" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Empty" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Change Animation FPS" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "(empty)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Move Frame" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Speed:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Loop" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Animation Frames:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Insert Empty (Before)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Insert Empty (After)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Move (Before)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Move (After)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "SpriteFrames" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Region Rect" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Snap Mode:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Pixel Snap" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Grid Snap" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Auto Slice" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Offset:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Step:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Separation:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "TextureRegion" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Styleboxes" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "{num} color(s)" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "No colors found." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "{num} constant(s)" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "No constants found." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "{num} font(s)" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "No fonts found." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "{num} icon(s)" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "No icons found." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "{num} stylebox(es)" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "No styleboxes found." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "{num} currently selected" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Nothing was selected for the import." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Importing Theme Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Importing items {n}/{n}" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Updating the editor" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Finalizing" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Filter:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "With Data" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select by data type:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible color items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible color items and their data." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Deselect all visible color items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible constant items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible constant items and their data." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Deselect all visible constant items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible font items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible font items and their data." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Deselect all visible font items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible icon items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible icon items and their data." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Deselect all visible icon items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible stylebox items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all visible stylebox items and their data." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Deselect all visible stylebox items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"Caution: Adding icon data may considerably increase the size of your Theme " +"resource." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Collapse types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Expand types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all Theme items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select With Data" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select all Theme items with item data." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Deselect All" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Deselect all Theme items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Import Selected" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"Import Items tab has some items selected. Selection will be lost upon " +"closing this window.\n" +"Close anyway?" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"Select a theme type from the list to edit its items.\n" +"You can add a custom type or import a type with its items from another theme." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All Color Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Rename Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All Constant Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All Font Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All Icon Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All StyleBox Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"This theme type is empty.\n" +"Add more items to it manually or by importing from another theme." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Color Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Constant Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Font Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Icon Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Stylebox Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Rename Color Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Rename Constant Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Rename Font Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Rename Icon Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Rename Stylebox Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Invalid file, not a Theme resource." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Invalid file, same as the edited Theme resource." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Manage Theme Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Edit Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Types:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Type:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add StyleBox Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove Items:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove Class Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove Custom Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Theme Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Old Name:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Import Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Default Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select Another Theme Resource:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Another Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Filter the list of types or create a new custom type:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Available Node-based types:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Type name is empty!" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Are you sure you want to create an empty type?" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Confirm Item Rename" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Cancel Item Rename" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Override Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Unpin this StyleBox as a main style." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"Pin this StyleBox as a main style. Editing its properties will update the " +"same properties in all other StyleBoxes of this type." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Show Default" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Show default type items alongside items that have been overridden." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Override All" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Override all default type items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Theme:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Manage Items..." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add, remove, organize and import Theme items." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Preview" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Default Preview" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select UI Scene:" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "" +"Toggle the control picker, allowing to visually select control types for " +"edit." +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Toggle Button" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Disabled Button" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Item" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Check Item" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Checked Item" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Radio Item" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Checked Radio Item" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Named Separator" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Subitem 1" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Subitem 2" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Has" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Many" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Disabled LineEdit" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Tab 1" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Tab 2" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Tab 3" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Invalid path, the PackedScene resource was probably moved or removed." +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Invalid PackedScene resource, must have a Control node at its root." +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Invalid file, not a PackedScene resource." +msgstr "" + +#: editor/plugins/theme_editor_preview.cpp +msgid "Reload the scene to reflect its most actual state." +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Erase Selection" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Fix Invalid Tiles" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cut Selection" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Paint TileMap" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Line Draw" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Bucket Fill" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Erase TileMap" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Find Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Transpose" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Filter tiles" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Give a TileSet resource to this TileMap to use its tiles." +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Paint Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "" +"Shift+LMB: Line Draw\n" +"Shift+Command+LMB: Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "" +"Shift+LMB: Line Draw\n" +"Shift+Ctrl+LMB: Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Pick Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate Left" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate Right" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Flip Horizontally" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Flip Vertically" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Clear Transform" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Add Texture(s) to TileSet." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove selected Texture from TileSet." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create from Scene" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Merge from Scene" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "New Single Tile" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "New Autotile" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "New Atlas" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Next Coordinate" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Select the next shape, subtile, or Tile." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Previous Coordinate" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Select the previous shape, subtile, or Tile." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new rectangle." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "New Rectangle" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "New Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete Selected Shape" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Add or select a texture on the left panel to edit the tiles bound to it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove selected texture? This will remove all tiles which use it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "You haven't selected a texture to remove." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create from scene? This will overwrite all current tiles." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Merge from scene?" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Texture" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "%s file(s) were not added because was already on the list." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Drag handles to edit Rect.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete selected Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select current edited sub-tile.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +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 "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to use as icon, this will be also used on invalid autotile " +"bindings.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its priority.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Set Tile Region" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Tile" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Set Tile Icon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Tile Bitmask" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Collision Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Occlusion Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Navigation Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste Tile Bitmask" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Clear Tile Bitmask" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Make Polygon Concave" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Make Polygon Convex" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Tile" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Collision Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Occlusion Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Navigation Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Tile Priority" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Tile Z Index" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Make Convex" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Make Concave" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Collision Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Occlusion Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "This property can't be changed." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "TileSet" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "No VCS plugins are available." +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Error" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "" +"Remote settings are empty. VCS features that use the network may not work." +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "No commit message was provided." +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Commit" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Staged Changes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Unstaged Changes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Commit:" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Date:" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Subtitle:" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Do you want to remove the %s branch?" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Do you want to remove the %s remote?" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Apply" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Version Control System" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Initialize" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Remote Login" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Username" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Password" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "SSH Public Key Path" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Select SSH public key path" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "SSH Private Key Path" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Select SSH private key path" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "SSH Passphrase" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Detect new changes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Discard all changes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Stage all changes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Unstage all changes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Commit Message" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Commit Changes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Commit List" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Commit list size" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Branches" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Create New Branch" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Remove Branch" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Branch Name" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Remotes" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Create New Remote" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Remove Remote" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Remote Name" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Remote URL" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Fetch" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Pull" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Push" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Force Push" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Modified" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Renamed" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Deleted" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Typechange" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Unmerged" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "View:" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Split" +msgstr "" + +#: editor/plugins/version_control_editor_plugin.cpp +msgid "Unified" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only)" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Output" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sampler" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set Uniform Name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set Input Default Port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node to Visual Shader" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Node(s) Moved" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Duplicate Nodes" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Paste Nodes" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Delete Nodes" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Visual Shader Input Type Changed" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "UniformRef Name Changed" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vertex" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Fragment" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Light" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Show resulted shader code." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the boolean result of the %s comparison between two parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Equal (==)" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Greater Than (>)" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Greater Than or Equal (>=)" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the boolean result of the comparison between INF and a scalar " +"parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the boolean result of the comparison between NaN and a scalar " +"parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Less Than (<)" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Less Than or Equal (<=)" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Not Equal (!=)" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated scalar if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the boolean result of the comparison between two parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the boolean result of the comparison between INF (or NaN) and a " +"scalar parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'%s' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'%s' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'%s' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'%s' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'%s' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'%s' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'%s' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform lookup with triplanar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors using scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller than 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"output ports. This is a direct injection of code into the vertex/fragment/" +"light function, do not use it to write the function declarations inside." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, which is placed on top of the " +"resulted shader. You can place various function definitions inside and call " +"it later in the Expressions. You can also declare varyings, uniforms and " +"constants." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "A reference to an existing uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(Fragment/Light mode only) (Vector) Derivative in 'x' using local " +"differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(Fragment/Light mode only) (Scalar) Derivative in 'x' using local " +"differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(Fragment/Light mode only) (Vector) Derivative in 'y' using local " +"differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(Fragment/Light mode only) (Scalar) Derivative in 'y' using local " +"differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and " +"'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(Fragment/Light mode only) (Scalar) Sum of absolute derivative in 'x' and " +"'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "VisualShader" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Edit Visual Property:" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Visual Shader Mode Changed" +msgstr "" + +#: editor/project_export.cpp +msgid "Runnable" +msgstr "" + +#: editor/project_export.cpp +msgid "Delete preset '%s'?" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Failed to export the project for platform '%s'.\n" +"Export templates seem to be missing or invalid." +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Failed to export the project for platform '%s'.\n" +"This might be due to a configuration issue in the export preset or your " +"export settings." +msgstr "" + +#: editor/project_export.cpp +msgid "Release" +msgstr "" + +#: editor/project_export.cpp +msgid "Exporting All" +msgstr "" + +#: editor/project_export.cpp +msgid "The given export path doesn't exist:" +msgstr "" + +#: editor/project_export.cpp +msgid "Export templates for this platform are missing/corrupted:" +msgstr "" + +#: editor/project_export.cpp +msgid "Presets" +msgstr "" + +#: editor/project_export.cpp editor/project_settings_editor.cpp +msgid "Add..." +msgstr "" + +#: editor/project_export.cpp +msgid "" +"If checked, the preset will be available for use in one-click deploy.\n" +"Only one preset per platform may be marked as runnable." +msgstr "" + +#: editor/project_export.cpp +msgid "Export Path" +msgstr "" + +#: editor/project_export.cpp +msgid "Resources" +msgstr "" + +#: editor/project_export.cpp +msgid "Export all resources in the project" +msgstr "" + +#: editor/project_export.cpp +msgid "Export selected scenes (and dependencies)" +msgstr "" + +#: editor/project_export.cpp +msgid "Export selected resources (and dependencies)" +msgstr "" + +#: editor/project_export.cpp +msgid "Export Mode:" +msgstr "" + +#: editor/project_export.cpp +msgid "Resources to export:" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Filters to export non-resource files/folders\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Filters to exclude files/folders from project\n" +"(comma-separated, e.g: *.json, *.txt, docs/*)" +msgstr "" + +#: editor/project_export.cpp +msgid "Features" +msgstr "" + +#: editor/project_export.cpp +msgid "Custom (comma-separated):" +msgstr "" + +#: editor/project_export.cpp +msgid "Feature List:" +msgstr "" + +#: editor/project_export.cpp +msgid "Script" +msgstr "" + +#: editor/project_export.cpp +msgid "GDScript Export Mode:" +msgstr "" + +#: editor/project_export.cpp +msgid "Text" +msgstr "" + +#: editor/project_export.cpp +msgid "Compiled Bytecode (Faster Loading)" +msgstr "" + +#: editor/project_export.cpp +msgid "Encrypted (Provide Key Below)" +msgstr "" + +#: editor/project_export.cpp +msgid "Invalid Encryption Key (must be 64 hexadecimal characters long)" +msgstr "" + +#: editor/project_export.cpp +msgid "GDScript Encryption Key (256-bits as hexadecimal):" +msgstr "" + +#: editor/project_export.cpp +msgid "Export PCK/Zip" +msgstr "" + +#: editor/project_export.cpp +msgid "Export Project" +msgstr "" + +#: editor/project_export.cpp +msgid "Export mode?" +msgstr "" + +#: editor/project_export.cpp +msgid "Export All" +msgstr "" + +#: editor/project_export.cpp editor/project_manager.cpp +msgid "ZIP File" +msgstr "" + +#: editor/project_export.cpp +msgid "Godot Game Pack" +msgstr "" + +#: editor/project_export.cpp +msgid "Export templates for this platform are missing:" +msgstr "" + +#: editor/project_export.cpp +msgid "Manage Export Templates" +msgstr "" + +#: editor/project_export.cpp +msgid "Export With Debug" +msgstr "" + +#: editor/project_manager.cpp +msgid "The path specified doesn't exist." +msgstr "" + +#: editor/project_manager.cpp +msgid "Error opening package file (it's not in ZIP format)." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." +msgstr "" + +#: editor/project_manager.cpp +msgid "Please choose an empty folder." +msgstr "" + +#: editor/project_manager.cpp +msgid "Please choose a \"project.godot\" or \".zip\" file." +msgstr "" + +#: editor/project_manager.cpp +msgid "This directory already contains a Godot project." +msgstr "" + +#: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Imported Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Invalid project name." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't create folder." +msgstr "" + +#: editor/project_manager.cpp +msgid "There is already a folder in this path with the specified name." +msgstr "" + +#: editor/project_manager.cpp +msgid "It would be a good idea to name your project." +msgstr "" + +#: editor/project_manager.cpp +msgid "Invalid project path (changed anything?)." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Couldn't load project.godot in project path (error %d). It may be missing or " +"corrupted." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't edit project.godot in project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't create project.godot in project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "Error opening package file, not in ZIP format." +msgstr "" + +#: editor/project_manager.cpp +msgid "The following files failed extraction from package:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Package installed successfully!" +msgstr "" + +#: editor/project_manager.cpp +msgid "Rename Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Import Existing Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Import & Edit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Create New Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Create & Edit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Install Project:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Install & Edit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Name:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Path:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Installation Path:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Renderer:" +msgstr "" + +#: editor/project_manager.cpp +msgid "OpenGL ES 3.0" +msgstr "" + +#: editor/project_manager.cpp +msgid "Not supported by your GPU drivers." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Higher visual quality\n" +"All features available\n" +"Incompatible with older hardware\n" +"Not recommended for web games" +msgstr "" + +#: editor/project_manager.cpp +msgid "OpenGL ES 2.0" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Lower visual quality\n" +"Some features not available\n" +"Works on most hardware\n" +"Recommended for web games" +msgstr "" + +#: editor/project_manager.cpp +msgid "Renderer can be changed later, but scenes may need to be adjusted." +msgstr "" + +#: editor/project_manager.cpp +msgid "Unnamed Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Missing Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Error: Project is missing on the filesystem." +msgstr "" + +#: editor/project_manager.cpp +msgid "Can't open project at '%s'." +msgstr "" + +#: editor/project_manager.cpp +msgid "Are you sure to open more than one project?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"The following project settings file was generated by an older engine " +"version, and needs to be converted for this version:\n" +"\n" +"%s\n" +"\n" +"Do you want to convert it?\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"The project settings were created by a newer engine version, whose settings " +"are not compatible with this version." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Can't run project: no main scene defined.\n" +"Please edit the project and set the main scene in the Project Settings under " +"the \"Application\" category." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Can't run project: Assets need to be imported.\n" +"Please edit the project to trigger the initial import." +msgstr "" + +#: editor/project_manager.cpp +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "Remove %d projects from the list?" +msgstr "" + +#: editor/project_manager.cpp +msgid "Remove this project from the list?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Language changed.\n" +"The interface will update after restarting the editor or project manager." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." +msgstr "" + +#. TRANSLATORS: This refers to the application where users manage their Godot projects. +#: editor/project_manager.cpp +msgid "Project Manager" +msgstr "" + +#: editor/project_manager.cpp +msgid "Local Projects" +msgstr "" + +#: editor/project_manager.cpp +msgid "Loading, please wait..." +msgstr "" + +#: editor/project_manager.cpp +msgid "Last Modified" +msgstr "" + +#: editor/project_manager.cpp +msgid "Edit Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Run Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Scan" +msgstr "" + +#: editor/project_manager.cpp +msgid "Scan Projects" +msgstr "" + +#: editor/project_manager.cpp +msgid "Select a Folder to Scan" +msgstr "" + +#: editor/project_manager.cpp +msgid "New Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Import Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Remove Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp +msgid "About" +msgstr "" + +#: editor/project_manager.cpp +msgid "Asset Library Projects" +msgstr "" + +#: editor/project_manager.cpp +msgid "Restart Now" +msgstr "" + +#: editor/project_manager.cpp +msgid "Remove All" +msgstr "" + +#: editor/project_manager.cpp +msgid "Also delete project contents (no undo!)" +msgstr "" + +#: editor/project_manager.cpp +msgid "Can't run project" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" +msgstr "" + +#: editor/project_manager.cpp +msgid "Filter projects" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"This field filters projects by name and last path component.\n" +"To filter projects by name and full path, the query must contain at least " +"one `/` character." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Physical Key" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Key " +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joy Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joy Axis" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Mouse Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "" +"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " +"'\"'" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "An action with the name '%s' already exists." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Rename Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Change Action deadzone" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "All Devices" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Device" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid " (Physical)" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Press a Key..." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Mouse Button Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Left Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Right Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Middle Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Up Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Down Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Left Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Right Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "X Button 1" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "X Button 2" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joypad Axis Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Axis" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joypad Button Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Erase Input Action" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Erase Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Left Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Right Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Middle Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Up." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Down." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Global Property" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Select a setting item first!" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "No property '%s' exists." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Delete Item" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "" +"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " +"'\"'." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Input Action" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Error saving settings." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Settings saved OK." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Moved Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Override for Feature" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add %d Translations" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Translation" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translation Resource Remap: Add %d Path(s)" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translation Resource Remap: Add %d Remap(s)" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Change Resource Remap Language" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Resource Remap" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Resource Remap Option" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Changed Locale Filter" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Changed Locale Filter Mode" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Project Settings (project.godot)" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "General" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Override For..." +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "The editor must be restarted for changes to take effect." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Input Map" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Action:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Action" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Deadzone" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Device:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Localization" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translations" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translations:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remaps" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Resources:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remaps by Locale:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locale" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locales Filter" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Show All Locales" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Show Selected Locales Only" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Filter mode:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locales:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "AutoLoad" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Plugins" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Import Defaults" +msgstr "" + +#: editor/property_editor.cpp +msgid "Preset..." +msgstr "" + +#: editor/property_editor.cpp +msgid "Zero" +msgstr "" + +#: editor/property_editor.cpp +msgid "Easing In-Out" +msgstr "" + +#: editor/property_editor.cpp +msgid "Easing Out-In" +msgstr "" + +#: editor/property_editor.cpp +msgid "File..." +msgstr "" + +#: editor/property_editor.cpp +msgid "Dir..." +msgstr "" + +#: editor/property_editor.cpp +msgid "Assign" +msgstr "" + +#: editor/property_editor.cpp +msgid "Select Node" +msgstr "" + +#: editor/property_editor.cpp +msgid "Error loading file: Not a resource!" +msgstr "" + +#: editor/property_editor.cpp +msgid "Pick a Node" +msgstr "" + +#: editor/property_editor.cpp +msgid "Bit %d, val %d." +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Property" +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Virtual Method" +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Method" +msgstr "" + +#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp +msgid "Batch Rename" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Prefix:" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Suffix:" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Use Regular Expressions" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Advanced Options" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Substitute" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Node name" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Node's parent name, if available" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Node type" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Current scene name" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Root node name" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "" +"Sequential integer counter.\n" +"Compare counter options." +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Per-level Counter" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "If set, the counter restarts for each group of child nodes." +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Initial value for the counter" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Step" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Amount by which counter is incremented for each node" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Padding" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "" +"Minimum number of digits for the counter.\n" +"Missing digits are padded with leading zeros." +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Post-Process" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Style" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Keep" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "PascalCase to snake_case" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "snake_case to PascalCase" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Case" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "To Lowercase" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "To Uppercase" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Reset" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Regular Expression Error:" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "At character %s" +msgstr "" + +#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp +msgid "Reparent Node" +msgstr "" + +#: editor/reparent_dialog.cpp +msgid "Reparent Location (Select new Parent):" +msgstr "" + +#: editor/reparent_dialog.cpp +msgid "Keep Global Transform" +msgstr "" + +#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp +msgid "Reparent" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Run Mode:" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Current Scene" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Main Scene" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Main Scene Arguments:" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Scene Run Settings" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "No parent to instance the scenes at." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error loading scene from %s" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Cannot instance the scene '%s' because the current scene exists within one " +"of its nodes." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instance Scene(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Replace with Branch Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instance Child Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't paste root node into the same scene." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Paste Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Detach Script" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "This operation can't be done on the tree root." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Move Node In Parent" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Move Nodes In Parent" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Duplicate Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Node must belong to the edited scene to become root." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instantiated scenes can't become root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Make node as Root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete %d nodes and any children?" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete %d nodes?" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete the root node \"%s\"?" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete node \"%s\" and its children?" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete node \"%s\"?" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Saving the branch as a scene requires having a scene open in the editor." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Saving the branch as a scene requires selecting only one node, but you have " +"selected %d nodes." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Can't save the root node branch as an instanced scene.\n" +"To create an editable copy of the current scene, duplicate it using the " +"FileSystem dock context menu\n" +"or create an inherited scene using Scene > New Inherited Scene... instead." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Can't save the branch of an already instanced scene.\n" +"To create a variation of a scene, you can make an inherited scene based on " +"the instanced scene using Scene > New Inherited Scene... instead." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Can't save a branch which is a child of an already instantiated scene.\n" +"To save this branch into its own scene, open the original scene, right click " +"on this branch, and select \"Save Branch as Scene\"." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Can't save a branch which is part of an inherited scene.\n" +"To save this branch into its own scene, open the original scene, right click " +"on this branch, and select \"Save Branch as Scene\"." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Save New Scene As..." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Disabling \"editable_instance\" will cause all properties of the node to be " +"reverted to their default." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and " +"cause all properties of the node to be reverted to their default." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Make Local" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "New Scene Root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Create Root Node:" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "2D Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "3D Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "User Interface" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Other Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't operate on nodes from a foreign scene!" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't operate on nodes the current scene inherits from!" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "This operation can't be done on instanced scenes." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Attach Script" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Cut Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Remove Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Change type of node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Couldn't save new scene. Likely dependencies (instances) couldn't be " +"satisfied." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error saving scene." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error duplicating scene to save it." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Sub-Resources" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Inheritance" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Editable Children" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Load As Placeholder" +msgstr "" + +#: editor/scene_tree_dock.cpp +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 "" + +#: editor/scene_tree_dock.cpp +msgid "Add Child Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Expand/Collapse All" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Change Type" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Reparent to New Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Make Scene Root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Merge From Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp +msgid "Save Branch as Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp +msgid "Copy Node Path" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete (No Confirm)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Add/Create a New Node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Instance a scene file as a Node. Creates an inherited scene if no root node " +"exists." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Attach a new or existing script to the selected node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Detach the script from the selected node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Remote" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"If selected, the Remote scene tree dock will cause the project to stutter " +"every time it updates.\n" +"Switch back to the Local scene tree dock to improve performance." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Inheritance? (No Undo!)" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Toggle Visible" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Node configuration warning:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node has %s connection(s) and %s group(s).\n" +"Click to show signals dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node has %s connection(s).\n" +"Click to show signals dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node is in %s group(s).\n" +"Click to show groups dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Open Script:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node is locked.\n" +"Click to unlock it." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Children are not selectable.\n" +"Click to make selectable." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Toggle Visibility" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"AnimationPlayer is pinned.\n" +"Click to unpin." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Invalid node name, the following characters are not allowed:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Rename Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Scene Tree (Nodes):" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Node Configuration Warning!" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Select a Node" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Path is empty." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Filename is empty." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Path is not local." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid base path." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "A directory with the same name exists." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "File does not exist." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid extension." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Wrong extension chosen." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error loading template '%s'" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error - Could not create script in filesystem." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Overrides" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "N/A" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Open Script / Choose Location" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Open Script" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "File exists, it will be reused." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid path." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid class name." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Script path/name is valid." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Allowed: a-z, A-Z, 0-9, _ and ." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Built-in script (into scene file)." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Will create a new script file." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Will load an existing script file." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Script file already exists." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "" +"Note: Built-in scripts have some limitations and can't be edited using an " +"external editor." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "" +"Warning: Having the script name be the same as a built-in type is usually " +"not desired." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Class Name:" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Template:" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Built-in Script:" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Attach Node Script" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Remote " +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Bytes:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Warning:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Error:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "C++ Error" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "C++ Error:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "C++ Source" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Source:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "C++ Source:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Stack Trace" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Errors" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Child process connected." +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Copy Error" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Open C++ Source on GitHub" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Video RAM" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Skip Breakpoints" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Inspect Previous Instance" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Inspect Next Instance" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Stack Frames" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Profiler" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Network Profiler" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Monitor" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Value" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Monitors" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Pick one or more items from the list to display the graph." +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "List of Video Memory Usage by Resource:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Total:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Export list to a CSV file" +msgstr "" + +#: editor/script_editor_debugger.cpp +#: modules/visual_script/visual_script_nodes.cpp +msgid "Resource Path" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Type" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Format" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Usage" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Misc" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Clicked Control:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Clicked Control Type:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Live Edit Root:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Set From Tree" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Erase Shortcut" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Restore Shortcut" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Change Shortcut" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Editor Settings" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Shortcuts" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Binding" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Light Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change AudioStreamPlayer3D Emission Angle" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Camera FOV" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Camera Size" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Notifier AABB" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Particles AABB" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp +msgid "Change Sphere Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp +msgid "Change Box Shape Extents" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Capsule Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Capsule Shape Height" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Cylinder Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Cylinder Shape Height" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Ray Shape Length" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Set Room Point Position" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Set Portal Point Position" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Set Occluder Sphere Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Set Occluder Sphere Position" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Set Occluder Polygon Point Position" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Set Occluder Hole Point Position" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Cylinder Radius" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Cylinder Height" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Torus Inner Radius" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Torus Outer Radius" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Select the dynamic library for this entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Select dependencies of the library for this entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Remove current entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Double click to create a new entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Platform:" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Platform" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Dynamic Library" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Add an architecture entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "GDNativeLibrary" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Library" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Libraries: " +msgstr "" + +#: modules/gdnative/register_types.cpp +msgid "GDNative" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Step argument is zero!" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not a script with an instance" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not based on a script" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not based on a resource file" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (missing @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (can't load script at @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (invalid script at @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary (invalid subclasses)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Object can't provide a length." +msgstr "" + +#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp +msgid "Export Mesh GLTF2" +msgstr "" + +#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp +msgid "Export GLTF..." +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Plane" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Previous Plane" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Plane:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Previous Floor" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Delete Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Fill Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Paste Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Paint" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Snap View" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Disabled" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Above" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Below" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit X Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit Y Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit Z Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate X" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate Y" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate Z" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate X" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate Y" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate Z" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Clear Rotation" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Paste Selects" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clear Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Fill Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Settings" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Pick Distance:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Filter meshes" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Give a MeshLibrary resource to this GridMap to use its meshes." +msgstr "" + +#: modules/lightmapper_cpu/lightmapper_cpu.cpp +msgid "Begin Bake" +msgstr "" + +#: modules/lightmapper_cpu/lightmapper_cpu.cpp +msgid "Preparing data structures" +msgstr "" + +#: modules/lightmapper_cpu/lightmapper_cpu.cpp +msgid "Generate buffers" +msgstr "" + +#: modules/lightmapper_cpu/lightmapper_cpu.cpp +msgid "Direct lighting" +msgstr "" + +#: modules/lightmapper_cpu/lightmapper_cpu.cpp +msgid "Indirect lighting" +msgstr "" + +#: modules/lightmapper_cpu/lightmapper_cpu.cpp +msgid "Post processing" +msgstr "" + +#: modules/lightmapper_cpu/lightmapper_cpu.cpp +msgid "Plotting lightmaps" +msgstr "" + +#: modules/mono/csharp_script.cpp +msgid "Class name can't be a reserved keyword" +msgstr "" + +#: modules/mono/csharp_script.cpp +msgid "Build Solution" +msgstr "" + +#: modules/mono/mono_gd/gd_mono_utils.cpp +msgid "End of inner exception stack trace" +msgstr "" + +#: modules/navigation/navigation_mesh_editor_plugin.cpp +#: scene/3d/navigation_mesh_instance.cpp +msgid "A NavigationMesh resource must be set or created for this node to work." +msgstr "" + +#: modules/navigation/navigation_mesh_editor_plugin.cpp +msgid "Bake NavMesh" +msgstr "" + +#: modules/navigation/navigation_mesh_editor_plugin.cpp +msgid "Clear the navigation mesh." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Setting up Configuration..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Calculating grid size..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Creating heightfield..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Marking walkable triangles..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Constructing compact heightfield..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Eroding walkable area..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Partitioning..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Creating contours..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Creating polymesh..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Converting to native navigation mesh..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Navigation Mesh Generator Setup:" +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Parsing Geometry..." +msgstr "" + +#: modules/navigation/navigation_mesh_generator.cpp +msgid "Done!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"A node yielded without working memory, please read the docs on how to yield " +"properly!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"Node yielded, but did not return a function state in the first working " +"memory." +msgstr "" + +#: 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 "" + +#: modules/visual_script/visual_script.cpp +msgid "Found sequence bit but not the node in the stack, report bug!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "Stack overflow with stack depth: " +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Signal Arguments" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Argument Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Argument name" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Set Variable Default Value" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Set Variable Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Port Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Port Name" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Override an existing built-in function." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create a new function." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Variables:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create a new variable." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Signals:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create a new signal." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Name is not a valid identifier:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Name already in use by another func/var/signal:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Delete input port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Input Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Output Port" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Expression" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Duplicate VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a simple reference to the node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a simple reference to the node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a Variable Setter." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a Variable Setter." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Preload Node" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Node(s)" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Node(s) From Tree" +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 "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Getter Property" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Setter Property" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Base Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Move Node(s)" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove VisualScript Node" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Connect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Disconnect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Connect Node Data" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Connect Node Sequence" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Script already has function '%s'" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Input Value" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Resize Comment" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't copy the function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Paste VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function with a function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't create function of nodes from nodes of multiple functions." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select at least one node with sequence port." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Try to only have one sequence input in selection." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Create Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Editing Variable:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Editing Signal:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Make Tool:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Members:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Base Type:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Nodes..." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Function..." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "function_name" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select or create a function to edit its graph." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Delete Selected" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Find Node Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Copy Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Cut Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Make Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Refresh Graph" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit Member" +msgstr "" + +#: modules/visual_script/visual_script_expression.cpp +msgid "Expression" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Return" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Condition" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "if (cond) is:" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "While" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "while (cond):" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Iterator" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "for (elem) in (input):" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Input type not iterable: " +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Iterator became invalid" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Iterator became invalid: " +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Sequence" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "in order:" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Switch" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "'input' is:" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Type Cast" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Is %s?" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "On %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "On Self" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Subtract %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Multiply %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Divide %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Mod %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "ShiftLeft %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "ShiftRight %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "BitAnd %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "BitOr %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "BitXor %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +#: modules/visual_script/visual_script_nodes.cpp +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Get %s" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Invalid index property name." +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Base object is not a Node!" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Path does not lead Node!" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Invalid index property name '%s' in node %s." +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Emit %s" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Function" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Compose Array" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid ": Invalid argument of type: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid ": Invalid arguments: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "a if cond, else b" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "VariableGet not found in script: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "VariableSet not found in script: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Preload" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Get Index" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Set Index" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Global Constant" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Class Constant" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Basic Constant" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Math Constant" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Get Engine Singleton" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Get Scene Node" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Get Scene Tree" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Get Self" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "CustomNode" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Custom node has no _step() method, can't process graph." +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "" +"Invalid return value from _step(), must be integer (seq out), or string " +"(error)." +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "SubCall" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Construct %s" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Get Local Var" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Set Local Var" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Action %s" +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Deconstruct %s" +msgstr "" + +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Search VisualScript" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "Yield" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "Wait" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "Next Frame" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "Next Physics Frame" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "%s sec(s)" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "WaitSignal" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "WaitNodeSignal" +msgstr "" + +#: modules/visual_script/visual_script_yield_nodes.cpp +msgid "WaitInstanceSignal" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Package name is missing." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Package segments must be of non-zero length." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "The character '%s' is not allowed in Android application package names." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "A digit cannot be the first character in a package segment." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "The character '%s' cannot be the first character in a package segment." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "The package must have at least one '.' separator." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Select device from the list" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Running on %s" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Exporting APK..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Uninstalling..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Installing to device, please wait..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Could not install to device: %s" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Running on device..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Could not execute on device." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Unable to find the 'apksigner' tool." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Android build template not installed in the project. Install it from the " +"Project menu." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Either Debug Keystore, Debug User AND Debug Password settings must be " +"configured OR none of them." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Debug keystore not configured in the Editor Settings nor in the preset." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Either Release Keystore, Release User AND Release Password settings must be " +"configured OR none of them." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Release keystore incorrectly configured in the export preset." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "A valid Android SDK path is required in Editor Settings." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Invalid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Missing 'platform-tools' directory!" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Unable to find Android SDK platform-tools' adb command." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Please check in the Android SDK directory specified in Editor Settings." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Missing 'build-tools' directory!" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Unable to find Android SDK build-tools' apksigner command." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Invalid public key for APK expansion." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Invalid package name:" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " +"project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Use Custom Build\" must be enabled to use the plugins." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" " +"or \"OpenXR\"." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is " +"enabled." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"'apksigner' could not be found.\n" +"Please check the command is available in the Android SDK build-tools " +"directory.\n" +"The resulting %s is unsigned." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Signing debug %s..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Signing release %s..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Could not find keystore, unable to export." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "'apksigner' returned with error #%d" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Verifying %s..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "'apksigner' verification of %s failed." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Exporting for Android" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Invalid filename! Android App Bundle requires the *.aab extension." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "APK Expansion not compatible with Android App Bundle." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Invalid filename! Android APK requires the *.apk extension." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Unsupported export format!\n" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Trying to build from a custom built template, but no version info for it " +"exists. Please reinstall from the 'Project' menu." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Unable to overwrite res://android/build/res/*.xml files with project name" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Could not export project files to gradle project\n" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Could not write expansion package file!" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Building of Android project failed, check output for the error.\n" +"Alternatively visit docs.godotengine.org for Android build documentation." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Moving output" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Unable to copy and rename export file, check gradle project directory for " +"outputs." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Package not found: %s" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Creating APK..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Could not find template APK to export:\n" +"%s" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "" +"Missing libraries in the export template for the selected architectures: " +"%s.\n" +"Please build a template with all required libraries, or uncheck the missing " +"architectures in the export preset." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Adding files..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Could not export project files" +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Aligning APK..." +msgstr "" + +#: platform/android/export/export_plugin.cpp +msgid "Could not unzip temporary unaligned APK." +msgstr "" + +#: platform/iphone/export/export.cpp platform/osx/export/export.cpp +msgid "Identifier is missing." +msgstr "" + +#: platform/iphone/export/export.cpp platform/osx/export/export.cpp +msgid "The character '%s' is not allowed in Identifier." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "App Store Team ID not specified - cannot configure the project." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "Invalid Identifier:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Stop HTTP Server" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Run in Browser" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Run exported HTML in the system's default browser." +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not open template for export:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Invalid export template:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not write file:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read file:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read HTML shell:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not create HTTP server directory:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Error starting HTTP server:" +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Can't get filesystem access." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Failed to get Info.plist hash." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Invalid Info.plist, no exe name." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Invalid Info.plist, no bundle id." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Invalid Info.plist, can't load." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Failed to create \"%s\" subfolder." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Failed to extract thin binary." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Invalid binary format." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Already signed!" +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Failed to process nested resources." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Failed to create _CodeSignature subfolder." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Failed to get CodeResources hash." +msgstr "" + +#: platform/osx/export/codesign.cpp platform/osx/export/export.cpp +msgid "Invalid entitlements file." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Invalid executable file." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Can't resize signature load command." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Failed to create fat binary." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Unknown bundle type." +msgstr "" + +#: platform/osx/export/codesign.cpp +msgid "Unknown object type." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Note: The notarization process generally takes less than an hour. When the " +"process is completed, you'll receive an email." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"You can check progress manually by opening a Terminal and running the " +"following command:" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Run the following command to staple the notarization ticket to the exported " +"application (optional):" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "No identity found." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Creating app bundle" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Could not find template app to export:" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Relative symlinks are not supported on this OS, the exported project might " +"be broken!" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Requested template binary '%s' not found. It might be missing from your " +"template archive." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Making PKG" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Ad-hoc signed applications require the 'Disable Library Validation' " +"entitlement to load dynamic libraries." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Code signing bundle" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Making DMG" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Code signing DMG" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Making ZIP" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Notarization requires the app to be archived first, select the DMG or ZIP " +"export format instead." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Sending archive for notarization" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Invalid bundle identifier:" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " +"signing is limited to ad-hoc signature only." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Warning: Xcode command line tools are not installed, using built-in " +"\"codesign\". Code signing is limited to ad-hoc signature only." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Notarization: Notarization with an ad-hoc signature is not supported." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Notarization: Code signing is required for notarization." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Notarization: Hardened runtime is required for notarization." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Notarization: Timestamp runtime is required for notarization." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Notarization: Apple ID name not specified." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "Notarization: Apple ID password not specified." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Warning: Notarization is disabled. The exported project will be blocked by " +"Gatekeeper if it's downloaded from an unknown source." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Code signing is disabled. The exported project will not run on Macs with " +"enabled Gatekeeper and Apple Silicon powered Macs." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Hardened Runtime is not compatible with ad-hoc signature, and will be " +"disabled!" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Timestamping is not compatible with ad-hoc signature, and will be disabled!" +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Warning: Notarization is not supported from this OS. The exported project " +"will be blocked by Gatekeeper if it's downloaded from an unknown source." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Privacy: Microphone access is enabled, but usage description is not " +"specified." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Privacy: Camera access is enabled, but usage description is not specified." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Privacy: Location information access is enabled, but usage description is " +"not specified." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Privacy: Address book access is enabled, but usage description is not " +"specified." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Privacy: Calendar access is enabled, but usage description is not specified." +msgstr "" + +#: platform/osx/export/export.cpp +msgid "" +"Privacy: Photo library access is enabled, but usage description is not " +"specified." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid package short name." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid package unique name." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid package publisher display name." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid product GUID." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid publisher GUID." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid background color." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid Store Logo image dimensions (should be 50x50)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid splash screen image dimensions (should be 620x300)." +msgstr "" + +#: platform/windows/export/export.cpp +msgid "" +"The rcedit tool must be configured in the Editor Settings (Export > Windows " +"> Rcedit) to change the icon or app information data." +msgstr "" + +#: platform/windows/export/export.cpp +msgid "Invalid icon path:" +msgstr "" + +#: platform/windows/export/export.cpp +msgid "Invalid file version:" +msgstr "" + +#: platform/windows/export/export.cpp +msgid "Invalid product version:" +msgstr "" + +#: scene/2d/animated_sprite.cpp +msgid "" +"A SpriteFrames resource must be created or set in the \"Frames\" property in " +"order for AnimatedSprite to display frames." +msgstr "" + +#: scene/2d/canvas_modulate.cpp +msgid "" +"Only one visible CanvasModulate is allowed per scene (or set of instanced " +"scenes). The first created one will work, while the rest will be ignored." +msgstr "" + +#: scene/2d/collision_object_2d.cpp +msgid "" +"This node has no shape, so it can't collide or interact with other objects.\n" +"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " +"define its shape." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "" +"CollisionPolygon2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "An empty CollisionPolygon2D has no effect on collision." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 3 points are needed in 'Solids' build mode." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "Invalid polygon. At least 2 points are needed in 'Segments' build mode." +msgstr "" + +#: scene/2d/collision_shape_2d.cpp +msgid "" +"CollisionShape2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." +msgstr "" + +#: scene/2d/collision_shape_2d.cpp +msgid "" +"A shape must be provided for CollisionShape2D to function. Please create a " +"shape resource for it!" +msgstr "" + +#: 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 "" + +#: scene/2d/cpu_particles_2d.cpp +msgid "" +"CPUParticles2D animation requires the usage of a CanvasItemMaterial with " +"\"Particles Animation\" enabled." +msgstr "" + +#: scene/2d/joints_2d.cpp +msgid "Node A and Node B must be PhysicsBody2Ds" +msgstr "" + +#: scene/2d/joints_2d.cpp +msgid "Node A must be a PhysicsBody2D" +msgstr "" + +#: scene/2d/joints_2d.cpp +msgid "Node B must be a PhysicsBody2D" +msgstr "" + +#: scene/2d/joints_2d.cpp +msgid "Joint is not connected to two PhysicsBody2Ds" +msgstr "" + +#: scene/2d/joints_2d.cpp +msgid "Node A and Node B must be different PhysicsBody2Ds" +msgstr "" + +#: scene/2d/light_2d.cpp +msgid "" +"A texture with the shape of the light must be supplied to the \"Texture\" " +"property." +msgstr "" + +#: scene/2d/light_occluder_2d.cpp +msgid "" +"An occluder polygon must be set (or drawn) for this occluder to take effect." +msgstr "" + +#: scene/2d/light_occluder_2d.cpp +msgid "The occluder polygon for this occluder is empty. Please draw a polygon." +msgstr "" + +#: scene/2d/navigation_agent_2d.cpp +msgid "The NavigationAgent2D can be used only under a Node2D node." +msgstr "" + +#: scene/2d/navigation_obstacle_2d.cpp +msgid "" +"The NavigationObstacle2D only serves to provide collision avoidance to a " +"Node2D object." +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 "" + +#: scene/2d/navigation_polygon.cpp +msgid "" +"NavigationPolygonInstance must be a child or grandchild to a Navigation2D " +"node. It only provides navigation data." +msgstr "" + +#: scene/2d/parallax_layer.cpp +msgid "" +"ParallaxLayer node only works when set as child of a ParallaxBackground node." +msgstr "" + +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles2D\" toolbar option for this purpose." +msgstr "" + +#: scene/2d/particles_2d.cpp +msgid "" +"On macOS, Particles2D rendering is much slower than CPUParticles2D due to " +"transform feedback being implemented on the CPU instead of the GPU.\n" +"Consider using CPUParticles2D instead when targeting macOS.\n" +"You can use the \"Convert to CPUParticles2D\" toolbar option for this " +"purpose." +msgstr "" + +#: 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 "" + +#: scene/2d/particles_2d.cpp +msgid "" +"Particles2D animation requires the usage of a CanvasItemMaterial with " +"\"Particles Animation\" enabled." +msgstr "" + +#: scene/2d/path_2d.cpp +msgid "PathFollow2D only works when set as a child of a Path2D node." +msgstr "" + +#: scene/2d/physics_body_2d.cpp +msgid "" +"Size changes to RigidBody2D (in character or rigid modes) will be overridden " +"by the physics engine when running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/2d/remote_transform_2d.cpp +msgid "Path property must point to a valid Node2D node to work." +msgstr "" + +#: scene/2d/skeleton_2d.cpp +msgid "This Bone2D chain should end at a Skeleton2D node." +msgstr "" + +#: scene/2d/skeleton_2d.cpp +msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." +msgstr "" + +#: scene/2d/skeleton_2d.cpp +msgid "" +"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one." +msgstr "" + +#: scene/2d/tile_map.cpp +msgid "" +"TileMap with Use Parent on needs a parent CollisionObject2D to give shapes " +"to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, " +"KinematicBody2D, etc. to give them a shape." +msgstr "" + +#: scene/2d/visibility_notifier_2d.cpp +msgid "" +"VisibilityEnabler2D works best when used with the edited scene root directly " +"as parent." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRCamera must have an ARVROrigin node as its parent." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRController must have an ARVROrigin node as its parent." +msgstr "" + +#: 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 "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRAnchor must have an ARVROrigin node as its parent." +msgstr "" + +#: 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 "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVROrigin requires an ARVRCamera child node." +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Finding meshes and lights" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Preparing geometry (%d/%d)" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Preparing environment" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Generating capture" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Saving lightmaps" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Done" +msgstr "" + +#: scene/3d/collision_object.cpp +msgid "" +"This node has no shape, so it can't collide or interact with other objects.\n" +"Consider adding a CollisionShape or CollisionPolygon as a child to define " +"its shape." +msgstr "" + +#: scene/3d/collision_polygon.cpp +msgid "" +"CollisionPolygon only serves to provide a collision shape to a " +"CollisionObject derived node. Please only use it as a child of Area, " +"StaticBody, RigidBody, KinematicBody, etc. to give them a shape." +msgstr "" + +#: scene/3d/collision_polygon.cpp +msgid "An empty CollisionPolygon has no effect on collision." +msgstr "" + +#: scene/3d/collision_shape.cpp +msgid "" +"CollisionShape only serves to provide a collision shape to a CollisionObject " +"derived node. Please only use it as a child of Area, StaticBody, RigidBody, " +"KinematicBody, etc. to give them a shape." +msgstr "" + +#: scene/3d/collision_shape.cpp +msgid "" +"A shape must be provided for CollisionShape to function. Please create a " +"shape resource for it." +msgstr "" + +#: 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 "" + +#: scene/3d/collision_shape.cpp +msgid "" +"ConcavePolygonShape doesn't support RigidBody in another mode than static." +msgstr "" + +#: scene/3d/cpu_particles.cpp +msgid "Nothing is visible because no mesh has been assigned." +msgstr "" + +#: scene/3d/cpu_particles.cpp +msgid "" +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "" +"GIProbes are not supported by the GLES2 video driver.\n" +"Use a BakedLightmap instead." +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "" +"The GIProbe Compress property has been deprecated due to known bugs and no " +"longer has any effect.\n" +"To remove this warning, disable the GIProbe's Compress property." +msgstr "" + +#: scene/3d/light.cpp +msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows." +msgstr "" + +#: scene/3d/navigation_agent.cpp +msgid "The NavigationAgent can be used only under a spatial node." +msgstr "" + +#: scene/3d/navigation_mesh_instance.cpp +msgid "" +"NavigationMeshInstance must be a child or grandchild to a Navigation node. " +"It only provides navigation data." +msgstr "" + +#: scene/3d/navigation_obstacle.cpp +msgid "" +"The NavigationObstacle only serves to provide collision avoidance to a " +"spatial object." +msgstr "" + +#: scene/3d/occluder.cpp +msgid "No shape is set." +msgstr "" + +#: scene/3d/occluder.cpp +msgid "Only uniform scales are supported." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to " +"CPUParticles\" toolbar option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"On macOS, Particles rendering is much slower than CPUParticles due to " +"transform feedback being implemented on the CPU instead of the GPU.\n" +"Consider using CPUParticles instead when targeting macOS.\n" +"You can use the \"Convert to CPUParticles\" toolbar option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"Nothing is visible because meshes have not been assigned to draw passes." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." +msgstr "" + +#: scene/3d/path.cpp +msgid "PathFollow only works when set as a child of a Path node." +msgstr "" + +#: scene/3d/path.cpp +msgid "" +"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its " +"parent Path's Curve resource." +msgstr "" + +#: scene/3d/physics_body.cpp +msgid "" +"Size changes to RigidBody (in character or rigid modes) will be overridden " +"by the physics engine when running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/3d/physics_joint.cpp +msgid "Node A and Node B must be PhysicsBodies" +msgstr "" + +#: scene/3d/physics_joint.cpp +msgid "Node A must be a PhysicsBody" +msgstr "" + +#: scene/3d/physics_joint.cpp +msgid "Node B must be a PhysicsBody" +msgstr "" + +#: scene/3d/physics_joint.cpp +msgid "Joint is not connected to any PhysicsBodies" +msgstr "" + +#: scene/3d/physics_joint.cpp +msgid "Node A and Node B must be different PhysicsBodies" +msgstr "" + +#: scene/3d/portal.cpp +msgid "The RoomManager should not be a child or grandchild of a Portal." +msgstr "" + +#: scene/3d/portal.cpp +msgid "A Room should not be a child or grandchild of a Portal." +msgstr "" + +#: scene/3d/portal.cpp +msgid "A RoomGroup should not be a child or grandchild of a Portal." +msgstr "" + +#: 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/room.cpp +msgid "A Room cannot have another Room as a child or grandchild." +msgstr "" + +#: scene/3d/room.cpp +msgid "The RoomManager should not be placed inside a Room." +msgstr "" + +#: scene/3d/room.cpp +msgid "A RoomGroup should not be placed inside a Room." +msgstr "" + +#: scene/3d/room.cpp +msgid "" +"Room convex hull contains a large number of planes.\n" +"Consider simplifying the room bound in order to increase performance." +msgstr "" + +#: scene/3d/room_group.cpp +msgid "The RoomManager should not be placed inside a RoomGroup." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "The RoomList has not been assigned." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "The RoomList node should be a Spatial (or derived from Spatial)." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "" +"Portal Depth Limit is set to Zero.\n" +"Only the Room that the Camera is in will render." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "There should only be one RoomManager in the SceneTree." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "" +"RoomList path is invalid.\n" +"Please check the RoomList branch has been assigned in the RoomManager." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "RoomList contains no Rooms, aborting." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "Misnamed nodes detected, check output log for details. Aborting." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "Portal link room not found, check output log for details." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "" +"Portal autolink failed, check output log for details.\n" +"Check the portal is facing outwards from the source room." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "" +"Room overlap detected, cameras may work incorrectly in overlapping area.\n" +"Check output log for details." +msgstr "" + +#: scene/3d/room_manager.cpp +msgid "" +"Error calculating room bounds.\n" +"Ensure all rooms contain geometry or manual bounds." +msgstr "" + +#: scene/3d/soft_body.cpp +msgid "This body will be ignored until you set a mesh." +msgstr "" + +#: scene/3d/soft_body.cpp +msgid "" +"Size changes to SoftBody will be overridden by the physics engine when " +"running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/3d/sprite_3d.cpp +msgid "" +"A SpriteFrames resource must be created or set in the \"Frames\" property in " +"order for AnimatedSprite3D to display frames." +msgstr "" + +#: 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 "" + +#: scene/3d/world_environment.cpp +msgid "" +"WorldEnvironment requires its \"Environment\" property to contain an " +"Environment to have a visible effect." +msgstr "" + +#: scene/3d/world_environment.cpp +msgid "" +"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)." +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 "" + +#: scene/animation/animation_blend_tree.cpp +msgid "On BlendTree node '%s', animation not found: '%s'" +msgstr "" + +#: scene/animation/animation_blend_tree.cpp +msgid "Animation not found: '%s'" +msgstr "" + +#: scene/animation/animation_player.cpp +msgid "Anim Apply Reset" +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "In node '%s', invalid animation: '%s'." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Invalid animation: '%s'." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Nothing connected to input '%s' of node '%s'." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "No root AnimationNode for the graph is set." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Path to an AnimationPlayer node containing animations is not set." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "The AnimationPlayer root node is not a valid node." +msgstr "" + +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "" +"Color: #%s\n" +"LMB: Apply color\n" +"RMB: Remove preset" +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Pick a color from the editor window." +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "HSV" +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Raw" +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Add current color as a preset." +msgstr "" + +#: scene/gui/container.cpp +msgid "" +"Container by itself serves no purpose unless a script configures its " +"children placement behavior.\n" +"If you don't intend to add a script, use a plain Control node instead." +msgstr "" + +#: 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!" +msgstr "" + +#: scene/gui/dialogs.cpp +msgid "Please Confirm..." +msgstr "" + +#: scene/gui/file_dialog.cpp +msgid "Must use a valid extension." +msgstr "" + +#: scene/gui/graph_edit.cpp +msgid "Enable grid minimap." +msgstr "" + +#: scene/gui/nine_patch_rect.cpp +msgid "" +"The Tile and Tile Fit options for Axis Stretch properties are only effective " +"when using the GLES3 rendering backend.\n" +"The GLES2 backend is currently in use, so these modes will act like Stretch " +"instead." +msgstr "" + +#: scene/gui/popup.cpp +msgid "" +"Popups will hide by default unless you call popup() or any of the popup*() " +"functions. Making them visible for editing is fine, but they will hide upon " +"running." +msgstr "" + +#: scene/gui/range.cpp +msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0." +msgstr "" + +#: scene/gui/scroll_container.cpp +msgid "" +"ScrollContainer is intended to work with a single child control.\n" +"Use a container as child (VBox, HBox, etc.), or a Control and set the custom " +"minimum size manually." +msgstr "" + +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "" + +#: scene/main/scene_tree.cpp +msgid "" +"Default Environment as specified in Project Settings (Rendering -> " +"Environment -> Default Environment) could not be loaded." +msgstr "" + +#: scene/main/timer.cpp +msgid "" +"Very low timer wait times (< 0.05 seconds) may behave in significantly " +"different ways depending on the rendered or physics frame rate.\n" +"Consider using a script's process loop instead of relying on a Timer for " +"very low wait times." +msgstr "" + +#: scene/main/viewport.cpp +msgid "" +"This viewport is not set as render target. If you intend for it to display " +"its contents directly to the screen, make it a child of a Control so it can " +"obtain a size. Otherwise, make it a RenderTarget and assign its internal " +"texture to some node for display." +msgstr "" + +#: scene/main/viewport.cpp +msgid "" +"The Viewport size must be greater than or equal to 2 pixels on both " +"dimensions to render anything." +msgstr "" + +#: scene/resources/occluder_shape.cpp +msgid "OccluderShapeSphere Set Spheres" +msgstr "" + +#: scene/resources/visual_shader_nodes.cpp +msgid "" +"The sampler port is connected but not used. Consider changing the source to " +"'SamplerPort'." +msgstr "" + +#: scene/resources/visual_shader_nodes.cpp +msgid "Invalid source for preview." +msgstr "" + +#: scene/resources/visual_shader_nodes.cpp +msgid "Invalid source for shader." +msgstr "" + +#: scene/resources/visual_shader_nodes.cpp +msgid "Invalid comparison function for that type." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Varying may not be assigned in the '%s' function." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "" +"Varyings which assigned in 'vertex' function may not be reassigned in " +"'fragment' or 'light'." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "" +"Varyings which assigned in 'fragment' function may not be reassigned in " +"'vertex' or 'light'." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Assignment to function." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Assignment to uniform." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 1a95fb6702..f77d1da645 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -1484,6 +1484,11 @@ msgstr "Ŝargi la defaŭlta busaranĝo." msgid "Create a new Bus Layout." msgstr "Krei nova busaranĝo." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Malfermi aranĝon de aŭdia buso" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Malvalida nomo." @@ -2927,7 +2932,7 @@ msgstr "Baskuli sendistran reĝimon." msgid "Add a new scene." msgstr "Aldoni novan scenon." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Sceno" @@ -5711,6 +5716,10 @@ msgid "Bake Lightmaps" msgstr "Baki lummapojn" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Elekti dosieron por bakado de lummapo:" @@ -8219,7 +8228,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9149,6 +9163,11 @@ msgid "Select Another Theme Resource:" msgstr "Serĉi anstataŭiga risurco:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Renomi risurcon" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -9202,6 +9221,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Ŝanĝu la tipon de %s" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Ŝanĝu la tipon de %s" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Ŝargi defaŭlton" @@ -9220,7 +9253,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Ŝanĝi tipon" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9919,18 +9963,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Matĉoj:" @@ -12570,6 +12602,11 @@ msgid "Stack Frames" msgstr "Stakaj Framoj" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtri signalojn" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profililo" @@ -13912,6 +13949,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/es.po b/editor/translations/es.po index d4f2364598..218eee6470 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, 2020, 2021. +# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2017, 2019, 2020, 2021, 2022. # Lonsfor <lotharw@protonmail.com>, 2017-2018. # Mario Nachbaur <manachbaur@gmail.com>, 2018. # Oscar Carballal <oscar.carballal@protonmail.com>, 2017-2018. @@ -73,13 +73,14 @@ # Anderson Guzman Abreu <chicobello1111@gmail.com>, 2021. # Manuel Cantón Guillén <manuelcanton8@gmail.com>, 2021. # Alfonso V <alfonsov96@gmail.com>, 2022. +# Cristhian Pineda Castro <kurgancpc@hotmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-01-16 13:19+0000\n" -"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" +"PO-Revision-Date: 2022-02-20 00:54+0000\n" +"Last-Translator: Cristhian Pineda Castro <kurgancpc@hotmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -87,7 +88,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.10.1\n" +"X-Generator: Weblate 4.11-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1553,6 +1554,11 @@ msgstr "Cargar el Bus Layout predeterminado." msgid "Create a new Bus Layout." msgstr "Crear un nuevo Bus Layout." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Abrir Layout de Bus de Audio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nombre inválido." @@ -2336,7 +2342,7 @@ msgstr "Propiedad:" #: editor/editor_inspector.cpp msgid "Pin value" -msgstr "Valor de fijación" +msgstr "Fijar Valor" #: editor/editor_inspector.cpp msgid "" @@ -2345,7 +2351,7 @@ msgstr "Fijar un valor obliga a guardarlo aunque sea igual al predeterminado." #: editor/editor_inspector.cpp msgid "Pin value [Disabled because '%s' is editor-only]" -msgstr "Valor de fijación [Desactivado porque '%s' es solo para el editor]" +msgstr "Fijar Valor [Desactivado porque '%s' es solo para el editor]" #: editor/editor_inspector.cpp editor/scene_tree_dock.cpp #: modules/visual_script/visual_script_func_nodes.cpp @@ -3008,7 +3014,7 @@ msgstr "Act./Desact. modo sin distracciones." msgid "Add a new scene." msgstr "Añadir nueva escena." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Escena" @@ -3385,14 +3391,12 @@ msgid "Update Continuously" msgstr "Actualizar Continuamente" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Actualizar Al Cambiar" +msgstr "Actualizar todos los cambios" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Cambios del Material:" +msgstr "Actualizar cambios vitales" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4178,6 +4182,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Esta extensión de archivo no es reconocida por el editor.\n" +"Si desea cambiarle el nombre de todos modos, use el administrador de " +"archivos de su sistema operativo.\n" +"Después de cambiar el nombre a una extensión desconocida, el archivo ya no " +"se mostrará en el editor." #: editor/filesystem_dock.cpp msgid "" @@ -5799,6 +5808,10 @@ msgid "Bake Lightmaps" msgstr "Calcular Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Selecciona un archivo lightmap bakeado:" @@ -6268,7 +6281,7 @@ msgstr "Asegura que los hijos del objeto no sean seleccionables." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Group Selected Node(s)" -msgstr "Grupo Nodo(s) Seleccionado(s)" +msgstr "Agrupar Nodo(s) Seleccionado(s)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -8294,7 +8307,13 @@ msgid "Cinematic Preview" msgstr "Vista Previa Cinemática" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "No disponible al utilizar el renderizador GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9190,6 +9209,11 @@ msgid "Select Another Theme Resource:" msgstr "Seleccionar Otro Recurso del Theme:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Renombrar Recurso" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Otro Theme" @@ -9239,6 +9263,20 @@ msgstr "" "de este tipo." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Añadir Tipo de Elemento" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Establecer Tipo de la Variable" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Cambiar Tipo Base" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Mostrar Por Defecto" @@ -9257,8 +9295,19 @@ msgid "Override all default type items." msgstr "Anular todos los elementos de tipo por defecto." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Añadir Tipo de Elemento" +#, fuzzy +msgid "Base Type" +msgstr "Cambiar Tipo Base" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9962,18 +10011,6 @@ msgid "Commit list size" msgstr "Tamaño de la lista de confirmación" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Ramas" @@ -12732,6 +12769,11 @@ msgid "Stack Frames" msgstr "Fotogramas Apilados" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrar tiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Perfilador" @@ -12905,14 +12947,12 @@ msgid "Set Occluder Sphere Position" msgstr "Establecer Posición de la Esfera de Oclusión" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Establecer Posición del Portal Point" +msgstr "Establecer posición del polígono oclusor" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Establecer Posición de Punto de Curva" +msgstr "Establecer posición del orificio del oclusor" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -14064,9 +14104,10 @@ msgstr "Nombre de paquete inválido:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"El módulo \"GodotPaymentV3\" incluido en los ajustes del proyecto \"android/" -"modules\" es inválido (cambiado en Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14332,166 +14373,167 @@ msgstr "Error al iniciar el servidor HTTP:" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "No se puede obtener acceso al sistema de archivos." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "No se pudo obtener el hash de Info.plist." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Nombre de Proyecto Inválido." +msgstr "Info.plist no válido, sin nombre de exe." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Info.plist no válido, sin ID de paquete." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Geometría inválida, no es posible crear un polígono." +msgstr "Info.plist no válido, no se puede cargar." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "No se pudo crear la carpeta." +msgstr "No se pudo crear la subcarpeta \"%s\"." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "No se pudo extraer el binario delgado." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Ruta base incorrecta." +msgstr "Formato binario no válido." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "¡Ha sido firmado!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "Error al cargar el recurso." +msgstr "No se pudieron procesar los recursos anidados." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "No se pudo crear la subcarpeta _CodeSignature." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "Error al cargar el recurso." +msgstr "No se pudo obtener el hash de CodeResources." #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "Extensión inválida." +msgstr "Archivo de derechos no válido." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Extensión inválida." +msgstr "Archivo ejecutable no válido." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "No se puede cambiar el tamaño del comando de carga de la firma." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "No se pudo crear el binario gordo." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Tipo de paquete desconocido." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Tipo de objeto desconocido." #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." msgstr "" +"Nota: El proceso de notarización generalmente toma menos de una hora. Cuando " +"se complete el proceso, recibirá un correo electrónico." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Puede verificar el progreso manualmente abriendo una Terminal y ejecutando " +"el siguiente comando:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Ejecute el siguiente comando para engrapar el boleto de certificación " +"notarial a la aplicación exportada (opcional):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "No se han encontrado icons." +msgstr "No se encontró identidad." #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "Creando Miniatura" +msgstr "Crear paquete de aplicaciones" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"No se pudo encontrar la plantilla APK para exportar:\n" -"%s" +msgstr "No se pudo encontrar la aplicación de plantilla para exportar:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"Los enlaces simbólicos relativos no son compatibles con este sistema " +"operativo, ¡el proyecto exportado podría estar dañado!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." msgstr "" +"Plantilla binaria solicitada '%s' no encontrada. Es posible que falte en el " +"archivo de plantillas." #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "haciendo paquete" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"Las aplicaciones firmadas ad-hoc requieren el derecho 'Desactivar validación " +"de biblioteca' para cargar bibliotecas dinámicas." #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "Paquete de firma de código" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Haciendo DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "Firma de código DMG" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Haciendo ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"La notarización requiere que la aplicación se archive primero, seleccione el " +"formato de exportación DMG o ZIP en su lugar." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Enviando archivo para notarización" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14502,31 +14544,39 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Advertencia: El \"codiseño\" incorporado está seleccionado en la " +"configuración del editor. La firma de código se limita únicamente a la firma " +"ad-hoc." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Advertencia: las herramientas de línea de comandos de Xcode no están " +"instaladas, utilizando el \"codiseño\" incorporado. La firma de código se " +"limita únicamente a la firma ad-hoc." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." msgstr "" +"Notarización: No se admite la certificación notarial con una firma ad-hoc." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "Notarización: se requiere firma de código." +msgstr "Notarización: Se requiere la firma del código para la notarización." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "Notarización: se requiere tiempo de ejecución reforzado." +msgstr "" +"Notarización: se requiere tiempo de ejecución endurecido para la " +"certificación notarial." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "Notarización: se requiere tiempo de ejecución reforzado." +msgstr "" +"Notarización: se requiere el tiempo de ejecución de la marca de tiempo para " +"la certificación notarial." #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14541,63 +14591,84 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Advertencia: La notarización está deshabilitada. Gatekeeper bloqueará el " +"proyecto exportado si se descarga de una fuente desconocida." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"La firma de código está deshabilitada. El proyecto exportado no se ejecutará " +"en Mac con Gatekeeper habilitado y Mac con tecnología Apple Silicon." #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" msgstr "" +"Hardened Runtime no es compatible con la firma ad-hoc, y se desactivará!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" msgstr "" +"El sellado de tiempo no es compatible con la firma ad-hoc, y se desactivará!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Advertencia: la notarización no es compatible con este sistema operativo. " +"Gatekeeper bloqueará el proyecto exportado si se descarga de una fuente " +"desconocida." #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Privacidad: el acceso al micrófono está habilitado, pero no se especifica la " +"descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Privacidad: el acceso a la cámara está habilitado, pero no se especifica la " +"descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Privacidad: el acceso a la información de ubicación está habilitado, pero no " +"se especifica la descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Privacidad: el acceso a la libreta de direcciones está habilitado, pero no " +"se especifica la descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Privacidad: el acceso al calendario está habilitado, pero no se especifica " +"la descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"Privacidad: el acceso a la biblioteca de fotos está habilitado, pero no se " +"especifica la descripción de uso." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14669,21 +14740,21 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"La herramienta rcedit debe configurarse en la configuración del editor " +"(Exportar > Windows > Rcedit) para cambiar los datos de información del " +"ícono o la aplicación." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Ruta inválida." +msgstr "Ruta de icono no válida:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Extensión inválida." +msgstr "Versión de archivo inválida:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "GUID de producto inválido." +msgstr "Versión de producto no válida:" #: scene/2d/animated_sprite.cpp msgid "" @@ -15429,14 +15500,13 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Este nodo ha quedado obsoleto. Usa AnimationTree en su lugar." #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" "RMB: Remove preset" msgstr "" "Color: #%s\n" -"Clic izq: Configurar color\n" +"Clic izq: Aplicar color\n" "Clic der: Borrar configuración predeterminada" #: scene/gui/color_picker.cpp diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 25d0908e26..44d5ce2975 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -3,7 +3,7 @@ # Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). # This file is distributed under the same license as the Godot source code. # Diego López <diegodario21@gmail.com>, 2017. -# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2018, 2019, 2020, 2021. +# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2018, 2019, 2020, 2021, 2022. # Roger Blanco Ribera <roger.blancoribera@gmail.com>, 2016-2018. # Sebastian Silva <sebastian@sugarlabs.org>, 2016. # Jose Luis Bossio <joseluisbossio@gmail.com>, 2018. @@ -17,15 +17,15 @@ # Cristian Yepez <cristianyepez@gmail.com>, 2020. # Skarline <lihue-molina@hotmail.com>, 2020. # Joakker <joaquinandresleon108@gmail.com>, 2020. -# M3CG <cgmario1999@gmail.com>, 2021. +# M3CG <cgmario1999@gmail.com>, 2021, 2022. # Manuel González <mgoopazo@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-12-11 06:25+0000\n" -"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" +"PO-Revision-Date: 2022-02-28 13:54+0000\n" +"Last-Translator: M3CG <cgmario1999@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" "Language: es_AR\n" @@ -33,7 +33,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.10-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -337,9 +337,8 @@ msgid "Duplicate Key(s)" msgstr "Duplicar Clave(s)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add RESET Value(s)" -msgstr "Agregar %d Frame(s)" +msgstr "Agregar Valor(es) de RESET" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" @@ -513,9 +512,8 @@ msgstr "" "única." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Add RESET Keys" -msgstr "Escalar Keys de Anim" +msgstr "Anim: Agregar Claves de RESET" #: editor/animation_track_editor.cpp msgid "" @@ -1499,13 +1497,18 @@ msgstr "Cargar el Bus Layout predeterminado." msgid "Create a new Bus Layout." msgstr "Crear un nuevo Bus Layout." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Abrir Layout de Bus de Audio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nombre inválido." #: editor/editor_autoload_settings.cpp msgid "Cannot begin with a digit." -msgstr "" +msgstr "No puede comenzar con un dígito." #: editor/editor_autoload_settings.cpp msgid "Valid characters:" @@ -2137,9 +2140,8 @@ msgid "Properties" msgstr "Propiedades" #: editor/editor_help.cpp -#, fuzzy msgid "overrides %s:" -msgstr "reemplazar(override):" +msgstr "reemplaza(overrides) %s:" #: editor/editor_help.cpp msgid "default:" @@ -2279,18 +2281,18 @@ msgid "Property:" msgstr "Propiedad:" #: editor/editor_inspector.cpp -#, fuzzy msgid "Pin value" -msgstr "(valor)" +msgstr "Fijar Valor" #: editor/editor_inspector.cpp msgid "" "Pinning a value forces it to be saved even if it's equal to the default." msgstr "" +"Fijar un valor fuerza que sea guardado incluso si es igual predeterminado." #: editor/editor_inspector.cpp msgid "Pin value [Disabled because '%s' is editor-only]" -msgstr "" +msgstr "Fijar Valor [Desactivado porque '%s' es solo para el editor]" #: editor/editor_inspector.cpp editor/scene_tree_dock.cpp #: modules/visual_script/visual_script_func_nodes.cpp @@ -2305,26 +2307,23 @@ msgstr "Asignar Múltiples:" #: editor/editor_inspector.cpp msgid "Pinned %s" -msgstr "" +msgstr "Fijado %s" #: editor/editor_inspector.cpp msgid "Unpinned %s" -msgstr "" +msgstr "Desfijado %s" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property" -msgstr "Copiar Propiedades" +msgstr "Copiar Propiedad" #: editor/editor_inspector.cpp -#, fuzzy msgid "Paste Property" -msgstr "Pegar Propiedades" +msgstr "Pegar Propiedad" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property Path" -msgstr "Copiar Ruta de Script" +msgstr "Copiar Ruta de Propiedad" #: editor/editor_log.cpp msgid "Output:" @@ -2957,7 +2956,7 @@ msgstr "Act./Desact. modo sin distracciones." msgid "Add a new scene." msgstr "Agregar nueva escena." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Escena" @@ -3061,9 +3060,8 @@ msgid "Install Android Build Template..." msgstr "Instalar Plantilla de Compilación de Android..." #: editor/editor_node.cpp -#, fuzzy msgid "Open User Data Folder" -msgstr "Abrir Carpeta de Datos del Editor" +msgstr "Abrir Carpeta de Datos del Usuario" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" @@ -3152,7 +3150,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Force Shader Fallbacks" -msgstr "" +msgstr "Forzar Shader Fallbacks" #: editor/editor_node.cpp msgid "" @@ -3163,6 +3161,13 @@ msgid "" "Asynchronous shader compilation must be enabled in the project settings for " "this option to make a difference." msgstr "" +"Cuando esta opción está activada, los shaders se utilizarán en su forma de " +"fallback (ya sea visible a través de un ubershader u oculto) durante todo el " +"tiempo de ejecución.\n" +"Esto es útil para verificar el aspecto y el rendimiento de los fallbacks, " +"que normalmente se muestran brevemente.\n" +"La compilación asíncrona de los shaders debe estar activada en la " +"configuración del proyecto para que esta opción suponga una diferencia." #: editor/editor_node.cpp msgid "Synchronize Scene Changes" @@ -3326,14 +3331,12 @@ msgid "Update Continuously" msgstr "Actualizar Continuamente" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Actualizar Al Cambiar" +msgstr "Actualizar Todos Los Cambios" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Cambios de Material:" +msgstr "Actualizar Cambios Vitales" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -3782,9 +3785,8 @@ msgstr "Importar Desde Nodo:" #. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git"). #: editor/editor_vcs_interface.cpp -#, fuzzy msgid "%s Error" -msgstr "Error" +msgstr "Error de %s" #: editor/export_template_manager.cpp msgid "Open the folder containing these templates." @@ -4120,6 +4122,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Esta extensión de archivo no es reconocida por el editor.\n" +"Si querés renombrarla de todos modos, usá el administrador de archivos de tu " +"sistema operativo.\n" +"Después de renombrar a una extensión desconocida, el archivo ya no se " +"mostrará en el editor." #: editor/filesystem_dock.cpp msgid "" @@ -4342,9 +4349,8 @@ msgid "Replace..." msgstr "Reemplazar..." #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Replace in Files" -msgstr "Reemplazar Todo" +msgstr "eemplazar en Archivos" #: editor/find_in_files.cpp msgid "Find: " @@ -4355,9 +4361,8 @@ msgid "Replace: " msgstr "Reemplazar: " #: editor/find_in_files.cpp -#, fuzzy msgid "Replace All (NO UNDO)" -msgstr "Reemplazar Todo" +msgstr "Reemplazar Todo (NO SE PUEDE DESHACER)" #: editor/find_in_files.cpp msgid "Searching..." @@ -4584,6 +4589,8 @@ msgid "" "Select a resource file in the filesystem or in the inspector to adjust " "import settings." msgstr "" +"Seleccioná un archivo de recursos en el sistema de archivos o en el " +"inspector para ajustar la configuración de importación." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -5741,6 +5748,10 @@ msgid "Bake Lightmaps" msgstr "Bake Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Selecciona un archivo de lightmap bakeado:" @@ -6054,9 +6065,8 @@ msgid "Alt+Drag: Move selected node." msgstr "Alt+Arrastrar: Mover el nodo seleccionado." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Alt+Drag: Scale selected node." -msgstr "Alt+Arrastrar: Mover el nodo seleccionado." +msgstr "Alt+Arrastrar: Escalar el nodo seleccionado." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "V: Set selected node's pivot position." @@ -6090,7 +6100,7 @@ msgstr "Modo de Escalado" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Shift: Scale proportionally." -msgstr "" +msgstr "Shift: Escalar proporcionalmente." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6189,9 +6199,8 @@ msgstr "Bloquear el objeto seleccionado en su sitio (no se puede mover)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock Selected Node(s)" -msgstr "Bloqueo Seleccionado" +msgstr "Bloquear Nodo(s) Seleccionado(s)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6200,9 +6209,8 @@ msgstr "Desbloquear el objeto seleccionado (puede ser movido)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Unlock Selected Node(s)" -msgstr "Desbloquear Seleccionados" +msgstr "Desbloquear Nodo(s) Seleccionado(s)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6211,9 +6219,8 @@ msgstr "Asegurarse que los hijos de un objeto no sean seleccionables." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Group Selected Node(s)" -msgstr "Agrupar Seleccionados" +msgstr "Agrupar Nodo(s) Seleccionado(s)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -6222,9 +6229,8 @@ msgstr "Restaurar la habilidad de seleccionar los hijos de un objeto." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected Node(s)" -msgstr "Desagrupar Seleccionados" +msgstr "Desagrupar Nodo(s) Seleccionado(s)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton Options" @@ -7873,9 +7879,8 @@ msgid "Find in Files..." msgstr "Buscar en Archivos..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Replace in Files..." -msgstr "Reemplazar..." +msgstr "Reemplazar en Archivos..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" @@ -8236,7 +8241,13 @@ msgid "Cinematic Preview" msgstr "Vista Previa Cinemática" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "No disponible usando el renderizador GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -8403,16 +8414,15 @@ msgstr "Act./Desact. Vista Libre" #: editor/plugins/spatial_editor_plugin.cpp msgid "Decrease Field of View" -msgstr "" +msgstr "Disminuir el Campo de Visión" #: editor/plugins/spatial_editor_plugin.cpp msgid "Increase Field of View" -msgstr "" +msgstr "Incrementar el Campo de Visión" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Reset Field of View to Default" -msgstr "Restablecer a Valores Por Defecto" +msgstr "Restablecer el Campo de Visión por Defecto" #: editor/plugins/spatial_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -8830,7 +8840,7 @@ msgstr "{num} stylebox(es)" #: editor/plugins/theme_editor_plugin.cpp msgid "No styleboxes found." -msgstr "No se encontraron styleboxes." +msgstr "No se encontró ninguna caja de estilo." #: editor/plugins/theme_editor_plugin.cpp msgid "{num} currently selected" @@ -9132,6 +9142,11 @@ msgid "Select Another Theme Resource:" msgstr "Seleccionar Otro Recurso del Theme:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Renombrar Recurso" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Otro Theme" @@ -9141,22 +9156,19 @@ msgstr "Añadir Tipo" #: editor/plugins/theme_editor_plugin.cpp msgid "Filter the list of types or create a new custom type:" -msgstr "" +msgstr "Filtrar la lista de tipos o crea un nuevo tipo personalizado:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Available Node-based types:" -msgstr "Perfiles Disponibles:" +msgstr "Tipos disponibles basados en nodos:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Type name is empty!" -msgstr "El nombre del archivo está vacío." +msgstr "¡El nombre del tipo está vacío!" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Are you sure you want to create an empty type?" -msgstr "¿Estás seguro/a que quieres abrir más de un proyecto?" +msgstr "¿Estás seguro/a que querés crear un tipo vacío?" #: editor/plugins/theme_editor_plugin.cpp msgid "Confirm Item Rename" @@ -9184,6 +9196,20 @@ msgstr "" "de este tipo." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Añadir Tipo de Elemento" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Editar Tipo de Variable" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Cambiar Tipo Base" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Mostrar Valores por Defecto" @@ -9202,8 +9228,19 @@ msgid "Override all default type items." msgstr "Anular todos los elementos de tipo por defecto." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Añadir Tipo de Elemento" +#, fuzzy +msgid "Base Type" +msgstr "Cambiar Tipo Base" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9778,9 +9815,8 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS plugins are available." -msgstr "No hay addons de VCS disponibles." +msgstr "No hay plugins de VCS disponibles." #: editor/plugins/version_control_editor_plugin.cpp msgid "Error" @@ -9790,53 +9826,48 @@ msgstr "Error" msgid "" "Remote settings are empty. VCS features that use the network may not work." msgstr "" +"La configuración remota está vacía. Las funciones de VCS que utilizan la red " +"pueden no funcionar." #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided." -msgstr "No se indicó ningún nombre." +msgstr "No se proporcionó ningún mensaje de commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit" msgstr "Commit" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Staged Changes" -msgstr "Cambios de Shaders:" +msgstr "Cambios en Staging Area" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unstaged Changes" -msgstr "Cambios de Shaders:" +msgstr "Cambios Fuera de Staging Area" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit:" -msgstr "Commit" +msgstr "Commit:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Date:" -msgstr "" +msgstr "Fecha:" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Subtitle:" -msgstr "Subárbol" +msgstr "Subtítulo:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Do you want to remove the %s branch?" -msgstr "" +msgstr "¿Quieres eliminar la rama %s?" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Do you want to remove the %s remote?" -msgstr "¿Estás seguro/a que quieres abrir más de un proyecto?" +msgstr "¿Quieres eliminar el %s remoto?" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Apply" -msgstr "Aplicar Reset" +msgstr "Aplicar" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" @@ -9847,148 +9878,120 @@ msgid "Initialize" msgstr "Inicializar" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote Login" -msgstr "Quitar Punto" +msgstr "Inicio de Sesión Remoto" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Username" -msgstr "Renombrar" +msgstr "Nombre de usuario" #: editor/plugins/version_control_editor_plugin.cpp msgid "Password" -msgstr "" +msgstr "Contraseña" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Public Key Path" -msgstr "" +msgstr "Ruta de la clave pública SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "Select SSH public key path" -msgstr "" +msgstr "Selecciona la ruta de la clave pública SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Private Key Path" -msgstr "" +msgstr "Ruta de la Clave Privada SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "Select SSH private key path" -msgstr "" +msgstr "elecciona la ruta de la clave privada SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Passphrase" -msgstr "" +msgstr "Contraseña SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect new changes" msgstr "Detectar nuevos cambios" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Discard all changes" -msgstr "¿Cerrar y guardar cambios?" +msgstr "Descartar todos los cambios" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage all changes" -msgstr "Guardando cambios locales..." +msgstr "Pasar todos los cambios al area de staging." #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unstage all changes" -msgstr "Cambios de Material:" +msgstr "Quitar todos los cambios del area de staging" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Message" -msgstr "Commitear Cambios" +msgstr "Mensaje de Commit" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit Changes" msgstr "Commitear Cambios" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit List" -msgstr "Commit" +msgstr "Lista de Commits" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit list size" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" +msgstr "Tamaño de la lista de commits" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Branches" -msgstr "Coincidencias:" +msgstr "Branches" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Create New Branch" -msgstr "Crear Proyecto Nuevo" +msgstr "Crear un Nuevo Branch" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remove Branch" -msgstr "Quitar pista de animación" +msgstr "Eliminar Branch" #: editor/plugins/version_control_editor_plugin.cpp msgid "Branch Name" -msgstr "" +msgstr "Nombre del Branch" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remotes" -msgstr "Remoto" +msgstr "Remotes" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Create New Remote" -msgstr "Crear Proyecto Nuevo" +msgstr "Crear un Nuevo Remote" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remove Remote" -msgstr "Remover Item" +msgstr "Eliminar Remote" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote Name" -msgstr "Remoto " +msgstr "Nombre del Remote" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote URL" -msgstr "Remoto " +msgstr "URL del Remote" #: editor/plugins/version_control_editor_plugin.cpp msgid "Fetch" -msgstr "" +msgstr "Fetch" #: editor/plugins/version_control_editor_plugin.cpp msgid "Pull" -msgstr "" +msgstr "Pull" #: editor/plugins/version_control_editor_plugin.cpp msgid "Push" -msgstr "" +msgstr "Push" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Force Push" -msgstr "Mesh de Origen:" +msgstr "Forzar Push" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" @@ -10008,22 +10011,19 @@ msgstr "Cambio de Tipo" #: editor/plugins/version_control_editor_plugin.cpp msgid "Unmerged" -msgstr "" +msgstr "Sin mergear" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "View:" -msgstr "Vista" +msgstr "Vista:" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Split" -msgstr "Partir Path" +msgstr "Dividida" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unified" -msgstr "Modificado/s" +msgstr "Unificada" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" @@ -12184,6 +12184,10 @@ msgid "" "To save this branch into its own scene, open the original scene, right click " "on this branch, and select \"Save Branch as Scene\"." msgstr "" +"No se puede guardar una rama que es hija de una escena ya instanciada.\n" +"Para guardar esta rama en su propia escena, abrí la escena original, hacé " +"click con el botón derecho del mouse en esta rama y seleccioná \"Guardar " +"Rama como Escena\"." #: editor/scene_tree_dock.cpp msgid "" @@ -12191,6 +12195,10 @@ msgid "" "To save this branch into its own scene, open the original scene, right click " "on this branch, and select \"Save Branch as Scene\"." msgstr "" +"No se puede guardar una rama que forma parte de una escena heredada.\n" +"Para guardar esta rama en la propia escena, abre la escena original, hacé " +"clic con el botón derecho en esta rama y seleccioná \"Guardar Rama como " +"Escena\"." #: editor/scene_tree_dock.cpp msgid "Save New Scene As..." @@ -12696,6 +12704,11 @@ msgid "Stack Frames" msgstr "Frames del Stack" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrar tiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -12869,14 +12882,12 @@ msgid "Set Occluder Sphere Position" msgstr "Establecer Posición de la Esfera de Oclusión" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Establecer Posición del Portal Point" +msgstr "Establecer Posición del Polígono Oclusor" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Setear Posición de Punto de Curva" +msgstr "Establecer Posición del Punto del Agujero Oclusor" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -13591,38 +13602,36 @@ msgid "Edit Member" msgstr "Editar Miembros" #: modules/visual_script/visual_script_expression.cpp -#, fuzzy msgid "Expression" -msgstr "Establecer expresión" +msgstr "Expresión" #: modules/visual_script/visual_script_flow_control.cpp msgid "Return" -msgstr "" +msgstr "Retornar" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Condition" -msgstr "animación" +msgstr "Condición" #: modules/visual_script/visual_script_flow_control.cpp msgid "if (cond) is:" -msgstr "" +msgstr "if (cond) is:" #: modules/visual_script/visual_script_flow_control.cpp msgid "While" -msgstr "" +msgstr "Mientras" #: modules/visual_script/visual_script_flow_control.cpp msgid "while (cond):" -msgstr "" +msgstr "while (cond):" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator" -msgstr "" +msgstr "Iterador" #: modules/visual_script/visual_script_flow_control.cpp msgid "for (elem) in (input):" -msgstr "" +msgstr "for (elem) in (input):" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -13638,79 +13647,71 @@ msgstr "El iterador se volvió inválido: " #: modules/visual_script/visual_script_flow_control.cpp msgid "Sequence" -msgstr "" +msgstr "Secuencia" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "in order:" -msgstr "Renombrar carpeta:" +msgstr "en orden:" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Switch" -msgstr "Cabeceo:" +msgstr "Switch" #: modules/visual_script/visual_script_flow_control.cpp msgid "'input' is:" -msgstr "" +msgstr "'input' is:" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Type Cast" -msgstr "Tipos:" +msgstr "Casteo de Tipo" #: modules/visual_script/visual_script_flow_control.cpp msgid "Is %s?" -msgstr "" +msgstr "¿Es %s?" #: modules/visual_script/visual_script_func_nodes.cpp msgid "On %s" -msgstr "" +msgstr "On %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "On Self" -msgstr "Propio" +msgstr "On Self" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Subtract %s" -msgstr "En el carácter %s" +msgstr "Restar %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Multiply %s" -msgstr "" +msgstr "Multiplicar %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Divide %s" -msgstr "" +msgstr "Dividir %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Mod %s" -msgstr "Agregar %s" +msgstr "Mod %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "ShiftLeft %s" -msgstr "Asignar %s" +msgstr "ShiftLeft %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "ShiftRight %s" -msgstr "" +msgstr "ShiftRight %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "BitAnd %s" -msgstr "Agregar %s" +msgstr "BitAnd %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitOr %s" -msgstr "" +msgstr "BitOr %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitXor %s" -msgstr "" +msgstr "BitXor %s" #: modules/visual_script/visual_script_func_nodes.cpp #: modules/visual_script/visual_script_nodes.cpp @@ -13735,19 +13736,16 @@ msgid "Invalid index property name '%s' in node %s." msgstr "Nombre de propiedad índice '%s' inválido en nodo %s." #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Emit %s" -msgstr "Asignar %s" +msgstr "Emitir %s" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Function" -msgstr "Funciones" +msgstr "Función" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Compose Array" -msgstr "Redimensionar Array" +msgstr "Componer Array" #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " @@ -13759,7 +13757,7 @@ msgstr ": Argumentos inválidos: " #: modules/visual_script/visual_script_nodes.cpp msgid "a if cond, else b" -msgstr "" +msgstr "a if cond, else b" #: modules/visual_script/visual_script_nodes.cpp msgid "VariableGet not found in script: " @@ -13770,64 +13768,52 @@ msgid "VariableSet not found in script: " msgstr "VariableSet no encontrado en el script: " #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Preload" -msgstr "Volver a Cargar" +msgstr "Preload" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Index" -msgstr "Z Index" +msgstr "Obtener Índice" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Set Index" -msgstr "Z Index" +msgstr "Establecer Índice" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Global Constant" -msgstr "Constante" +msgstr "Constante Global" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Class Constant" -msgstr "Constante" +msgstr "Constante Global" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Basic Constant" -msgstr "Constante" +msgstr "Constante Básica" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Math Constant" -msgstr "Constante" +msgstr "Constante Matemática" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Engine Singleton" -msgstr "Activar Singleton GDNative" +msgstr "Obtener Engine Singleton" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Scene Node" -msgstr "Nodo TimeSeek" +msgstr "Obtener Nodo de Escena" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Scene Tree" -msgstr "Edición de Árbol de Escenas" +msgstr "Obtener Árbol de Escenas" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Self" -msgstr "Propio" +msgstr "Obtener Self" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "CustomNode" -msgstr "Cortar Nodos" +msgstr "CustomNode" #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." @@ -13844,33 +13830,28 @@ msgstr "" "(error)." #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "SubCall" -msgstr "Llamadas" +msgstr "SubCall" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Construct %s" -msgstr "Constantes" +msgstr "Construir %s" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Local Var" -msgstr "Usar Espacio Local" +msgstr "Obtener Var local" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Set Local Var" -msgstr "Usar Espacio Local" +msgstr "Establecer Var Local" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Action %s" -msgstr "Acción" +msgstr "Acción %s" #: modules/visual_script/visual_script_nodes.cpp msgid "Deconstruct %s" -msgstr "" +msgstr "Deconstruir %s" #: modules/visual_script/visual_script_property_selector.cpp msgid "Search VisualScript" @@ -13878,40 +13859,35 @@ msgstr "Buscar en VisualScript" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Yield" -msgstr "" +msgstr "Yield" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" -msgstr "" +msgstr "Esperar" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Next Frame" -msgstr "Mover Fotograma" +msgstr "Siguiente Fotograma" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Next Physics Frame" msgstr "Frames de Física %" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "%s sec(s)" -msgstr "" +msgstr "%s seg(s)" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "WaitSignal" -msgstr "Señal" +msgstr "WaitSignal" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "WaitNodeSignal" -msgstr "Señal" +msgstr "WaitNodeSignal" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "WaitInstanceSignal" -msgstr "Instancia" +msgstr "WaitInstanceSignal" #: platform/android/export/export_plugin.cpp msgid "Package name is missing." @@ -14055,9 +14031,10 @@ msgstr "Nombre de paquete inválido:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"El módulo \"GodotPaymentV3\" incluido en el ajuste de proyecto \"android/" -"modules\" es inválido (cambiado en Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14324,166 +14301,167 @@ msgstr "Error al iniciar el servidor HTTP:" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "No se puede obtener acceso al sistema de archivos." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "No se pudo obtener el hash de Info.plist." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Nombre de proyecto Inválido." +msgstr "Info.plist no válido, sin nombre de exe." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Info.plist no válido, sin ID de paquete." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Geometría inválida, no es posible crear un polígono." +msgstr "Info.plist no válido, no se puede cargar." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "No se pudo crear la carpeta." +msgstr "No se pudo crear la subcarpeta \"%s\"." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "No se pudo extraer el binario delgado." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Ruta base inválida." +msgstr "Formato binario no válido." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Ya está firmado!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "Fallo al cargar recurso." +msgstr "No se pudieron procesar los recursos anidados." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "No se pudo crear la subcarpeta _CodeSignature." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "Fallo al cargar recurso." +msgstr "No se pudo obtener el hash de CodeResources." #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "Extensión inválida." +msgstr "Archivo de entitlements no válido." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Extensión inválida." +msgstr "Archivo ejecutable no válido." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "No se puede cambiar el tamaño del comando de carga de la firma." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "No se pudo crear el binario gordo." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Tipo de paquete desconocido." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Tipo de objeto desconocido." #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." msgstr "" +"Nota: El proceso de notarización generalmente toma menos de una hora. Cuando " +"se complete el proceso, recibirás un correo electrónico." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Podés verificar el progreso manualmente abriendo una Terminal y ejecutando " +"el siguiente comando:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Ejecutá el siguiente comando para engrapar el boleto de certificación " +"notarial a la aplicación exportada (opcional):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "No se encontraron íconos." +msgstr "No se encontró identidad." #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "Creando Miniatura" +msgstr "Crearndo paquete de aplicaciones" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"No se pudo encontrar la plantilla APK para exportar:\n" -"%s" +msgstr "No se pudo encontrar la aplicación de plantilla para exportar:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"Los enlaces simbólicos relativos no son compatibles con este sistema " +"operativo, ¡el proyecto exportado podría estar dañado!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." msgstr "" +"Plantilla binaria solicitada '%s' no encontrada. Es posible que falte en el " +"archivo de plantillas." #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "Creando PKG" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"Las aplicaciones firmadas ad-hoc requieren el entitlement 'Disable Library " +"Validation' para cargar bibliotecas dinámicas." #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "Firmando código del paquete" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Creando DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "Firmando código de DMG" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Creando ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"La notarización requiere que la aplicación se archive primero, seleccioná el " +"formato de exportación DMG o ZIP en su lugar." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Enviando archivo para notarización" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14494,31 +14472,37 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Advertencia: El \"codesign\" incorporado está seleccionado en la " +"configuración del editor. La firma de código se limita únicamente a la firma " +"ad-hoc." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Advertencia: las herramientas de línea de comandos de Xcode no están " +"instaladas, utilizando el \"codesign\" incorporado. La firma de código se " +"limita únicamente a la firma ad-hoc." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." msgstr "" +"Notarización: No se admite la certificación notarial con una firma ad-hoc." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "Notarización: se requiere firma de código." +msgstr "Notarización: Se requiere la firma del código para la notarización." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "Notarización: se requiere hardened runtime." +msgstr "" +"Notarización: se requiere hardened runtime para la certificación notarial." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "Notarización: se requiere hardened runtime." +msgstr "" +"Notarización: Se requienre Timestamp runtime para la certificación notarial." #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14533,57 +14517,75 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Advertencia: La notarización está deshabilitada. Gatekeeper bloqueará el " +"proyecto exportado si se descarga de una fuente desconocida." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"La firma de código está deshabilitada. El proyecto exportado no se ejecutará " +"en Mac con Gatekeeper habilitado y Mac con tecnología Apple Silicon." #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" msgstr "" +"Hardened Runtime no es compatible con la firma ad-hoc y se desactivará!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" -msgstr "" +msgstr "Timestamping no es compatible con la firma ad-hoc y se desactivará!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Advertencia: la notarización no es compatible con este sistema operativo. " +"Gatekeeper bloqueará el proyecto exportado si se descarga de una fuente " +"desconocida." #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Privacidad: el acceso al micrófono está habilitado, pero no se especifica la " +"descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Privacidad: el acceso a la cámara está habilitado, pero no se especifica la " +"descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Privacidad: el acceso a la información de ubicación está habilitado, pero no " +"se especifica la descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Privacidad: el acceso a la libreta de direcciones está habilitado, pero no " +"se especifica la descripción de uso." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Privacidad: el acceso al calendario está habilitado, pero no se especifica " +"la descripción de uso." #: platform/osx/export/export.cpp msgid "" @@ -14661,19 +14663,16 @@ msgid "" msgstr "" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Ruta inválida." +msgstr "Ruta de icono no válida:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Extensión inválida." +msgstr "Versión de archivo inválida:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "GUID de producto inválido." +msgstr "versión de producto inválida." #: scene/2d/animated_sprite.cpp msgid "" diff --git a/editor/translations/et.po b/editor/translations/et.po index 9b70c32d20..6684f4bbb6 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -1456,6 +1456,11 @@ msgstr "Lae vaikimise siini paigutus." msgid "Create a new Bus Layout." msgstr "Loo uus siini paigutus." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Ava heliliinide paigutus" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Vigane nimi." @@ -2859,7 +2864,7 @@ msgstr "" msgid "Add a new scene." msgstr "Lisa uus stseen." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Stseen" @@ -5531,6 +5536,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7986,7 +7995,12 @@ msgid "Cinematic Preview" msgstr "Kinemaatiline eelvaade" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8893,6 +8907,11 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Ressurss" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8941,6 +8960,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Laadi vaikimisi" @@ -8959,7 +8990,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Muuda tüüpi" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9650,18 +9692,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Vasted:" @@ -12245,6 +12275,11 @@ msgid "Stack Frames" msgstr "Virnakaadrid" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtreeri sõlmed" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profileerija" @@ -13557,6 +13592,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/eu.po b/editor/translations/eu.po index 2918926ac7..d315bb8d1c 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -1464,6 +1464,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2828,7 +2832,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5505,6 +5509,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Hautatu txantiloi fitxategia" @@ -7944,7 +7952,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8848,6 +8861,11 @@ msgstr "Bilatu ordezko baliabidea:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Baliabidea" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Inportatu azala" @@ -8897,6 +8915,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Inportatu profila(k)" @@ -8915,7 +8945,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Kide mota" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9600,18 +9641,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12190,6 +12219,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13494,6 +13527,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/extract.py b/editor/translations/extract.py index 2594629e5c..65d1341e9e 100755 --- a/editor/translations/extract.py +++ b/editor/translations/extract.py @@ -2,6 +2,7 @@ import fnmatch import os +import re import shutil import subprocess import sys @@ -31,6 +32,15 @@ for root, dirnames, filenames in os.walk("."): matches.sort() +remaps = {} +remap_re = re.compile(r'capitalize_string_remaps\["(.+)"\] = "(.+)";') +with open("editor/editor_property_name_processor.cpp") as f: + for line in f: + m = remap_re.search(line) + if m: + remaps[m.group(1)] = m.group(2) + + unique_str = [] unique_loc = {} ctx_group = {} # Store msgctx, msg, and locations. @@ -53,6 +63,43 @@ msgstr "" """ +# Regex "(?P<name>(?:[^"\\]|\\.)*)" creates a group named `name` that matches a string. +message_patterns = { + re.compile(r'RTR\("(?P<message>(?:[^"\\]|\\.)*)"(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)'): False, + re.compile(r'TTR\("(?P<message>(?:[^"\\]|\\.)*)"(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)'): False, + re.compile(r'TTRC\("(?P<message>(?:[^"\\]|\\.)*)"\)'): False, + re.compile( + r'TTRN\("(?P<message>(?:[^"\\]|\\.)*)", "(?P<plural_message>(?:[^"\\]|\\.)*)",[^,)]+?(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)' + ): False, + re.compile( + r'RTRN\("(?P<message>(?:[^"\\]|\\.)*)", "(?P<plural_message>(?:[^"\\]|\\.)*)",[^,)]+?(?:, "(?P<context>(?:[^"\\]|\\.)*)")?\)' + ): False, + re.compile(r'_initial_set\("(?P<message>[^"]+?)",'): True, + re.compile(r'GLOBAL_DEF(?:_RST)?\("(?P<message>[^".]+?)",'): True, + re.compile(r'EDITOR_DEF(?:_RST)?\("(?P<message>[^"]+?)",'): True, + re.compile(r'ADD_PROPERTY\(PropertyInfo\(Variant::[A-Z]+,\s*"(?P<message>[^"]+?)",'): True, + re.compile(r'ADD_GROUP\("(?P<message>[^"]+?)",'): False, +} + + +# See String::camelcase_to_underscore(). +capitalize_re = re.compile(r"(?<=\D)(?=\d)|(?<=\d)(?=\D([a-z]|\d))") + + +def _process_editor_string(name): + # See String::capitalize(). + # fmt: off + capitalized = " ".join( + part.title() + for part in capitalize_re.sub("_", name).replace("_", " ").split() + ) + # fmt: on + # See EditorStringProcessor::process_string(). + for key, value in remaps.items(): + capitalized = capitalized.replace(key, value) + return capitalized + + def _write_message(msgctx, msg, msg_plural, location): global main_po main_po += "#: " + location + "\n" @@ -180,11 +227,6 @@ def _extract_translator_comment(line, is_block_translator_comment): def process_file(f, fname): - - global main_po, unique_str, unique_loc - - patterns = ['RTR("', 'TTR("', 'TTRC("', 'TTRN("', 'RTRN("'] - l = f.readline() lc = 1 reading_translator_comment = False @@ -207,86 +249,58 @@ def process_file(f, fname): if not reading_translator_comment: translator_comment = translator_comment[:-1] # Remove extra \n at the end. - idx = 0 - pos = 0 - - while not reading_translator_comment and 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: - idx += 1 - pos = 0 - 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) - - # Write translator comment. - _write_translator_comment(msgctx, msg, translator_comment) + if not reading_translator_comment: + for pattern, is_property_path in message_patterns.items(): + for m in pattern.finditer(l): + location = os.path.relpath(fname).replace("\\", "/") + if line_nb: + location += ":" + str(lc) + + groups = m.groupdict("") + msg = groups.get("message", "") + msg_plural = groups.get("plural_message", "") + msgctx = groups.get("context", "") + + if is_property_path: + for part in msg.split("/"): + _add_message(_process_editor_string(part), msg_plural, msgctx, location, translator_comment) + else: + _add_message(msg, msg_plural, msgctx, location, translator_comment) translator_comment = "" - 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 +def _add_message(msg, msg_plural, msgctx, location, translator_comment): + global main_po, unique_str, unique_loc + + # Write translator comment. + _write_translator_comment(msgctx, msg, translator_comment) + translator_comment = "" + + 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) + + print("Updating the editor.pot template...") for fname in matches: diff --git a/editor/translations/fa.po b/editor/translations/fa.po index e75b0277a6..d1c2a87acc 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -1492,6 +1492,11 @@ msgstr "طرح پیش فرض اتوبوس را بارگیری کنید." msgid "Create a new Bus Layout." msgstr "طرح جدید اتوبوس ایجاد کنید." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "چیدمان اتوبوس صوتی را باز کنید" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "نام نامعتبر." @@ -2870,7 +2875,7 @@ msgstr "" msgid "Add a new scene." msgstr "افزودن صحنه جدید." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "صحنه" @@ -5698,6 +5703,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "انتخاب پرونده قالب" @@ -8286,7 +8295,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9249,6 +9263,11 @@ msgstr "منبع جایگزینی را جستجو کن:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "تغییر نام منبع" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "عضوها" @@ -9302,6 +9321,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "افزودن مورد" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "متغیر را ویرایش کن:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "تغییر نوع پایه" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "بارگیری پیش فرض" @@ -9319,8 +9353,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "افزودن مورد" +msgid "Base Type" +msgstr "تغییر نوع پایه" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -10076,18 +10120,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "تطبیقها:" @@ -12807,6 +12839,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "صافی کردن گرهها" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14206,6 +14243,9 @@ msgstr "نام نامعتبر." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/fi.po b/editor/translations/fi.po index bd2dd36308..a1d3ed6b5a 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -17,7 +17,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-04 13:45+0000\n" +"PO-Revision-Date: 2022-02-16 16:36+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -1480,6 +1480,11 @@ msgstr "Lataa väylän oletusasettelu." msgid "Create a new Bus Layout." msgstr "Luo uusi ääniväylän asettelu." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Avaa ääniväylän asettelu" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Virheellinen nimi." @@ -2919,7 +2924,7 @@ msgstr "Käytä häiriötöntä tilaa." msgid "Add a new scene." msgstr "Lisää uusi skene." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Skene" @@ -3293,14 +3298,12 @@ msgid "Update Continuously" msgstr "Päivitä jatkuvasti" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Päivitä kun muuttuu" +msgstr "Päivitä kaikki muutokset" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Materiaalimuutokset:" +msgstr "Päivitä olennaiset muutokset" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4075,6 +4078,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Editori ei tunnista tätä tiedostopäätettä.\n" +"Jos haluat nimetä tiedoston uudelleen joka tapauksessa, tee se " +"käyttöjärjestelmäsi tiedostonhallintaa käyttäen.\n" +"Sen jälkeen, kun tiedosto on nimetty tuntemattomalla päätteellä, sitä ei " +"enää näytetä editorissa." #: editor/filesystem_dock.cpp msgid "" @@ -5693,6 +5701,10 @@ msgid "Bake Lightmaps" msgstr "Kehitä Lightmapit" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Valitse lightmapin kehitystiedosto:" @@ -8179,7 +8191,13 @@ msgid "Cinematic Preview" msgstr "Elokuvallinen esikatselu" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Ei käytettävissä GLES2-renderöijää käytettäessä." #: editor/plugins/spatial_editor_plugin.cpp @@ -9073,6 +9091,11 @@ msgid "Select Another Theme Resource:" msgstr "Valitse toinen teemaresurssi:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Nimeä resurssi uudelleen" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Toinen teema" @@ -9121,6 +9144,20 @@ msgstr "" "päivittää kaikkien muiden tämän tyyppisten tyylilaatikoiden ominaisuuksia." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Lisää osan tyyppi" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Aseta muuttujan tyyppi" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Muuta kantatyyppiä" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Näytä oletus" @@ -9137,8 +9174,19 @@ msgid "Override all default type items." msgstr "Ylikirjoita kaikki oletustyypin osat." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Lisää osan tyyppi" +#, fuzzy +msgid "Base Type" +msgstr "Muuta kantatyyppiä" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9844,18 +9892,6 @@ msgid "Commit list size" msgstr "Vahvistuslistan koko" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Haarat" @@ -12599,6 +12635,11 @@ msgid "Stack Frames" msgstr "Pinokehykset" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Suodata laattoja" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiloija" @@ -12772,14 +12813,12 @@ msgid "Set Occluder Sphere Position" msgstr "Aseta peittopallon sijainti" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Aseta portaalin pisteen sijainti" +msgstr "Aseta peittopolygonin pisteen sijainti" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Aseta käyräpisteen sijainti" +msgstr "Aseta peittoreiän pisteen sijainti" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -13916,9 +13955,10 @@ msgstr "Virheellinen paketin nimi:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"\"android/modules\" projektiasetukseen on liitetty virheellinen " -"\"GodotPaymentV3\" moduuli (muuttunut Godotin versiossa 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14187,166 +14227,167 @@ msgstr "Virhe käynnistettäessä HTTP-palvelinta:" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "Ei saada pääsyä tiedostojärjestelmään." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "Info.plist hajautusarvoa ei saada." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Virheellinen projektin nimi." +msgstr "Virheellinen Info.plist, exe-nimi puuttuu." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Virheellinen Info.plist, bundle id puuttuu." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Virheellinen geometria, ei voida luoda polygonia." +msgstr "Virheellinen Info.plist, ei voida ladata." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "Kansiota ei voitu luoda." +msgstr "Alikansion \"%s\" luonti epäonnistui." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "Binäärin ohennus epäonnistui." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Virheellinen kantapolku." +msgstr "Virheellinen binäärimuoto." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Jo allekirjoitettu!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "Resurssin lataaminen epäonnistui." +msgstr "Sisäkkäisten resurssien käsittely epäonnistui." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "_CodeSignature alikansion luonti epäonnistui." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "Resurssin lataaminen epäonnistui." +msgstr "CodeResources hajautusarvon saanti epäonnistui." #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "Virheellinen tiedostopääte." +msgstr "Virheellinen oikeutustiedosto (entitlements)." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Virheellinen tiedostopääte." +msgstr "Virheellinen käynnistystiedosto." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "Ei voida muuttaa allekirjoituksen latauskäskyn kokoa." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "Laajennetun binäärin luonti epäonnistui." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Tuntematon bundle-tyyppi." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Tuntematon objektityyppi." #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." msgstr "" +"Huom: Notarisointiprosessi kestää yleensä alle tunnin. Kun käsittely on " +"valmis, saat sähköpostin." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Voit tarkistaa edistymisen manuaalisesti avaamalla Terminaalin ja " +"suorittamalla seuraavan komennon:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Suorita seuraava komento nitoaksesi notarisointilipukkeen vietyyn " +"sovellukseen (vapaavalintainen):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "Kuvakkeita ei löytynyt." +msgstr "Identiteettiä ei löytynyt." #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "Luodaan pienoiskuvaa" +msgstr "Luodaan app bundlea" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"Ei löydetty APK-vientimallia vientiä varten:\n" -"%s" +msgstr "Ei löydetty app-vientimallia vientiä varten:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"Suhteelliset symboliset linkit eivät ole tuettuja tässä " +"käyttöjärjestelmässä, viety projekti saattaa olla rikkinäinen!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." msgstr "" +"Pyydettyä binäärivientimallia '%s' ei löydy. Se saattaa puuttua " +"vientimalliesi arkistosta." #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "Tehdään PKG" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"Ad-hoc allekirjoitetut sovellukset tarvitsevat 'Disable Library Validation' " +"oikeutuksen ladatakseen dynaamisia kirjastoja." #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "Allekirjoitetaan bundle-koodi" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Tehdään DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "Allekirjoitetaan DMG-koodi" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Tehdään ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"Notarisointi edellyttää, että sovellus on ensin pakattu; valitse sen sijaan " +"DMG- tai ZIP-vientimuoto." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Lähetetään tiedostopaketti notarisointia varten" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14357,31 +14398,33 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Varoitus: Editorin asetuksissa on valittuna sisäänrakennettu \"codesign\". " +"Koodin allekirjoitus on rajoitettu vain ad-hoc allekirjoituksiin." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Varoitus: Xcode-komentorivityökaluja ei ole asennettu, käytetään " +"sisäänrakennettua \"codesign\"-työkalua. Koodin allekirjoitus on rajoitettu " +"vain ad-hoc allekirjoituksiin." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." -msgstr "" +msgstr "Notarisointi: notarisointi ad-hoc allekirjoituksella ei ole tuettua." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "Notarisointi: koodin allekirjoitus tarvitaan." +msgstr "Notarisointi: koodin allekirjoitus tarvitaan notarisointia varten." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "Notarisointi: hardened runtime tarvitaan." +msgstr "Notarisointi: hardened runtime tarvitaan notarisointia varten." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "Notarisointi: hardened runtime tarvitaan." +msgstr "Notarisointi: timestamp runtime tarvitaan notarisointia varten." #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14396,63 +14439,86 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Varoitus: notarisointi on pois päältä. Gatekeeper estää viedyn projektin " +"käytön, jos se on ladattu tuntemattomasta lähteestä." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"Koodin allekirjoitus on pois päältä. Viedyt projektit eivät toimi Maceillä, " +"joissa on Gatekeeper päällä, eivätkä Apple Silicon suorittimia käyttävillä " +"Maceillä." #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" msgstr "" +"Hardened Runtime ei ole yhteensopiva ad-hoc allekirjoituksen kanssa ja " +"kytketään pois päältä!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" msgstr "" +"Timestamping ei ole yhteensopiva ad-hoc allekirjoituksen kanssa ja kytketään " +"pois päältä!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Varoitus: notarisointi ei ole tuettu tästä käyttöjärjestelmästä. Gatekeeper " +"estää viedyn projektin käytön, jos se on ladattu tuntemattomasta lähteestä." #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Yksityisyys: mikrofonin käyttö on sallittu, mutta käyttökuvausta ei ole " +"määritelty." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Yksityisyys: kameran käyttö on sallittu, mutta käyttökuvausta ei ole " +"määritelty." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Yksityisyys: sijaintitiedon käyttö on sallittu, mutta käyttökuvausta ei ole " +"määritelty." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Yksityisyys: osoitekirjan käyttö on sallittu, mutta käyttökuvausta ei ole " +"määritelty." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Yksityisyys: kalenterin käyttö on sallittu, mutta käyttökuvausta ei ole " +"määritelty." #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"Yksityisyys: kuvakirjaston käyttö on sallittu, mutta käyttökuvausta ei ole " +"määritelty." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14513,21 +14579,20 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"rcedit-työkalu täytyy olla konfiguroituna editorin asetuksissa (Export > " +"Windows > Rcedit) ikonin tai sovelluksen tietojen muuttamiseksi." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Virheellinen polku." +msgstr "Virheellinen ikonin polku:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Virheellinen tiedostopääte." +msgstr "Virheellinen tiedoston versio:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "Tuotteen GUID (yleisesti yksilöllinen tunniste) on virheellinen." +msgstr "Virheellinen tuotteen versio:" #: scene/2d/animated_sprite.cpp msgid "" @@ -15262,7 +15327,6 @@ msgstr "" "Tämä solmu on poistettu käytöstä. Käytä sen sijaan AnimationTree solmua." #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 1cab78fd72..dd6e9aaa68 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -1448,6 +1448,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2803,7 +2807,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5459,6 +5463,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7897,7 +7905,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8780,6 +8793,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8826,6 +8843,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8842,7 +8871,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9525,18 +9564,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12098,6 +12125,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13393,6 +13424,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 03dff89a24..37752a1a22 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -40,7 +40,7 @@ # Tommy Melançon-Roy <tommel1234@hotmail.com>, 2017-2018. # Willow <theotimefd@aol.com>, 2018. # Xananax <xananax@yelostudio.com>, 2017-2018. -# Perrier Mathis <mathis.perrier73@gmail.com>, 2018. +# Perrier Mathis <mathis.perrier73@gmail.com>, 2018, 2022. # Ewan Lehnebach <ewan.lehnebach@gmail.com>, 2018. # Hugo Locurcio <hugo.locurcio@hugo.pro>, 2018, 2019, 2020, 2021. # Grigore Antoniuc <grisa181@gmail.com>, 2018. @@ -70,7 +70,7 @@ # Camille Mohr-Daurat <pouleyketchoup@gmail.com>, 2019. # Pierre Stempin <pierre.stempin@gmail.com>, 2019. # Pierre Caye <pierrecaye@laposte.net>, 2020, 2021, 2022. -# Kevin Bouancheau <kevin.bouancheau@gmail.com>, 2020. +# Kevin Bouancheau <kevin.bouancheau@gmail.com>, 2020, 2022. # LaurentOngaro <laurent@gameamea.com>, 2020. # Julien Humbert <julroy67@gmail.com>, 2020. # Nathan <bonnemainsnathan@gmail.com>, 2020, 2021, 2022. @@ -88,13 +88,14 @@ # Maxime Leroy <lisacintosh@gmail.com>, 2022. # Adi-df <adidf-web@laposte.net>, 2022. # MinusKube <minuskube@gmail.com>, 2022. +# Alexandre <alexandre.blanquero00@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-10 07:50+0000\n" -"Last-Translator: Maxime Leroy <lisacintosh@gmail.com>\n" +"PO-Revision-Date: 2022-03-04 08:19+0000\n" +"Last-Translator: Alexandre <alexandre.blanquero00@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -102,7 +103,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.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1571,6 +1572,11 @@ msgstr "Charger l'agencement de transport par défaut." msgid "Create a new Bus Layout." msgstr "Créer une nouvel agencement de tranport." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Ouvrir une disposition de bus audio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nom invalide." @@ -3036,7 +3042,7 @@ msgstr "Basculer en mode sans distraction." msgid "Add a new scene." msgstr "Ajouter une nouvelle scène." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scène" @@ -3414,14 +3420,13 @@ msgid "Update Continuously" msgstr "Mettre à jour en continu" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Mettre à jour quand modifié" +msgstr "Mettre à jour les changements" #: editor/editor_node.cpp #, fuzzy msgid "Update Vital Changes" -msgstr "Changements de matériau :" +msgstr "Changements de matériau" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4206,6 +4211,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Cette extension de fichier n'est pas reconnue par l'éditeur.\n" +"Si vous voulez quand même le renommer, utilisez le gestionnaire de fichiers " +"de votre système d'exploitation.\n" +"Après avoir été renommé avec une extension inconnue, le fichier ne sera plus " +"affiché dans l'éditeur." #: editor/filesystem_dock.cpp msgid "" @@ -4848,7 +4858,7 @@ msgstr "Supprimer le polygone et le point" #: editor/plugins/animation_state_machine_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Animation" -msgstr "Ajouter une animation" +msgstr "Ajouter une Animation" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -5831,6 +5841,10 @@ msgid "Bake Lightmaps" msgstr "Précalculer les lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Sélectionnez le fichier de précalcul de lightmap :" @@ -8334,7 +8348,13 @@ msgid "Cinematic Preview" msgstr "Aperçu cinématographique" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Non disponible quand le moteur de rendu GLES2 est utilisé." #: editor/plugins/spatial_editor_plugin.cpp @@ -9239,6 +9259,11 @@ msgid "Select Another Theme Resource:" msgstr "Sélectionnez une autre ressource Theme :" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Renommer une ressource" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Autre thème" @@ -9288,6 +9313,20 @@ msgstr "" "appartenant à ce type." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Ajouter un item de type" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Définir type de variable" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Changer le type de base" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Afficher par défaut" @@ -9305,8 +9344,19 @@ msgid "Override all default type items." msgstr "Surcharge tous les items de type par défaut." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Ajouter un item de type" +#, fuzzy +msgid "Base Type" +msgstr "Changer le type de base" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -10013,18 +10063,6 @@ msgid "Commit list size" msgstr "Valider la taille des listes" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Branches" @@ -12793,6 +12831,11 @@ msgid "Stack Frames" msgstr "Pile des appels" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrer les tuiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profileur" @@ -14128,9 +14171,10 @@ msgstr "Nom de paquet invalide :" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Module \"GodotPaymentV3\" invalide inclus dans le paramétrage du projet " -"\"android/modules\" (modifié dans Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14403,43 +14447,40 @@ msgstr "Erreur de démarrage du serveur HTTP :" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "Le système de fichiers ne peut être accédé." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "Le hachage de « Info.plist » n'a pu être récupéré." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Nom du projet invalide." +msgstr "« Info.plist » invalide, aucun nom d'exécutable." #: platform/osx/export/codesign.cpp +#, fuzzy msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "« Info.plist » invalide, aucun identifiant de bundle." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Géométrie invalide, impossible de créer le polygone." +msgstr "« Info.plist » invalide, n'a pu être chargé." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "Impossible de créer le dossier." +msgstr "Échec de création du sous-dossier « %s »." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." msgstr "" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Chemin de base invalide." +msgstr "Format binaire invalide." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Déjà signé !" #: platform/osx/export/codesign.cpp #, fuzzy @@ -14461,9 +14502,8 @@ msgid "Invalid entitlements file." msgstr "Extension invalide." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Extension invalide." +msgstr "Fichier exécutable invalide." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." @@ -14479,7 +14519,7 @@ msgstr "" #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Type d'objet inconnu." #: platform/osx/export/export.cpp msgid "" @@ -14500,9 +14540,8 @@ msgid "" msgstr "" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "Pas d'icônes trouvées." +msgstr "Aucune identité trouvée." #: platform/osx/export/export.cpp #, fuzzy @@ -14530,7 +14569,7 @@ msgstr "" #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "Création du PKG" #: platform/osx/export/export.cpp msgid "" @@ -14544,7 +14583,7 @@ msgstr "" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Création du DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" @@ -14552,7 +14591,7 @@ msgstr "" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Création du ZIP" #: platform/osx/export/export.cpp msgid "" @@ -14641,34 +14680,46 @@ msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Confidentialité : L'accès au microphone est actif, mais son usage n'a pas " +"été spécifié." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Confidentialité : L'accès à la caméra est actif, mais son usage n'a pas été " +"spécifié." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Confidentialité : L'accès au informations de positionnement est actif, mais " +"son usage n'a pas été spécifié." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Confidentialité : L'accès au carnet d'adresses est actif, mais son usage n'a " +"pas été spécifié." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Confidentialité : L'accès au calendrier est actif, mais son usage n'a pas " +"été spécifié." #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"Confidentialité : L'accès à la bibliothèque de photos est actif, mais son " +"usage n'a pas été spécifié." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14740,21 +14791,21 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"L'outil « rcedit » doit être configuré dans les préférences de l'éditeur " +"(Exporter > Windows > Rcedit) for modifier l'icône ou les informations de " +"l'application." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Chemin invalide." +msgstr "Chemin d'icône invalide :" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Extension invalide." +msgstr "Version de fichier invalide :" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "GUID produit invalide." +msgstr "Version du produit invalide :" #: scene/2d/animated_sprite.cpp msgid "" @@ -15508,14 +15559,13 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Ce nœud est désormais déprécié. Utilisez AnimationTree à la place." #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" "RMB: Remove preset" msgstr "" "Couleur : #%s\n" -"Clic gauche : Définir la couleur\n" +"Clic gauche : Appliquer la couleur\n" "Clic droit : Supprimer le préréglage" #: scene/gui/color_picker.cpp diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 4db0862314..734f2c1f82 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -1440,6 +1440,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2792,7 +2796,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5439,6 +5443,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7867,7 +7875,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8747,6 +8760,11 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Acmhainn" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8793,6 +8811,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8809,7 +8839,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9488,18 +9528,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12061,6 +12089,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Scagairí..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13354,6 +13387,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/gl.po b/editor/translations/gl.po index b88f8f0430..420ad5ebf3 100644 --- a/editor/translations/gl.po +++ b/editor/translations/gl.po @@ -1488,6 +1488,11 @@ msgstr "Cargar a disposición de Bus por defecto." msgid "Create a new Bus Layout." msgstr "Crear unha nova Disposición de Bus." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Abrir Disposición do Bus de Son" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nome inválido." @@ -2947,7 +2952,7 @@ msgstr "Act./Desact. modo sen distraccións." msgid "Add a new scene." msgstr "Engadir unha nova escena." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Escena" @@ -5684,6 +5689,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -8193,7 +8202,13 @@ msgid "Cinematic Preview" msgstr "Vista Previa Cinemática" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Non dispoñible cando se está usando o renderizador GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9137,6 +9152,11 @@ msgstr "Eliminar Recurso" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Renomear Recurso" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Importar Tema" @@ -9190,6 +9210,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Engadir Elemento" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Cambiar Tipo Base:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Cambiar Tipo Base:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Cargar Valores por Defecto" @@ -9208,8 +9243,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Engadir Elemento" +msgid "Base Type" +msgstr "Cambiar Tipo Base:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -9904,18 +9949,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Coincidencias:" @@ -12584,6 +12617,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrar sinais" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Analítica de Rendemento" @@ -13913,6 +13951,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/he.po b/editor/translations/he.po index c7966a9536..668cc67dd0 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -1480,6 +1480,11 @@ msgstr "טעינת בררת המחדל של פריסת אפיקי השמע." msgid "Create a new Bus Layout." msgstr "יצירת פריסת אפיקים חדשה." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "פתיחת פריסת אפיקי שמע" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "שם שגוי." @@ -2891,7 +2896,7 @@ msgstr "הפעל/בטל מצב ללא הסחות דעת." msgid "Add a new scene." msgstr "הוספת סצנה חדשה." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "סצנה" @@ -5692,6 +5697,10 @@ msgid "Bake Lightmaps" msgstr "אפיית Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "בחירת קובץ תבנית" @@ -8271,7 +8280,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9230,6 +9244,11 @@ msgstr "מחיקת משאב" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "שינוי שם משאב" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "ייבוא ערכת עיצוב" @@ -9283,6 +9302,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "קביעת סוג משתנה" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "שינוי סוג בסיס" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "טעינת בררת המחדל" @@ -9301,7 +9334,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "שינוי סוג בסיס" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -10053,18 +10097,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "התאמות:" @@ -12736,6 +12768,11 @@ msgid "Stack Frames" msgstr "מחסנית מסגרות" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "מאפייני פריט." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "מאפיין" @@ -14085,9 +14122,10 @@ msgstr "שם חבילה לא חוקי:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"מודול \"GodotPaymentV3\" לא חוקי נמצא בהגדרת המיזם " -"ב-\"אנדרואיד/מודולים\" (שינוי בגודו 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/hi.po b/editor/translations/hi.po index eb5c524b8a..6911744a46 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -1490,6 +1490,11 @@ msgstr "प्रायिक बस लेआउट लोड कीजिय msgid "Create a new Bus Layout." msgstr "नई बस लेआउट बनाइये." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "ऑडियो बस लेआउट खोलिये" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "अमान्य नाम." @@ -2915,7 +2920,7 @@ msgstr "व्याकुलता मुक्त मोड टॉगल।" msgid "Add a new scene." msgstr "एक नया दृश्य जोड़ें।" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "दृश्य" @@ -5659,6 +5664,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "टेम्पलेट फ़ाइल का चयन करें" @@ -8141,7 +8150,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9073,6 +9087,11 @@ msgid "Select Another Theme Resource:" msgstr "खोज रिप्लेसमेंट संसाधन:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "संसाधन" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -9123,6 +9142,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "प्रायिक लोड कीजिये" @@ -9141,7 +9172,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "%s का टाइप बदले" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9867,18 +9909,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "एक जैसा:" @@ -12503,6 +12533,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "स्क्रीनिंग सिग्नल" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13843,6 +13878,9 @@ msgstr "गलत फॉण्ट का आकार |" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 91849fe548..418c07c345 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -1460,6 +1460,11 @@ msgstr "Učitaj zadani Bus Izgled." msgid "Create a new Bus Layout." msgstr "Kreiraj novi Bus izgled." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Promijeni glasnoću zvučne sabirnice" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nevažeće ime." @@ -2821,7 +2826,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5489,6 +5494,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7934,7 +7943,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8825,6 +8839,11 @@ msgid "Select Another Theme Resource:" msgstr "Traži zamjenu resursa:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Resurs" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8874,6 +8893,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Promijeni vrstu baze:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Promijeni vrstu baze:" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Učitaj Zadano" @@ -8891,7 +8924,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Promijeni vrstu baze:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9582,18 +9626,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Podudaranja:" @@ -12170,6 +12202,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtriraj signale" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13473,6 +13510,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 85150bd14d..4a1d254c59 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -1498,6 +1498,11 @@ msgstr "Betölti az alapértelmezett Busz Elrendezést." msgid "Create a new Bus Layout." msgstr "Új Buszelrendezés létrehozása." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Hangbusz Elrendezés Megnyitása" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Érvénytelen név." @@ -2965,7 +2970,7 @@ msgstr "Zavarmentes mód váltása." msgid "Add a new scene." msgstr "Hozzáad egy új jelenetet." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Jelenet" @@ -5716,6 +5721,10 @@ msgid "Bake Lightmaps" msgstr "Fény Besütése" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Válasszon fénytérkép sablonfájlt:" @@ -8213,7 +8222,12 @@ msgid "Cinematic Preview" msgstr "Filmszerű előnézet" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9142,6 +9156,11 @@ msgstr "Erőforrás Törlése" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Erőforrás Átnevezése" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Téma Importálása" @@ -9196,6 +9215,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Elem Hozzáadása" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Alaptípus módosítása:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Alaptípus módosítása:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Alapértelmezett Betöltése" @@ -9214,8 +9248,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Elem Hozzáadása" +msgid "Base Type" +msgstr "Alaptípus módosítása:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -9908,18 +9952,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Egyezések:" @@ -12504,6 +12536,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Csempék szűrése" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13842,6 +13879,9 @@ msgstr "Érvénytelen csomagnév:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/id.po b/editor/translations/id.po index 6955f05f3a..775ab4d8c1 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -24,7 +24,7 @@ # Modeus Darksono <garuga17@gmail.com>, 2019. # Akhmad Zulfikar <azuldegratz@gmail.com>, 2020. # Ade Fikri Malihuddin <ade.fm97@gmail.com>, 2020. -# zephyroths <ridho.hikaru@gmail.com>, 2020, 2021. +# zephyroths <ridho.hikaru@gmail.com>, 2020, 2021, 2022. # Richard Urban <redasuio1@gmail.com>, 2020. # yusuf afandi <afandi.yusuf.04@gmail.com>, 2020. # Habib Rohman <revolusi147id@gmail.com>, 2020. @@ -40,8 +40,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-11-19 08:43+0000\n" -"Last-Translator: Brian <brian@brianthe.dev>\n" +"PO-Revision-Date: 2022-02-23 17:54+0000\n" +"Last-Translator: zephyroths <ridho.hikaru@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" @@ -49,7 +49,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.9.1-dev\n" +"X-Generator: Weblate 4.11-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -352,9 +352,8 @@ msgid "Duplicate Key(s)" msgstr "Duplikat Key" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add RESET Value(s)" -msgstr "Tambah %d Frame" +msgstr "Tambahkan Nilai RESET" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" @@ -1507,6 +1506,11 @@ msgstr "Muat default Layout Bus." msgid "Create a new Bus Layout." msgstr "Buat Layout Bus Baru." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Buka Layout Suara Bus" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nama tidak sah." @@ -2956,7 +2960,7 @@ msgstr "Toggle mode tanpa gangguan." msgid "Add a new scene." msgstr "Tambah skena baru." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Skena" @@ -5706,6 +5710,10 @@ msgid "Bake Lightmaps" msgstr "Panggang Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Pilih berkas lightmap bake:" @@ -8201,7 +8209,13 @@ msgid "Cinematic Preview" msgstr "Pratinjau Sinematik" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Tidak tersedia ketika menggunakan perender GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9135,6 +9149,11 @@ msgstr "Pilih Tema Lain Aset:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Ubah Nama Resource" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Impor Tema" @@ -9189,6 +9208,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Tambah Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Atur Jenis variabel" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Ubah Tipe Basis" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Muat Default" @@ -9207,8 +9241,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Tambah Item" +msgid "Base Type" +msgstr "Ubah Tipe Basis" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9928,18 +9972,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Kecocokan:" @@ -12699,6 +12731,11 @@ msgid "Stack Frames" msgstr "Stack Frame" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filter tile" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler(debugger/pemantauan)" @@ -14059,9 +14096,10 @@ msgstr "Nama paket tidak valid:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Modul \"GodotPaymentV3\" tidak valid yang dimasukkan dalam pengaturan proyek " -"\"android/modules\" (diubah di Godot 3.2.2)\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/is.po b/editor/translations/is.po index 824f7a7248..45098e09ee 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -1476,6 +1476,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2834,7 +2838,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5504,6 +5508,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7959,7 +7967,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8854,6 +8867,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8902,6 +8919,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8918,7 +8947,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9619,18 +9658,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12221,6 +12248,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13531,6 +13562,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/it.po b/editor/translations/it.po index 3da90af619..6ca5230b6b 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -66,13 +66,14 @@ # Theraloss <danilo.polani@gmail.com>, 2021. # Pietro Grungo <pietro.grungo@libero.it>, 2021. # Alfonso Scarpino <alfonso.scarpino@gmail.com>, 2022. +# Federico Caprini <caprinifede@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-01-31 22:50+0000\n" -"Last-Translator: Mirko <miknsop@gmail.com>\n" +"PO-Revision-Date: 2022-02-23 17:54+0000\n" +"Last-Translator: Federico Caprini <caprinifede@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -103,7 +104,7 @@ msgstr "Input %i non valido (assente) nell'espressione" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "self non può essere usato perché l'istanza è nulla (non passata)" +msgstr "self non può essere usato perché l'istanza è null (non passata)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -1543,6 +1544,11 @@ msgstr "Carica la disposizione di bus predefinita." msgid "Create a new Bus Layout." msgstr "Crea una nuova disposizione di bus." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Apri la disposizione di un bus audio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nome non valido." @@ -1948,7 +1954,7 @@ msgstr "Rendi attuale" #: editor/editor_feature_profile.cpp editor/editor_node.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Import" -msgstr "Importazione" +msgstr "Importa" #: editor/editor_feature_profile.cpp editor/project_export.cpp msgid "Export" @@ -3002,7 +3008,7 @@ msgstr "Commuta la modalità senza distrazioni." msgid "Add a new scene." msgstr "Aggiungi una nuova scena." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scena" @@ -3382,9 +3388,8 @@ msgid "Update All Changes" msgstr "Aggiorna quando modificata" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Cambiamenti dei materiali:" +msgstr "Cambiamenti dei materiali" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4168,6 +4173,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Quest'estensione file non è riconosciuta dall'editore.\n" +"Se vuoi comunque rinominarla, usa il file manager del tuo sistema " +"operativo.\n" +"Dopo averlo rinominato ad un'estensione sconosciuta, il file non verrà più " +"visualizzato nell'editore." #: editor/filesystem_dock.cpp msgid "" @@ -4629,6 +4639,8 @@ msgid "" "Select a resource file in the filesystem or in the inspector to adjust " "import settings." msgstr "" +"Seleziona un file risorsa nel filesystem o nell'ispettore per aggiustare le " +"impostazioni di importazione." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -5789,6 +5801,10 @@ msgid "Bake Lightmaps" msgstr "Preprocessa Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Seleziona il file bake della lightmap:" @@ -8324,7 +8340,13 @@ msgid "Cinematic Preview" msgstr "Anteprima Cinematografica" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Non disponibile quando il renderer GLES2 è in uso." #: editor/plugins/spatial_editor_plugin.cpp @@ -8455,15 +8477,15 @@ msgstr "Vista laterale destra" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orbit View Down" -msgstr "" +msgstr "Orbita la visuale in giù" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orbit View Left" -msgstr "" +msgstr "Orbita la visuale in su" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orbit View Right" -msgstr "" +msgstr "Orbita la visuale a destra" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy @@ -8496,11 +8518,11 @@ msgstr "Commuta la vista libera" #: editor/plugins/spatial_editor_plugin.cpp msgid "Decrease Field of View" -msgstr "" +msgstr "Diminuisci il Campo Visivo" #: editor/plugins/spatial_editor_plugin.cpp msgid "Increase Field of View" -msgstr "" +msgstr "Aumenta il Campo Visivo" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy @@ -8949,7 +8971,7 @@ msgstr "Importa tema" #: editor/plugins/theme_editor_plugin.cpp msgid "Importing items {n}/{n}" -msgstr "" +msgstr "Importa oggetti {n}/{n}" #: editor/plugins/theme_editor_plugin.cpp msgid "Updating the editor" @@ -8978,11 +9000,11 @@ msgstr "Seleziona tutti gli oggetti colorati visibili." #: editor/plugins/theme_editor_plugin.cpp msgid "Select all visible color items and their data." -msgstr "" +msgstr "Seleziona tutti gli oggetti colorati e i loro dati." #: editor/plugins/theme_editor_plugin.cpp msgid "Deselect all visible color items." -msgstr "" +msgstr "Deseleziona tutti gli oggetti colorati." #: editor/plugins/theme_editor_plugin.cpp msgid "Select all visible constant items." @@ -8990,7 +9012,7 @@ msgstr "Seleziona tutti gli oggetti visibili." #: editor/plugins/theme_editor_plugin.cpp msgid "Select all visible constant items and their data." -msgstr "" +msgstr "Seleziona tutti gli oggetti costanti e i loro dati." #: editor/plugins/theme_editor_plugin.cpp msgid "Deselect all visible constant items." @@ -9251,6 +9273,11 @@ msgstr "Seleziona un'altra risorsa del tema:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Rinomina risorsa" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Importa tema" @@ -9304,6 +9331,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Aggiungi Elemento" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Imposta Tipo di Variabile" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Cambia Tipo di Base" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Carica i predefiniti" @@ -9322,8 +9364,18 @@ msgstr "Sovrascrivi tutti gli elementi predefiniti." #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Aggiungi Elemento" +msgid "Base Type" +msgstr "Cambia Tipo di Base" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9940,18 +9992,16 @@ msgid "Unstaged Changes" msgstr "Cambiamenti degli shader:" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit:" -msgstr "Commit" +msgstr "Commit:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Date:" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Subtitle:" -msgstr "Sottoalbero" +msgstr "Sottotitolo:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Do you want to remove the %s branch?" @@ -10024,9 +10074,8 @@ msgid "Stage all changes" msgstr "Memorizzazione dei cambiamenti locali…" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unstage all changes" -msgstr "Cambiamenti dei materiali:" +msgstr "Annulla tutte le modifiche" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -10047,21 +10096,8 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Branches" -msgstr "Corrispondenze:" +msgstr "Rami" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -10093,14 +10129,12 @@ msgid "Remove Remote" msgstr "Rimuovi l'elemento" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote Name" -msgstr "Remoto " +msgstr "Nome Remoto" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote URL" -msgstr "Remoto " +msgstr "URL Remoto" #: editor/plugins/version_control_editor_plugin.cpp msgid "Fetch" @@ -10140,9 +10174,8 @@ msgid "Unmerged" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "View:" -msgstr "Vista" +msgstr "Vista:" #: editor/plugins/version_control_editor_plugin.cpp #, fuzzy @@ -12826,6 +12859,11 @@ msgid "Stack Frames" msgstr "Stack Frame" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtra tiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -13780,9 +13818,8 @@ msgid "in order:" msgstr "Rinomina cartella:" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Switch" -msgstr "Switch" +msgstr "Inverti" #: modules/visual_script/visual_script_flow_control.cpp msgid "'input' is:" @@ -14015,9 +14052,8 @@ msgid "Yield" msgstr "" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Wait" -msgstr "Wait" +msgstr "Aspetta" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy @@ -14194,9 +14230,10 @@ msgstr "Nome del pacchetto non valido:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Modulo \"GodotPaymentV3\" non valido incluso nell'impostazione del progetto " -"\"android/moduli\" (modificato in Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/ja.po b/editor/translations/ja.po index de6c22ce1a..81522d182d 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -42,7 +42,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-14 22:08+0000\n" +"PO-Revision-Date: 2022-03-08 08:59+0000\n" "Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" @@ -51,7 +51,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.11-dev\n" +"X-Generator: Weblate 4.12-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1508,6 +1508,11 @@ msgstr "デフォルトのバスレイアウトを読み込む。" msgid "Create a new Bus Layout." msgstr "新規バスレイアウトを作成。" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "オーディオバスのレイアウトを開く" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "無効な名前です。" @@ -2947,7 +2952,7 @@ msgstr "集中モードを切り替える。" msgid "Add a new scene." msgstr "新規シーンを追加する。" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "シーン" @@ -3117,7 +3122,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "コリジョン形状の表示" +msgstr "コリジョン形状を表示" #: editor/editor_node.cpp msgid "" @@ -3129,7 +3134,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Visible Navigation" -msgstr "ナビゲーションの表示" +msgstr "ナビゲーションを表示" #: editor/editor_node.cpp msgid "" @@ -3141,7 +3146,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Force Shader Fallbacks" -msgstr "" +msgstr "シェーダーフォールバックを強制" #: editor/editor_node.cpp msgid "" @@ -3152,10 +3157,16 @@ msgid "" "Asynchronous shader compilation must be enabled in the project settings for " "this option to make a difference." msgstr "" +"このオプションを有効にすると、すべての実行時にシェーダーがフォールバック形式 " +"(ubershaderで表示するか非表示) で使用されます。\n" +"これは、通常は簡素に表示されるフォールバックの、見た目と性能を確認するために" +"役立ちます。\n" +"このオプションを機能させるには、プロジェクト設定で非同期シェーダーコンパイル" +"を有効にする必要があります。" #: editor/editor_node.cpp msgid "Synchronize Scene Changes" -msgstr "シーンの変更を同期" +msgstr "シーン変更を同期" #: editor/editor_node.cpp msgid "" @@ -3171,7 +3182,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Synchronize Script Changes" -msgstr "スクリプトの変更を同期" +msgstr "スクリプト変更を同期" #: editor/editor_node.cpp msgid "" @@ -4097,6 +4108,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"このファイル拡張子はエディターによって認識されません。\n" +"それでも名前を変更したい場合は、オペレーティングシステムのファイルマネー" +"ジャーを使用してください。\n" +"不明な拡張子へと名前を変更すると、そのファイルはエディターに表示されなくなり" +"ます。" #: editor/filesystem_dock.cpp msgid "" @@ -5707,6 +5723,10 @@ msgid "Bake Lightmaps" msgstr "ライトマップを焼き込む" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "ライトマップベイクファイルを選択:" @@ -5801,11 +5821,11 @@ msgstr "Control \"%s\" を (%d, %d) にリサイズします" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale %d CanvasItems" -msgstr "%d 個の CanvasItem を拡大 / 縮小" +msgstr "%d 個の CanvasItem を拡大縮小" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale CanvasItem \"%s\" to (%s, %s)" -msgstr "CanvasItem \"%s\" を (%s, %s) に拡大 / 縮小" +msgstr "CanvasItem \"%s\" を (%s, %s) に拡大縮小" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move %d CanvasItems" @@ -6052,7 +6072,7 @@ msgstr "スケールモード" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Shift: Scale proportionally." -msgstr "" +msgstr "Shift: 比率を保って拡大縮小。" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -8190,7 +8210,13 @@ msgid "Cinematic Preview" msgstr "シネマティックプレビュー" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "GLES2レンダラーの場合は利用できません。" #: editor/plugins/spatial_editor_plugin.cpp @@ -8430,23 +8456,23 @@ msgstr "設定..." #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Settings" -msgstr "スナップの設定" +msgstr "スナップ設定" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate Snap:" -msgstr "スナップの移動:" +msgstr "移動スナップ:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "スナップの回転(度):" +msgstr "回転スナップ (度):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" -msgstr "スナップの拡大/縮小(%):" +msgstr "拡大 / 縮小スナップ (%):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Viewport Settings" -msgstr "ビューポートの設定" +msgstr "ビューポート設定" #: editor/plugins/spatial_editor_plugin.cpp msgid "Perspective FOV (deg.):" @@ -8454,15 +8480,15 @@ msgstr "視野角(度):" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Near:" -msgstr "Z-Nearの表示:" +msgstr "ビューのZ-Near:" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Far:" -msgstr "Z-Farの表示:" +msgstr "ビューのZ-Far:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Change" -msgstr "トランスフォームの変更" +msgstr "トランスフォーム変更" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate:" @@ -9084,6 +9110,11 @@ msgid "Select Another Theme Resource:" msgstr "他のテーマリソースの選択:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "リソース名を変更" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "他のテーマ" @@ -9132,8 +9163,22 @@ msgstr "" "てのこのタイプのStyleBoxで同じプロパティが更新されます。" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "アイテムのタイプを追加" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "変数の型を設定" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "基底型を変更" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" -msgstr "デフォルトの表示" +msgstr "デフォルトを表示" #: editor/plugins/theme_editor_plugin.cpp msgid "Show default type items alongside items that have been overridden." @@ -9149,8 +9194,19 @@ msgid "Override all default type items." msgstr "すべてのデフォルトタイプのアイテムをオーバーライドする。" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "アイテムのタイプを追加" +#, fuzzy +msgid "Base Type" +msgstr "基底型を変更" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9859,18 +9915,6 @@ msgid "Commit list size" msgstr "コミットリストサイズ" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "ブランチ" @@ -12604,6 +12648,11 @@ msgid "Stack Frames" msgstr "スタックフレーム" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "タイルを絞り込む" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "プロファイラー" @@ -13944,9 +13993,10 @@ msgstr "無効なパッケージ名:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"「android/modules」に含まれる「GodotPaymentV3」モジュールのプロジェクト設定が" -"無効です (Godot 3.2.2 にて変更)。\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/ka.po b/editor/translations/ka.po index b3d35a3311..8a18925bb4 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -1535,6 +1535,11 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "აუდიო გადამტანის ხმის გადართვა" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2919,7 +2924,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5645,6 +5650,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "წავშალოთ მონიშნული ფაილები?" @@ -8159,7 +8168,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9072,6 +9086,11 @@ msgid "Select Another Theme Resource:" msgstr "ჩამნაცვლებელი რესურსის ძიება:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "რესურსი" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -9123,6 +9142,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "%s ტიპის ცვლილება" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "%s ტიპის ცვლილება" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -9139,7 +9172,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "%s ტიპის ცვლილება" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9861,18 +9905,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "დამთხვევები:" @@ -12508,6 +12540,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "დამაკავშირებელი სიგნალი:" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13834,6 +13871,9 @@ msgstr "არასწორი ფონტის ზომა." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/km.po b/editor/translations/km.po index a386fd1188..d3f13b9d89 100644 --- a/editor/translations/km.po +++ b/editor/translations/km.po @@ -1437,6 +1437,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2786,7 +2790,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5429,6 +5433,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7861,7 +7869,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8736,6 +8749,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8782,6 +8799,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8798,7 +8827,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9474,18 +9513,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12039,6 +12066,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13323,6 +13354,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 0312c7fd92..15bed58f67 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -16,7 +16,7 @@ # Jiyoon Kim <kimjiy@dickinson.edu>, 2019. # Ervin <zetsmart@gmail.com>, 2019. # Tilto_ <tilto0822@develable.xyz>, 2020. -# Myeongjin Lee <aranet100@gmail.com>, 2020, 2021. +# Myeongjin Lee <aranet100@gmail.com>, 2020, 2021, 2022. # Doyun Kwon <caen4516@gmail.com>, 2020. # Jun Hyung Shin <shmishmi79@gmail.com>, 2020. # Yongjin Jo <wnrhd114@gmail.com>, 2020. @@ -35,8 +35,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-04 13:45+0000\n" -"Last-Translator: Lee Minhak <minarihak@gmail.com>\n" +"PO-Revision-Date: 2022-03-04 08:19+0000\n" +"Last-Translator: Myeongjin Lee <aranet100@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" "Language: ko\n" @@ -44,7 +44,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.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1499,6 +1499,11 @@ msgstr "디폴트 버스 레이아웃을 불러옵니다." msgid "Create a new Bus Layout." msgstr "새로운 버스 레이아웃을 만듭니다." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "오디오 버스 레이아웃 열기" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "올바르지 않은 이름입니다." @@ -2735,7 +2740,7 @@ msgstr "예" #: editor/editor_node.cpp msgid "Exit the editor?" -msgstr "에디터를 나가시겠습니까?" +msgstr "에디터를 끝내시겠습니까?" #: editor/editor_node.cpp msgid "Open Project Manager?" @@ -2936,7 +2941,7 @@ msgstr "집중 모드를 토글합니다." msgid "Add a new scene." msgstr "새 씬을 추가합니다." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "씬" @@ -3058,7 +3063,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 @@ -5682,6 +5687,10 @@ msgid "Bake Lightmaps" msgstr "라이트맵 굽기" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "라이트맵을 구울 파일 선택:" @@ -8066,11 +8075,11 @@ msgstr "FPS: %d (%s ms)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View." -msgstr "윗면 보기." +msgstr "상단면 보기." #: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View." -msgstr "아랫면 보기." +msgstr "하단면 보기." #: editor/plugins/spatial_editor_plugin.cpp msgid "Left View." @@ -8161,7 +8170,13 @@ msgid "Cinematic Preview" msgstr "시네마틱 미리보기" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "GLES2 렌더러에서 사용할 수 없습니다." #: editor/plugins/spatial_editor_plugin.cpp @@ -8261,11 +8276,11 @@ msgstr "포털 컬링을 위한 룸을 변환합니다." #: editor/plugins/spatial_editor_plugin.cpp msgid "Bottom View" -msgstr "아래쪽 뷰" +msgstr "하단 뷰" #: editor/plugins/spatial_editor_plugin.cpp msgid "Top View" -msgstr "위쪽 뷰" +msgstr "상단 뷰" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rear View" @@ -9052,6 +9067,11 @@ msgid "Select Another Theme Resource:" msgstr "다른 테마 리소스 선택:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "리소스 이름 바꾸기" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "다른 테마" @@ -9103,6 +9123,20 @@ msgstr "" "일박스에서 같은 속성이 업데이트됩니다." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "항목 타입 추가" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "변수 타입 설정" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "기본 타입 바꾸기" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "디폴트 보이기" @@ -9119,8 +9153,19 @@ msgid "Override all default type items." msgstr "모든 디폴트 타입 항목을 오버라이드합니다." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "항목 타입 추가" +#, fuzzy +msgid "Base Type" +msgstr "기본 타입 바꾸기" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9834,18 +9879,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "일치함:" @@ -9880,14 +9913,12 @@ msgid "Remove Remote" msgstr "항목 제거" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote Name" -msgstr "원격 " +msgstr "원격 이름" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote URL" -msgstr "원격 " +msgstr "원격 URL" #: editor/plugins/version_control_editor_plugin.cpp msgid "Fetch" @@ -12557,6 +12588,11 @@ msgid "Stack Frames" msgstr "스택 프레임" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "타일 필터" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "프로파일러" @@ -13736,7 +13772,7 @@ msgstr "" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" -msgstr "" +msgstr "대기" #: modules/visual_script/visual_script_yield_nodes.cpp #, fuzzy @@ -13899,9 +13935,10 @@ msgstr "잘못된 패키지 이름:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"\"android/modules\" 프로젝트 세팅에 잘못된 \"GodotPaymentV3\" 모듈이 포함되" -"어 있습니다. (Godot 3.2.2 에서 변경됨).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/lt.po b/editor/translations/lt.po index bdbebb1717..24b3403eeb 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -1485,6 +1485,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2876,7 +2880,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5627,6 +5631,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Pasirinkite Nodus, kuriuos norite importuoti" @@ -8134,7 +8142,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9054,6 +9067,11 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Ištekliai" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Redaguoti Filtrus" @@ -9103,6 +9121,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -9119,7 +9149,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9849,18 +9889,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12485,6 +12513,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrai..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13819,6 +13852,9 @@ msgstr "Netinkamas šrifto dydis." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 2216810855..4bf3eb8bbd 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -1480,6 +1480,11 @@ msgstr "Ielādēt Kopnes Izkārtojuma noklusējumu." msgid "Create a new Bus Layout." msgstr "Izveidot jaunu Kopnes izkārtojumu." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Atvērt audio kopnes izkārtojumu" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nederīgs nosaukums." @@ -2914,7 +2919,7 @@ msgstr "Pārslēgt traucējumu brīvo režīmu." msgid "Add a new scene." msgstr "Pievienot jaunu ainu." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Aina" @@ -5579,6 +5584,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Izvēlēties gaismas kartes cepšanas failu:" @@ -8008,7 +8017,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8884,6 +8898,11 @@ msgid "Select Another Theme Resource:" msgstr "Izvēlēties citu motīva resursu:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Resurss" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8933,6 +8952,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Nomainīt Bāzes Tipu:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Nomainīt Bāzes Tipu:" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Rādīt noklusējumu" @@ -8949,7 +8982,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Mainīt tipu" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9633,18 +9677,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Zari" @@ -12208,6 +12240,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrēt signālus" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13515,6 +13552,9 @@ msgstr "Nederīgs paketes nosaukums:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/mi.po b/editor/translations/mi.po index 745e54d697..322a593bd0 100644 --- a/editor/translations/mi.po +++ b/editor/translations/mi.po @@ -1429,6 +1429,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2778,7 +2782,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5420,6 +5424,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7845,7 +7853,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8720,6 +8733,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8766,6 +8783,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8782,7 +8811,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9458,18 +9497,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12023,6 +12050,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13306,6 +13337,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/mk.po b/editor/translations/mk.po index 38ee72ff58..44b39d18ee 100644 --- a/editor/translations/mk.po +++ b/editor/translations/mk.po @@ -1437,6 +1437,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2790,7 +2794,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5436,6 +5440,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7868,7 +7876,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8743,6 +8756,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8789,6 +8806,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8805,7 +8834,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9482,18 +9521,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12048,6 +12075,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13332,6 +13363,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 085e4e1af3..659971d0b5 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -1442,6 +1442,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2797,7 +2801,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5444,6 +5448,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7877,7 +7885,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8752,6 +8765,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8798,6 +8815,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8814,7 +8843,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9491,18 +9530,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12056,6 +12083,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13345,6 +13376,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/mr.po b/editor/translations/mr.po index d3faab3d90..8b502fff5a 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -2,13 +2,13 @@ # Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. # Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). # This file is distributed under the same license as the Godot source code. -# Prachi Joshi <josprachi@yahoo.com>, 2019, 2020. +# Prachi Joshi <josprachi@yahoo.com>, 2019, 2020, 2022. # Shirious <sad3119823@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2020-12-23 22:57+0000\n" +"PO-Revision-Date: 2022-02-23 17:55+0000\n" "Last-Translator: Prachi Joshi <josprachi@yahoo.com>\n" "Language-Team: Marathi <https://hosted.weblate.org/projects/godot-engine/" "godot/mr/>\n" @@ -16,7 +16,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.4.1-dev\n" +"X-Generator: Weblate 4.11-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -43,15 +43,15 @@ msgstr "self वापरले जाऊ शकत नाही कारण #: 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" -msgstr "" +msgstr "बेस प्रकार %s साठी %s प्रकाराची अवैध अनुक्रमणिका" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "बेस प्रकार %s साठी अवैध नामांकित इंडेक्स '%s'" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" @@ -1437,6 +1437,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2787,7 +2791,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5431,6 +5435,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7862,7 +7870,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8738,6 +8751,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8785,6 +8802,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8801,7 +8830,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9479,18 +9518,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12049,6 +12076,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13335,6 +13366,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/ms.po b/editor/translations/ms.po index 71c60c4921..9854a707cc 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-03 13:04+0000\n" +"PO-Revision-Date: 2022-02-23 17:55+0000\n" "Last-Translator: Keviindran Ramachandran <keviinx@yahoo.com>\n" "Language-Team: Malay <https://hosted.weblate.org/projects/godot-engine/godot/" "ms/>\n" @@ -1483,6 +1483,11 @@ msgstr "Muatkan Susun Atur Bas lalai." msgid "Create a new Bus Layout." msgstr "Cipta Susun Atur Bas baru." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Buka Susun Atur Bas Audio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nama tidak sah." @@ -2928,7 +2933,7 @@ msgstr "Togol mod bebas gangguan." msgid "Add a new scene." msgstr "Tambah adegan baru." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Adegan" @@ -3304,14 +3309,12 @@ msgid "Update Continuously" msgstr "Kemas Kini Secara Berterusan" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Kemas Kini Apabila Diubah" +msgstr "Kemas Kini Semua Perubahan" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Perubahan Bahan:" +msgstr "Kemas Kini Perubahan Penting" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -5694,6 +5697,10 @@ msgid "Bake Lightmaps" msgstr "Bake Lightmap" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Pilih fail lightmap bake:" @@ -8151,7 +8158,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9065,6 +9077,11 @@ msgid "Select Another Theme Resource:" msgstr "Cari Penggantian Sumber:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Sumber" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -9118,6 +9135,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Muatkan Lalai" @@ -9135,7 +9164,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Ubah Jenis %s" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9832,18 +9872,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Ranting" @@ -12425,6 +12453,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Tapis isyarat" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13753,6 +13786,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 025abad2dc..cca8d67ccf 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -1523,6 +1523,11 @@ msgstr "Last standard Bus oppsettet." msgid "Create a new Bus Layout." msgstr "Opprett et nytt Bus oppsett." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Åpne Audio Bus oppsett" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Ugyldig navn." @@ -3014,7 +3019,7 @@ msgstr "Vis/skjul distraksjonsfri modus." msgid "Add a new scene." msgstr "Legg til ny scene." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scene" @@ -5897,6 +5902,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Velg malfil" @@ -8505,7 +8514,13 @@ msgid "Cinematic Preview" msgstr "Lager Forhåndsvisning av Mesh" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Ikke tilgjengelig ved bruk av GLES2-opptegner." #: editor/plugins/spatial_editor_plugin.cpp @@ -9454,6 +9469,11 @@ msgstr "Fjern Ressurs" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Gi nytt navn til Ressurs" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Importer Tema" @@ -9508,6 +9528,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Legg til Element" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Rediger Variabel:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Endre %s type" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Last Standard" @@ -9526,8 +9561,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Legg til Element" +msgid "Base Type" +msgstr "Endre %s type" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -10281,18 +10326,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Treff:" @@ -12995,6 +13028,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrer Filer..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14386,6 +14424,9 @@ msgstr "Ugyldig navn." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/nl.po b/editor/translations/nl.po index c8e602d3ce..37c534baf8 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -55,13 +55,14 @@ # naan <xlightfox@hotmail.com>, 2021. # Tim Visee <tim+weblate@visee.me>, 2022. # Ferhat Geçdoğan <ferhatgectao@gmail.com>, 2022. +# Rémi Verschelde <remi@godotengine.org>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-01-30 07:16+0000\n" -"Last-Translator: Ferhat Geçdoğan <ferhatgectao@gmail.com>\n" +"PO-Revision-Date: 2022-02-20 11:48+0000\n" +"Last-Translator: Rémi Verschelde <remi@godotengine.org>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" "Language: nl\n" @@ -1535,6 +1536,11 @@ msgstr "Standaard audiobusindeling laden." msgid "Create a new Bus Layout." msgstr "Maak een nieuwe audiobusindeling." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Audiobusindeling openen" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Ongeldige naam." @@ -2977,7 +2983,7 @@ msgstr "Afleidingsvrijemodus omschakelen." msgid "Add a new scene." msgstr "Nieuwe scène toevoegen." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scène" @@ -5766,6 +5772,10 @@ msgid "Bake Lightmaps" msgstr "Bak Lichtmappen" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Selecteer lightmap bake-bestand" @@ -8309,7 +8319,13 @@ msgid "Cinematic Preview" msgstr "Bioscoop Preview" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Niet beschikbaar bij gebruik van de GLES2 renderer." #: editor/plugins/spatial_editor_plugin.cpp @@ -8766,7 +8782,7 @@ msgstr "Animaties:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "New Animation" -msgstr "Niewe animatie" +msgstr "Nieuwe animatie" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed:" @@ -9258,6 +9274,11 @@ msgstr "Bron verwijderen" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Bronnaam wijzigen" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Thema importeren" @@ -9312,6 +9333,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Element toevoegen" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Zet variabele type" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Verander basis type" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Laad standaard" @@ -9330,8 +9366,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Element toevoegen" +msgid "Base Type" +msgstr "Verander basis type" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -10051,18 +10097,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Overeenkomsten:" @@ -12827,6 +12861,11 @@ msgid "Stack Frames" msgstr "Stack Frames" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filter tegels" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -14190,9 +14229,10 @@ msgstr "Ongeldige pakketnaam:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Ongeldige \"GodotPaymentV3\" module ingesloten in de projectinstelling " -"\"android/modules\" (veranderd in Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/or.po b/editor/translations/or.po index 3cea395fb0..d66d67b257 100644 --- a/editor/translations/or.po +++ b/editor/translations/or.po @@ -1435,6 +1435,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2784,7 +2788,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5426,6 +5430,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7851,7 +7859,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8726,6 +8739,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8772,6 +8789,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8788,7 +8817,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9464,18 +9503,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12029,6 +12056,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13312,6 +13343,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 0117a72a86..db99c76ce6 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -16,12 +16,12 @@ # Karol Walasek <coreconviction@gmail.com>, 2016. # Maksymilian Świąć <maksymilian.swiac@gmail.com>, 2017-2018. # Mietek Szcześniak <ravaging@go2.pl>, 2016. -# NeverK <neverkoxu@gmail.com>, 2018, 2019, 2020, 2021. +# NeverK <neverkoxu@gmail.com>, 2018, 2019, 2020, 2021, 2022. # Rafal Brozio <rafal.brozio@gmail.com>, 2016, 2019, 2020, 2021. # Rafał Ziemniak <synaptykq@gmail.com>, 2017. -# RM <synaptykq@gmail.com>, 2018, 2020. +# RM <synaptykq@gmail.com>, 2018, 2020, 2022. # Sebastian Krzyszkowiak <dos@dosowisko.net>, 2017. -# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020. +# Sebastian Pasich <sebastian.pasich@gmail.com>, 2017, 2019, 2020, 2022. # siatek papieros <sbigneu@gmail.com>, 2016. # Zatherz <zatherz@linux.pl>, 2017, 2020, 2021. # Tomek <kobewi4e@gmail.com>, 2018, 2019, 2020, 2021, 2022. @@ -41,7 +41,7 @@ # Jan Ligudziński <jan.ligudzinski@gmail.com>, 2020, 2021. # Adam Jagoda <kontakt@lukasz.xyz>, 2020. # Filip Glura <mcmr.slendy@gmail.com>, 2020. -# Roman Skiba <romanskiba0@gmail.com>, 2020. +# Roman Skiba <romanskiba0@gmail.com>, 2020, 2022. # Piotr Grodzki <ziemniakglados@gmail.com>, 2020. # Dzejkop <jakubtrad@gmail.com>, 2020, 2021. # Mateusz Grzonka <alpinus4@gmail.com>, 2020. @@ -49,19 +49,21 @@ # vrid <patryksoon@live.com>, 2021. # Suchy Talerz <kacperkubis06@gmail.com>, 2021. # Bartosz Stasiak <bs97086@amu.edu.pl>, 2021. -# Marek Malaria <to.tylko.dla.kont@gmail.com>, 2021. -# Mateusz Żak <matisgramy@gmail.com>, 2021. +# Marek Malaria <to.tylko.dla.kont@gmail.com>, 2021, 2022. +# Mateusz Żak <matisgramy@gmail.com>, 2021, 2022. # voltinus <voltinusmail@gmail.com>, 2021. # Lech Migdal <lech.migdal@gmail.com>, 2022. # Piotr <promantix@gmail.com>, 2022. # Igor Kordiukiewicz <igorkordiukiewicz@gmail.com>, 2022. +# lewando54 <lewando54@gmail.com>, 2022. +# Katarzyna Twardowska <katarina.twardowska@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-01-26 19:55+0000\n" -"Last-Translator: Igor Kordiukiewicz <igorkordiukiewicz@gmail.com>\n" +"PO-Revision-Date: 2022-03-08 08:59+0000\n" +"Last-Translator: Katarzyna Twardowska <katarina.twardowska@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" @@ -70,7 +72,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.11-dev\n" +"X-Generator: Weblate 4.12-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1525,6 +1527,11 @@ msgstr "Załaduj domyślny układ magistral." msgid "Create a new Bus Layout." msgstr "Utwórz nowy układ magistral." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Otwórz układ magistrali audio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Niewłaściwa nazwa." @@ -2658,7 +2665,7 @@ msgstr "Zapisać zmiany w \"%s\" przed zamknięciem?" #: editor/editor_node.cpp msgid "%s no longer exists! Please specify a new save location." -msgstr "%s już nie istnieje! Określ nową lokalizację zapisu." +msgstr "%s nie istnieje! Proszę wybrać nową lokalizację zapisu." #: editor/editor_node.cpp msgid "" @@ -2960,7 +2967,7 @@ msgstr "Tryb bez rozproszeń." msgid "Add a new scene." msgstr "Dodaj nową scenę." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scena" @@ -3153,7 +3160,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Force Shader Fallbacks" -msgstr "" +msgstr "Opóźnienia wymuszania shaderów" #: editor/editor_node.cpp msgid "" @@ -3164,6 +3171,12 @@ msgid "" "Asynchronous shader compilation must be enabled in the project settings for " "this option to make a difference." msgstr "" +"Gdy ta opcja jest włączona, shadery będą używane w ich zastępczej formie " +"(albo widoczne poprzez ubershader, albo ukryte) przez cały czas działania.\n" +"Jest to przydatne do sprawdzania wyglądu i wydajności fallbacków, które " +"normalnie wyświetlane są krótko.\n" +"Asynchroniczna kompilacja shaderów musi być włączona w ustawieniach " +"projektu, aby ta opcja działała." #: editor/editor_node.cpp msgid "Synchronize Scene Changes" @@ -3327,14 +3340,12 @@ msgid "Update Continuously" msgstr "Aktualizuj ciągle" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Aktualizuj przy zmianie" +msgstr "Aktualizuj wszystkie zmiany" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Zmiany materiału:" +msgstr "Zaktualizuj istotne zmiany" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4107,6 +4118,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Te rozszerzenie pliku nie zostało rozpoznane przez edytor.\n" +"Jeśli mimo tego chcesz zmienić jego nazwę, użyj menedżera plików swojego " +"systemu operacyjnego.\n" +"Po zmienieniu na nieznane rozszerzenie, plik nie będzie już widoczny w " +"edytorze." #: editor/filesystem_dock.cpp msgid "" @@ -5312,7 +5328,7 @@ msgstr "Tryb odtwarzania:" #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "AnimationTree" -msgstr "Drzewo animacji" +msgstr "DrzewoAnimacji" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "New name:" @@ -5325,11 +5341,11 @@ msgstr "Skala:" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Fade In (s):" -msgstr "Fade In (s):" +msgstr "Zanikanie w (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Fade Out (s):" -msgstr "Fade Out (s):" +msgstr "Zanikanie z (s):" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Blend" @@ -5723,6 +5739,10 @@ msgid "Bake Lightmaps" msgstr "Stwórz Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Wybierz plik wypalenia mapy światła:" @@ -6036,9 +6056,8 @@ msgid "Alt+Drag: Move selected node." msgstr "Alt+Przeciągnij: Przesuń zaznaczony węzeł." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Alt+Drag: Scale selected node." -msgstr "Alt+Przeciągnij: Przesuń zaznaczony węzeł." +msgstr "Alt+Przeciągnij: Skaluj zaznaczony węzeł." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "V: Set selected node's pivot position." @@ -6324,11 +6343,11 @@ msgstr "Instancjonuj scenę tutaj" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "Zwiększ krok siatki 2 razy" +msgstr "Powiększ siatkę x2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "Zmniejsz krok siatki 2 razy" +msgstr "Pomniejsz siatkę x2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Pan View" @@ -6503,7 +6522,7 @@ msgstr "Płaskie 0" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat 1" -msgstr "Flat 1" +msgstr "Płaskie 1" #: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp msgid "Ease In" @@ -6567,7 +6586,7 @@ msgstr "Prawy klik, aby dodać punkt" #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" -msgstr "Wypal sondę GI" +msgstr "Wygeneruj próbnik GI" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" @@ -6670,7 +6689,7 @@ msgstr "Siatka nie posiada powierzchni, z której można by utworzyć obrysy!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!" -msgstr "Typ prymitywu siatki jest inny niż PRIMITIVE_TRIANGLES!" +msgstr "Prymitywne elementy siatki nie sią PRIMITIVE_TRIANGLES!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Could not create outline!" @@ -6686,7 +6705,7 @@ msgstr "Siatka" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" -msgstr "Utwórz statyczne ciało trójsiatki" +msgstr "Stwórz statyczne ciało siatki trójkątów (Trimesh)" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" @@ -6828,11 +6847,13 @@ msgstr "Aktualizuj ze sceny" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." -msgstr "Nie ustawiono źródła siatki (i nie ma MultiMesh ustawionego w węźle)." +msgstr "" +"Nie ustawiono źródła siatki (i brak ustawionego zasobu MultiMesh w węźle)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and MultiMesh contains no Mesh)." -msgstr "Nie ustawiono źródła siatki (a MultiMesh nie posiada siatki)." +msgstr "" +"Nie ustawiono źródła siatki (i węzeł MultiMesh nie zawiera węzła Mesh)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (invalid path)." @@ -6840,11 +6861,11 @@ msgstr "Źródło siatki jest niepoprawne (nieprawidłowa ścieżka)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (not a MeshInstance)." -msgstr "Źródło siatki jest nieprawidłowe (nie jest MeshInstance)." +msgstr "Źródło siatki jest niepoprawne (nie jest typu MeshInstance)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (contains no Mesh resource)." -msgstr "Źródło siatki jest nieprawidłowe (nie zawiera zasobu Mesh)." +msgstr "Źródło siatki jest niepoprawne (nie zawiera zasobu Siatka (Mesh))." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No surface source specified." @@ -8209,7 +8230,13 @@ msgid "Cinematic Preview" msgstr "Podgląd kinowy" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Niedostępne dla renderera GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -8383,9 +8410,8 @@ msgid "Increase Field of View" msgstr "Zwiększ pole widzenia" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Reset Field of View to Default" -msgstr "Resetuj do domyślnych" +msgstr "Resetuj pole widzenia do domyślnych ustawień" #: editor/plugins/spatial_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -9106,6 +9132,11 @@ msgid "Select Another Theme Resource:" msgstr "Wybierz inny zasób motywu:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Zmień nazwę Zasobu" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Inny motyw" @@ -9115,22 +9146,19 @@ msgstr "Dodaj typ" #: editor/plugins/theme_editor_plugin.cpp msgid "Filter the list of types or create a new custom type:" -msgstr "" +msgstr "Przefiltruj listę typów lub stwórz nowy, niestandardowy typ:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Available Node-based types:" -msgstr "Dostępne profile:" +msgstr "Dostępne typy oparte na węzłach:" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Type name is empty!" -msgstr "Nazwa pliku jest pusta." +msgstr "Nazwa typu jest pusta!" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Are you sure you want to create an empty type?" -msgstr "Czy jesteś pewny że chcesz otworzyć więcej niż jeden projekt?" +msgstr "Czy jesteś pewny że chcesz utworzyć pusty typ?" #: editor/plugins/theme_editor_plugin.cpp msgid "Confirm Item Rename" @@ -9157,6 +9185,20 @@ msgstr "" "zaktualizuje te same właściwości we wszystkich innych StyleBoxach tego typu." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Dodaj typ elementu" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Ustaw typ zmiennej" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Zmień typ podstawowy" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Pokaż domyślne" @@ -9173,8 +9215,19 @@ msgid "Override all default type items." msgstr "Nadpisz wszystkie domyślne elementy typu." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Dodaj typ elementu" +#, fuzzy +msgid "Base Type" +msgstr "Zmień typ podstawowy" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9752,7 +9805,6 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No VCS plugins are available." msgstr "Brak dostępnych dodatków VCS." @@ -9764,53 +9816,48 @@ msgstr "Błąd" msgid "" "Remote settings are empty. VCS features that use the network may not work." msgstr "" +"Zdalne ustawienia są puste. Funkcje VCS, które korzystają z sieci mogą nie " +"działać." #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "No commit message was provided." -msgstr "Nie podano nazwy." +msgstr "Nie podano treści opisu aktualizacji." #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit" msgstr "Commit" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Staged Changes" -msgstr "Zmiany shadera:" +msgstr "Zmiany w poczekalni przed commitem" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unstaged Changes" -msgstr "Zmiany shadera:" +msgstr "Zmiany poza poczekalnią przed commitem" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit:" -msgstr "Commit" +msgstr "Przydziel:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Date:" msgstr "Data:" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Subtitle:" -msgstr "Poddrzewo" +msgstr "Podtytuł:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Do you want to remove the %s branch?" -msgstr "" +msgstr "Czy chcesz usunąć gałąź %s ?" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Do you want to remove the %s remote?" -msgstr "Czy jesteś pewny że chcesz otworzyć więcej niż jeden projekt?" +msgstr "Czy chcesz usunąć zdalne %s ?" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Apply" -msgstr "Zastosuj reset" +msgstr "Zastosuj" #: editor/plugins/version_control_editor_plugin.cpp msgid "Version Control System" @@ -9821,14 +9868,12 @@ msgid "Initialize" msgstr "Inicjuj" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote Login" -msgstr "Usuń punkt" +msgstr "Login do Remote" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Username" -msgstr "Zmień nazwę" +msgstr "Użytkownik" #: editor/plugins/version_control_editor_plugin.cpp msgid "Password" @@ -9852,117 +9897,91 @@ msgstr "Wybierz ścieżkę do prywatnego klucza SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "SSH Passphrase" -msgstr "" +msgstr "Hasło-fraza SSH" #: editor/plugins/version_control_editor_plugin.cpp msgid "Detect new changes" msgstr "Wykryj nowe zmiany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Discard all changes" -msgstr "Zamknąć i zapisać zmiany?" +msgstr "Odrzuć wszystkie zmiany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Stage all changes" -msgstr "Zachowywanie lokalnych zmian..." +msgstr "Wrzuć do kolejki wszystkie zmiany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unstage all changes" -msgstr "Zmiany materiału:" +msgstr "Wyrzuć z kolejki wszystkie zmiany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit Message" -msgstr "Commituj zmiany" +msgstr "Opis zmian" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit Changes" msgstr "Commituj zmiany" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit List" -msgstr "Commit" +msgstr "Lista commitów" #: editor/plugins/version_control_editor_plugin.cpp msgid "Commit list size" -msgstr "" +msgstr "Wielkość listy commitów" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Branches" -msgstr "Pasujące:" +msgstr "Gałęzie" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Create New Branch" -msgstr "Utwórz nowy projekt" +msgstr "Utwórz nową gałąź" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remove Branch" -msgstr "Usuń ścieżkę animacji" +msgstr "Usuń gałąź" #: editor/plugins/version_control_editor_plugin.cpp msgid "Branch Name" msgstr "Nazwa gałęzi" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remotes" -msgstr "Zdalny" +msgstr "Zdalne repozytoria" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Create New Remote" -msgstr "Utwórz nowy projekt" +msgstr "Utwórz nowe zdalne repozytorium" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remove Remote" -msgstr "Usuń element" +msgstr "Usuń zdalne repozytorium" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote Name" -msgstr "Zdalny " +msgstr "Nazwa zdalnego repozytorium" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Remote URL" -msgstr "Zdalny " +msgstr "URL zdalnego repozytorium" #: editor/plugins/version_control_editor_plugin.cpp msgid "Fetch" -msgstr "" +msgstr "Załaduj" #: editor/plugins/version_control_editor_plugin.cpp msgid "Pull" -msgstr "" +msgstr "Ściągnij" #: editor/plugins/version_control_editor_plugin.cpp msgid "Push" -msgstr "" +msgstr "Wrzuć" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Force Push" -msgstr "Źródłowa siatka:" +msgstr "Wrzuć na siłę" #: editor/plugins/version_control_editor_plugin.cpp msgid "Modified" @@ -9982,22 +10001,19 @@ msgstr "Zmiana typu" #: editor/plugins/version_control_editor_plugin.cpp msgid "Unmerged" -msgstr "" +msgstr "Niezłączone" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "View:" -msgstr "Widok" +msgstr "Widok:" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Split" -msgstr "Podziel Ścieżkę" +msgstr "Rozdziel" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Unified" -msgstr "Zmodyfikowany" +msgstr "Ujednolicony" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" @@ -12143,6 +12159,10 @@ msgid "" "To save this branch into its own scene, open the original scene, right click " "on this branch, and select \"Save Branch as Scene\"." msgstr "" +"Nie można zapisać gałęzi, która jest dzieckiem już wcześniej zainicjowanej " +"sceny.\n" +"Aby zapisać tą gałąź do jej własnej sceny, otwórz oryginalną scenę, kliknij " +"prawym przyciskiem myszy na tą gałąź i wybierz \"Zapisz gałąź jako scenę\"." #: editor/scene_tree_dock.cpp msgid "" @@ -12150,6 +12170,9 @@ msgid "" "To save this branch into its own scene, open the original scene, right click " "on this branch, and select \"Save Branch as Scene\"." msgstr "" +"Nie można zapisać gałęzi która jest częścią odziedziczonej sceny.\n" +"Aby zapisać tą gałąź do jej własnej sceny, otwórz oryginalną scenę, kliknij " +"prawym przyciskiem myszy na tę gałąź i wybierz \"Zapisz gałąź jako scenę\"." #: editor/scene_tree_dock.cpp msgid "Save New Scene As..." @@ -12652,6 +12675,11 @@ msgid "Stack Frames" msgstr "Ramki stosu" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtruj kafelki" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profiler" @@ -12825,14 +12853,12 @@ msgid "Set Occluder Sphere Position" msgstr "Ustaw pozycję sfery przesłaniacza" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Ustaw pozycję punktu portalu" +msgstr "Ustaw położenie punktu poligonowego okludera" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Ustaw pozycje punktu krzywej" +msgstr "Ustawienie pozycji punktu otworu okludera" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -13545,30 +13571,28 @@ msgid "Edit Member" msgstr "Edytuj członka" #: modules/visual_script/visual_script_expression.cpp -#, fuzzy msgid "Expression" -msgstr "Ustaw wyrażenie" +msgstr "Wyrażenie" #: modules/visual_script/visual_script_flow_control.cpp msgid "Return" msgstr "Wróć" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Condition" -msgstr "animacja" +msgstr "Warunek" #: modules/visual_script/visual_script_flow_control.cpp msgid "if (cond) is:" -msgstr "" +msgstr "if (warunek) is:" #: modules/visual_script/visual_script_flow_control.cpp msgid "While" -msgstr "Dopóki" +msgstr "While" #: modules/visual_script/visual_script_flow_control.cpp msgid "while (cond):" -msgstr "" +msgstr "while (warunek):" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator" @@ -13576,7 +13600,7 @@ msgstr "Iterator" #: modules/visual_script/visual_script_flow_control.cpp msgid "for (elem) in (input):" -msgstr "" +msgstr "for (element) in (wejście):" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -13595,76 +13619,68 @@ msgid "Sequence" msgstr "Sekwencja" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "in order:" -msgstr "Zmiana nazwy folderu:" +msgstr "w kolejności:" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Switch" -msgstr "Pułap:" +msgstr "Przełącznik" #: modules/visual_script/visual_script_flow_control.cpp msgid "'input' is:" -msgstr "" +msgstr "'input' is:" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Type Cast" -msgstr "Typy:" +msgstr "Narzucenie typu" #: modules/visual_script/visual_script_flow_control.cpp msgid "Is %s?" -msgstr "" +msgstr "Czy jest %s?" #: modules/visual_script/visual_script_func_nodes.cpp msgid "On %s" -msgstr "" +msgstr "Na %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "On Self" -msgstr "Pojedynczo" +msgstr "Na samym sobie" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Subtract %s" -msgstr "Przy znaku %s" +msgstr "Odejmij %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Multiply %s" -msgstr "" +msgstr "Pomnóż %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Divide %s" -msgstr "" +msgstr "Dziel %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Mod %s" -msgstr "Dodaj %s" +msgstr "Modulo %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "ShiftLeft %s" -msgstr "Ustaw %s" +msgstr "PrzesuńWLewo %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "ShiftRight %s" -msgstr "" +msgstr "PrzesuńWPrawo %s" #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "BitAnd %s" -msgstr "Dodaj %s" +msgstr "BitoweAnd %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitOr %s" -msgstr "" +msgstr "BitoweOr %s" #: modules/visual_script/visual_script_func_nodes.cpp msgid "BitXor %s" -msgstr "" +msgstr "BitoweXor %s" #: modules/visual_script/visual_script_func_nodes.cpp #: modules/visual_script/visual_script_nodes.cpp @@ -13689,19 +13705,16 @@ msgid "Invalid index property name '%s' in node %s." msgstr "Nieprawidłowy indeks we właściwości \"%s\" węzła %s." #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Emit %s" -msgstr "Ustaw %s" +msgstr "Emituj %s" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Function" -msgstr "Funkcje" +msgstr "Funkcja" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Compose Array" -msgstr "Zmień rozmiar Tablicy" +msgstr "Utwórz Tablicę" #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " @@ -13713,7 +13726,7 @@ msgstr ":nieprawidłowe argumenty: " #: modules/visual_script/visual_script_nodes.cpp msgid "a if cond, else b" -msgstr "" +msgstr "a jeśli warunek, w przeciwnym razie b" #: modules/visual_script/visual_script_nodes.cpp msgid "VariableGet not found in script: " @@ -13724,64 +13737,52 @@ msgid "VariableSet not found in script: " msgstr "Nie znaleziono VariableSet w skrypcie: " #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Preload" -msgstr "Przeładuj" +msgstr "Ładuj przed" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Index" -msgstr "Indeks Z" +msgstr "Weź indeks" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Set Index" -msgstr "Indeks Z" +msgstr "Ustaw indeks" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Global Constant" -msgstr "Stała" +msgstr "Stała globalna" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Class Constant" -msgstr "Stała" +msgstr "Stała klasy" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Basic Constant" -msgstr "Stała" +msgstr "Stała podstawowa" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Math Constant" -msgstr "Stała" +msgstr "Stała matematyczna" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Engine Singleton" -msgstr "Włączony singleton GDNative" +msgstr "Uzyskaj Singleton silnika" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Scene Node" -msgstr "Węzeł Przewijania w Czasie" +msgstr "Pozyskaj węzeł sceny" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Scene Tree" -msgstr "Edycja drzewa sceny" +msgstr "Pozyskaj drzewo sceny" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Self" -msgstr "Pojedynczo" +msgstr "Pozyskaj samego siebie" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "CustomNode" -msgstr "Wytnij węzły" +msgstr "NiestandardowyWęzeł" #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." @@ -13797,33 +13798,28 @@ msgstr "" "całkowitą (seq out), lub tekstową (error)." #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "SubCall" -msgstr "Wywołania" +msgstr "PodWywołania" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Construct %s" -msgstr "Stałe" +msgstr "Zbuduj %s" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Get Local Var" -msgstr "Użyj przestrzeni lokalnej" +msgstr "Użyj zmiennej lokalnej" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Set Local Var" -msgstr "Użyj przestrzeni lokalnej" +msgstr "Ustaw zmienną lokalną" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Action %s" -msgstr "Akcja" +msgstr "Akcja %s" #: modules/visual_script/visual_script_nodes.cpp msgid "Deconstruct %s" -msgstr "" +msgstr "Dekonstruuj %s" #: modules/visual_script/visual_script_property_selector.cpp msgid "Search VisualScript" @@ -13831,40 +13827,35 @@ msgstr "Przeszukaj VisualScript" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Yield" -msgstr "" +msgstr "Yield" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "Wait" msgstr "Czekaj" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Next Frame" -msgstr "Przesuń klatkę" +msgstr "Następna klatka" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "Next Physics Frame" -msgstr "Klatka fizyki %" +msgstr "Następna klatka fizyki" #: modules/visual_script/visual_script_yield_nodes.cpp msgid "%s sec(s)" -msgstr "" +msgstr "%s sekund(s)" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "WaitSignal" -msgstr "Sygnał" +msgstr "SygnałOczekiwania" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "WaitNodeSignal" -msgstr "Sygnał" +msgstr "SygnałOczekiwaniaWęzła" #: modules/visual_script/visual_script_yield_nodes.cpp -#, fuzzy msgid "WaitInstanceSignal" -msgstr "Instancja" +msgstr "SygnałOczekiwaniaInstancji" #: platform/android/export/export_plugin.cpp msgid "Package name is missing." @@ -14002,9 +13993,10 @@ msgstr "Niepoprawna nazwa paczki:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Niepoprawny moduł \"GodotPaymentV3\" załączony w ustawieniu projektu " -"\"android/modules\" (zmieniony w Godocie 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14263,166 +14255,167 @@ msgstr "Błąd uruchamiania serwera HTTP:" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "Nie można uzyskać dostępu do systemu plików." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "Nie udało się uzyskać hasha Info.plist." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Nieprawidłowa nazwa projektu." +msgstr "Nieprawidłowy plik Info.plist, brak nazwy pliku wykonywalnego." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Nieprawidłowy Info.plist, nie ma id pakietu." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Nieprawidłowa geometria, nie można utworzyć wielokąta." +msgstr "Nieprawidłowy Info.plist, nie można załadować." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "Nie można utworzyć katalogu." +msgstr "Nie można utworzyć podkatalogu \"%s\"." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "Nie udało się wypakować uszczuplonego pliku binarnego." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Niepoprawna ścieżka bazowa." +msgstr "Niepoprawny format binarny." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Już podpisane!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "Nie udało się wczytać zasobu." +msgstr "Nie udało się przetworzyć zagnieżdżonych zasobów." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "Nie udało się utworzyć podfolderu _CodeSignature." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "Nie udało się wczytać zasobu." +msgstr "Nie udało się wczytać hasha CodeResources." #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "Niepoprawne rozszerzenie." +msgstr "Nieprawidłowy plik uprawnień." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Niepoprawne rozszerzenie." +msgstr "Niepoprawny plik wykonywalny." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "Nie można zmienić rozmiaru polecenia ładowania podpisu." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "Nie udało się stworzyć dużego pliku binarnego." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Nieznany typ pakietu." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Nieznany typ obiektu." #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." msgstr "" +"Uwaga: Proces poświadczania trwa zazwyczaj mniej niż godzinę. Gdy proces " +"zostanie zakończony, otrzymasz wiadomość e-mail." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Możesz sprawdzić postęp ręcznie, otwierając Terminal i wykonując następujące " +"polecenie:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Uruchom następujące polecenie, aby przypiąć bilet notarialny do " +"eksportowanej aplikacji (opcjonalnie):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "Nie znaleziono ikon." +msgstr "Nie znaleziono tożsamości." #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "Tworzenie miniatury" +msgstr "Tworzenie pakietu aplikacji" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"Nie udało się znaleźć szablonu APK do eksportu:\n" -"%s" +msgstr "Nie udało się znaleźć szablonu aplikacji do eksportu:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"Relatywne linki symboliczne nie są obsługiwane na tym systemie operacyjnym, " +"wyeksportowany projekt może być uszkodzony!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." msgstr "" +"Nie znaleziono żądanego szablonu pliku binarnego '%s'. Być może brakuje go w " +"Twoim archiwum szablonów." #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "Tworzenie PKG" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"Aplikacje podpisane ad-hoc wymagają uprawnienia \"Wyłącz walidację " +"biblioteki\" do ładowania bibliotek dynamicznych." #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "Pakiet do podpisywania kodu" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Tworzenie DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "DMG podpisywania kodu" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Tworzenie ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"Poświadczenie wymaga wcześniejszego zarchiwizowania aplikacji, dlatego " +"należy wybrać format eksportu DMG lub ZIP." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Przesyłanie archiwum w celu poświadczenia" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14433,31 +14426,33 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Ostrzeżenie: Wbudowane \"podpisywanie kodu\" jest wybrane w ustawieniach " +"edytora. Podpisywanie kodu jest ograniczone tylko do podpisu ad-hoc." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Ostrzeżenie: Narzędzia wiersza poleceń Xcode nie są zainstalowane, zatem " +"używany jest wbudowany \"codesign\". Podpisywanie kodu jest ograniczone " +"tylko do podpisu ad-hoc." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." -msgstr "" +msgstr "Poświadczenie: Poświadczenie z podpisem ad hoc nie jest obsługiwane." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "Poświadczenie: wymagane podpisanie kodu." +msgstr "Notaryzacja: Wymagane podpisanie kodu." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "Poświadczenie: wymagane wzmocnione środowisko wykonawcze." +msgstr "Notaryzacja: Wymagane wzmocnione środowisko wykonawcze." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "Poświadczenie: wymagane wzmocnione środowisko wykonawcze." +msgstr "Notaryzacja: wymagane środowisko wykonawcze ze znacznikiem czasu." #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14472,63 +14467,86 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Osztrzeżenie: Poświadczenie jest wyłączone. Wyeksportowany projekt zostanie " +"zablokowany jeśli zostanie pobrany z nieznanego źródła." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"Podpisywanie kodu jest wyłączone. Wyeksportowany projekt nie będzie mógł " +"zostać uruchomiony na komputerach Mac z włączonym Gatekeeperem i komputerach " +"Mac napędzanych przez procesor Apple Silicon." #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" msgstr "" +"Hardened Runtime nie jest kompatybilny z podpisem ad-hoc i zostanie " +"wyłączony!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" msgstr "" +"Timestamping nie jest kompatybilny z podpisem ad-hoc i będzie wyłączony!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Ostrzeżenie: Poświadczenia nie są obsługiwane przez ten system operacyjny. " +"Wyeksportowany projekt zostanie zablokowany przez Gatekeeper, jeśli zostanie " +"pobrany z nieznanego źródła." #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Prywatność: Dostęp do mikrofonu jest włączony, ale opis jego użycia nie jest " +"określony." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Prywatność: Dostęp do kamery jest włączony, ale opis jej użycia nie jest " +"określony." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Prywatność: Dostęp do informacji o lokalizacji jest włączony, ale opis jej " +"użycia nie jest określony." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Prywatność: Dostęp do kontaktów jest włączony, ale opis ich użycia nie jest " +"określony." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Prywatność: Dostęp do kalendarza jest włączony, ale opis jego użycia nie " +"jest określony." #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"Prywatność: Dostęp do galerii zdjęć jest włączony, ale opis jej użycia nie " +"jest określony." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14595,21 +14613,20 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"Narzędzie rcedit musi być skonfigurowane w Ustawieniach edytora (Eksport > " +"Windows > Rcedit), aby zmienić ikonę lub dane informacji o aplikacji." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Niepoprawna ścieżka." +msgstr "Niepoprawna ścieżka ikony:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Niepoprawne rozszerzenie." +msgstr "Niepoprawna wersja pliku:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "Nieprawidłowy GUID produktu." +msgstr "Nieprawidłowa wersja produktu:" #: scene/2d/animated_sprite.cpp msgid "" @@ -14744,13 +14761,15 @@ msgstr "" #: scene/2d/navigation_agent_2d.cpp msgid "The NavigationAgent2D can be used only under a Node2D node." -msgstr "" +msgstr "NavigationAgent2D może zostać użyty tylko pod węzłem Node2D." #: scene/2d/navigation_obstacle_2d.cpp msgid "" "The NavigationObstacle2D only serves to provide collision avoidance to a " "Node2D object." msgstr "" +"NavigationObstacle2D służy jedynie do zapewnienia unikania kolizji obiektowi " +"Node2D." #: scene/2d/navigation_polygon.cpp msgid "" @@ -14776,14 +14795,13 @@ msgstr "" "ParallaxBackground." #: scene/2d/particles_2d.cpp -#, fuzzy msgid "" "GPU-based particles are not supported by the GLES2 video driver.\n" "Use the CPUParticles2D node instead. You can use the \"Convert to " "CPUParticles2D\" toolbar option for this purpose." msgstr "" "Cząsteczki oparte o GPU są nieobsługiwane przez sterownik wideo GLES2.\n" -"Użyj zamiast tego węzła CPUParticles2D. Możesz użyć do tego celu opcji " +"Zamiast tego użyj węzła CPUParticles2D. Możesz użyć do tego celu opcji " "\"Konwertuj na CPUParticles\"." #: scene/2d/particles_2d.cpp @@ -14794,6 +14812,12 @@ msgid "" "You can use the \"Convert to CPUParticles2D\" toolbar option for this " "purpose." msgstr "" +"W systemie macOS, renderowanie Particles2D jest znacznie wolniejsze niż " +"CPUParticles2D z powodu sprzężenia zwrotnego transformacji, które jest " +"implementowane na CPU zamiast na GPU.\n" +"Rozważ użycie CPUParticles2D zamiast Particles2D, gdy używasz macOS.\n" +"W tym celu można użyć opcji \"Konwertuj do CPUParticles2D\" na pasku " +"narzędzi." #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" @@ -15023,7 +15047,7 @@ msgstr "SpotLight z kątem szerszym niż 90 stopni nie może rzucać cieni." #: scene/3d/navigation_agent.cpp msgid "The NavigationAgent can be used only under a spatial node." -msgstr "" +msgstr "NavigationAgent może być stosowane wyłącznie pod węzłem przestrzennym." #: scene/3d/navigation_mesh_instance.cpp msgid "" @@ -15038,6 +15062,8 @@ msgid "" "The NavigationObstacle only serves to provide collision avoidance to a " "spatial object." msgstr "" +"NavigationObstacle służy jedynie do zapewnienia unikania kolizji dla obiektu " +"przestrzennego." #: scene/3d/occluder.cpp msgid "No shape is set." @@ -15048,14 +15074,13 @@ msgid "Only uniform scales are supported." msgstr "Obsługiwane są tylko jednolite skale." #: scene/3d/particles.cpp -#, fuzzy msgid "" "GPU-based particles are not supported by the GLES2 video driver.\n" "Use the CPUParticles node instead. You can use the \"Convert to " "CPUParticles\" toolbar option for this purpose." msgstr "" "Cząsteczki oparte o GPU są nieobsługiwane przez sterownik wideo GLES2.\n" -"Użyj zamiast tego węzła CPUParticles. Możesz użyć do tego celu opcji " +"Zamiast tego użyj węzła CPUParticles2D. Możesz użyć do tego celu opcji " "\"Konwertuj na CPUParticles\"." #: scene/3d/particles.cpp @@ -15065,6 +15090,12 @@ msgid "" "Consider using CPUParticles instead when targeting macOS.\n" "You can use the \"Convert to CPUParticles\" toolbar option for this purpose." msgstr "" +"Na macOS, renderowanie Cząsteczek jest znacznie wolniejsze niż CPUParticles " +"z powodu sprzężenia zwrotnego transformacji implementowanego na CPU zamiast " +"na GPU.\n" +"Rozważ użycie CPUParticles, gdy używasz macOS.\n" +"Możesz użyć do tego celu opcji \"Konwertuj do CPUParticles\" na pasku " +"narzędzi." #: scene/3d/particles.cpp msgid "" @@ -15335,7 +15366,6 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Ten węzeł jest przestarzały. Zamiast tego użyj AnimationTree." #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index 8dcc5099cb..0c9c84d7c9 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -1487,6 +1487,11 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Rename Function" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2878,7 +2883,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5619,6 +5624,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Slit th' Node" @@ -8138,7 +8147,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9063,6 +9077,11 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Paste yer Node" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "th' Members:" @@ -9111,6 +9130,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Edit yer Variable:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "th' Base Type:" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -9127,7 +9160,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "th' Base Type:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9863,18 +9907,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12511,6 +12543,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Paste yer Node" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13884,6 +13921,9 @@ msgstr "Yer unique name be evil." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/pt.po b/editor/translations/pt.po index 94dc606a58..ce77d75470 100644 --- a/editor/translations/pt.po +++ b/editor/translations/pt.po @@ -1493,6 +1493,11 @@ msgstr "Carregar o Modelo predefinido de barramento." msgid "Create a new Bus Layout." msgstr "Criar um novo Modelo de Barramento." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Abrir Modelo de barramento de áudio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nome inválido." @@ -2934,7 +2939,7 @@ msgstr "Alternar modo livre de distrações." msgid "Add a new scene." msgstr "Adicionar nova cena." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Cena" @@ -5705,6 +5710,10 @@ msgid "Bake Lightmaps" msgstr "Consolidar Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Selecionar ficheiro de consolidação de lightmap:" @@ -8184,7 +8193,13 @@ msgid "Cinematic Preview" msgstr "Pré-visualização Cinemática" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Não disponível para o renderizador GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9079,6 +9094,11 @@ msgid "Select Another Theme Resource:" msgstr "Selecionar Outro Recurso Tema:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Renomear recurso" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Outro Tema" @@ -9127,6 +9147,20 @@ msgstr "" "atualizar as mesmas em todos os StyleBoxes deste tipo." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Adicionar Tipo de Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Definir tipo de variável" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Mudar tipo base" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Mostrar Predefinição" @@ -9144,8 +9178,19 @@ msgid "Override all default type items." msgstr "Sobrepõe todos os itens de tipo predefinido." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Adicionar Tipo de Item" +#, fuzzy +msgid "Base Type" +msgstr "Mudar tipo base" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9847,18 +9892,6 @@ msgid "Commit list size" msgstr "Gravar tamanho da lista" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Ramos" @@ -12598,6 +12631,11 @@ msgid "Stack Frames" msgstr "Empilhar Frames" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrar Tiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Analisador" @@ -13917,9 +13955,10 @@ msgstr "Nome de pacote inválido:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Módulo inválido \"GodotPaymentV3\" incluído na configuração do projeto " -"\"android/modules\" (alterado em Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 5d3f9ee158..410f57eb1f 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -9,7 +9,7 @@ # Breno Caldeira <breno.caldeira@gmail.com>, 2018. # Francesco Perrotti-Garcia <fpg1503@gmail.com>, 2017. # George Marques <george@gmarqu.es>, 2016. -# Guilherme Felipe C G Silva <guilhermefelipecgs@gmail.com>, 2017, 2018, 2019. +# Guilherme Felipe C G Silva <guilhermefelipecgs@gmail.com>, 2017, 2018, 2019, 2022. # João Victor Lima <victordevtb@outlook.com>, 2018. # João Vitor de Oliveira Carlos <lopogax@gmail.com>, 2018. # Joaquim Ferreira <joaquimferreira1996@bol.com.br>, 2016, 2019, 2020. @@ -139,8 +139,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2022-02-14 22:08+0000\n" -"Last-Translator: PauloFRs <paulofr1@hotmail.com>\n" +"PO-Revision-Date: 2022-03-09 08:53+0000\n" +"Last-Translator: Guilherme Felipe C G Silva <guilhermefelipecgs@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -148,7 +148,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.11-dev\n" +"X-Generator: Weblate 4.12-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -1607,6 +1607,11 @@ msgstr "Carregar o Layout de Canais padrão." msgid "Create a new Bus Layout." msgstr "Criar um novo Layout de Canais." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Abrir Layout de Canais de Áudio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nome Inválido." @@ -2382,9 +2387,8 @@ msgid "Property:" msgstr "Propriedade:" #: editor/editor_inspector.cpp -#, fuzzy msgid "Pin value" -msgstr "Valor do pino" +msgstr "Fixar valor" #: editor/editor_inspector.cpp msgid "" @@ -3054,7 +3058,7 @@ msgstr "Alternar modo sem-distrações." msgid "Add a new scene." msgstr "Adicionar nova cena." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Cena" @@ -5842,6 +5846,10 @@ msgid "Bake Lightmaps" msgstr "Faça mapas de luz" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Selecione o arquivo de lightmap bake:" @@ -8327,7 +8335,13 @@ msgid "Cinematic Preview" msgstr "Pré-visualização Cinemática" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Não disponível ao usar o renderizador GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9223,6 +9237,11 @@ msgid "Select Another Theme Resource:" msgstr "Selecionar Outro Recurso de Tema:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Renomear Recurso" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Outro Tema" @@ -9271,6 +9290,20 @@ msgstr "" "atualizará as mesmas propriedades em todos os outros StyleBoxes deste tipo." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Adicionar Tipo de Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Definir o Tipo da Variável" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Mudar Tipo Base" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Mostrar Padrão" @@ -9288,8 +9321,19 @@ msgid "Override all default type items." msgstr "Substituir todos os itens do modelo padrão." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Adicionar Tipo de Item" +#, fuzzy +msgid "Base Type" +msgstr "Mudar Tipo Base" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9990,18 +10034,6 @@ msgid "Commit list size" msgstr "Confirmar tamanho da lista" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Ramos" @@ -12749,6 +12781,11 @@ msgid "Stack Frames" msgstr "Pilha de Quadros" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtros do tile" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Profilador" @@ -14105,9 +14142,10 @@ msgstr "Nome de pacote inválido:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Módulo \"GodotPaymentV3\" inválido incluido na configuração de projeto " -"\"android/modules\" (alterado em Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 1c63a57d74..3b993cdffe 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -1495,6 +1495,11 @@ msgstr "Încarcă Schema de Pistă Audio implicită." msgid "Create a new Bus Layout." msgstr "Creaţi o Schemă nouă de Pistă Audio." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Deschide Schema Pistei Audio" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Nume nevalid." @@ -2942,7 +2947,7 @@ msgstr "Comutează modul fără distrageri." msgid "Add a new scene." msgstr "Adaugă o nouă scenă." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scenă" @@ -5737,6 +5742,10 @@ msgid "Bake Lightmaps" msgstr "Procesează Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Selectare fișier șablon pentru harta de lumină:" @@ -8343,7 +8352,12 @@ msgid "Cinematic Preview" msgstr "Se creează Previzualizările Mesh-ului" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9290,6 +9304,11 @@ msgstr "Ștergere resursă" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Re-numire resursă" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Membri" @@ -9344,6 +9363,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Adaugă Obiect" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Modificare tip bază:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Modificare tip bază:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Încărcați Implicit" @@ -9362,8 +9396,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Adaugă Obiect" +msgid "Base Type" +msgstr "Modificare tip bază:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -10113,18 +10157,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Potriviri:" @@ -12779,6 +12811,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrare Tiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14143,6 +14180,9 @@ msgstr "Nume pachet nevalid:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 77e4143911..9a79eb258a 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -107,7 +107,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-02-10 07:50+0000\n" +"PO-Revision-Date: 2022-02-20 00:54+0000\n" "Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" @@ -1575,6 +1575,11 @@ msgstr "Загрузить раскладку шины по умолчанию." msgid "Create a new Bus Layout." msgstr "Создать новую раскладку шины." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Открыть раскладку звуковой шины" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Недопустимое имя." @@ -3021,7 +3026,7 @@ msgstr "Переключить режим без отвлечения." msgid "Add a new scene." msgstr "Добавить новую сцену." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Сцена" @@ -3395,14 +3400,12 @@ msgid "Update Continuously" msgstr "Непрерывное обновление" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Обновлять при изменениях" +msgstr "Обновлять при любых изменениях" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Материалов изменено:" +msgstr "Обновлять при важных изменениях" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4179,6 +4182,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Данное расширение файла не распознано редактором.\n" +"Если вы всё равно хотите переименовать его, используйте файловый менеджер " +"вашей операционной системы.\n" +"После переименования в неизвестное расширение файл больше не будет " +"отображаться в редакторе." #: editor/filesystem_dock.cpp msgid "" @@ -5792,6 +5800,10 @@ msgid "Bake Lightmaps" msgstr "Запекать карты освещения" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Выберите файл запекания карты освещения:" @@ -8274,7 +8286,13 @@ msgid "Cinematic Preview" msgstr "Кинематографический предварительный просмотр" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Недоступно при использовании рендерера GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9172,6 +9190,11 @@ msgid "Select Another Theme Resource:" msgstr "Выбрать другой ресурс темы:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Переименовать ресурс" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Другая тема" @@ -9221,6 +9244,20 @@ msgstr "" "этого типа." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Добавить тип элемента" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Установить тип переменной" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Изменить базовый тип" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Показать по умолчанию" @@ -9239,8 +9276,19 @@ msgid "Override all default type items." msgstr "Переопределить все элементы типа по умолчанию." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Добавить тип элемента" +#, fuzzy +msgid "Base Type" +msgstr "Изменить базовый тип" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9942,18 +9990,6 @@ msgid "Commit list size" msgstr "Размер списка коммитов" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Ветки" @@ -12704,6 +12740,11 @@ msgid "Stack Frames" msgstr "Стек" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Фильтр тайлов" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Профайлер" @@ -12878,14 +12919,12 @@ msgid "Set Occluder Sphere Position" msgstr "Задать положение сферы окклюдера" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Задать положение точки портала" +msgstr "Задать положение точки полигона окклюдера" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Установить положение точки кривой" +msgstr "Задать положение точки отверстия окклюдера" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -14020,9 +14059,10 @@ msgstr "Недопустимое имя пакета:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Недопустимый модуль «GodotPaymentV3», включенный в настройку проекта " -"«android/modules» (изменен в Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14282,166 +14322,167 @@ msgstr "Ошибка запуска HTTP-сервера:" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "Не удаётся получить доступ к файловой системе." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "Не удалось получить хеш Info.plist." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Недопустимое имя проекта." +msgstr "Недопустимый Info.plist, нет имени exe." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Недопустимый Info.plist, нет id пакета." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Некорректная геометрия, нельзя создать полигональную сетку." +msgstr "Недопустимый Info.plist, не удаётся загрузить." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "Невозможно создать папку." +msgstr "Не удалось создать подпапку «%s»." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "Не удалось распаковать двоичный файл." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Недопустимый базовый путь." +msgstr "Недопустимый двоичный формат." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Уже подписано!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "Не удалось загрузить ресурс." +msgstr "Не удалось обработать вложенные ресурсы." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "Не удалось создать подпапку _CodeSignature." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "Не удалось загрузить ресурс." +msgstr "Не удалось получить хеш CodeResources." #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "Недопустимое расширение." +msgstr "Недопустимый файл прав." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Недопустимое расширение." +msgstr "Недопустимый исполняемый файл." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "Не удаётся изменить размер команды загрузки подписи." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "Не удалось создать большой двоичный файл." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Неизвестный тип пакета." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Неизвестный тип объекта." #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." msgstr "" +"Примечание: Процесс подтверждения обычно занимает менее часа. Когда процесс " +"завершится, вы получите электронное письмо." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Вы можете проверить ход выполнения вручную, открыв терминал и выполнив " +"следующую команду:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Выполните следующую команду, чтобы прикрепить заявку на подтверждение к " +"экспортированному приложению (необязательно):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "Иконки не найдены." +msgstr "Identity не найдена." #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "Создание эскизов" +msgstr "Создание пакета приложения" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"Не удалось найти шаблон APK для экспорта:\n" -"%s" +msgstr "Не удалось найти шаблон приложения для экспорта:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"Относительные символические ссылки не поддерживаются в этой ОС, " +"экспортируемый проект может быть повреждён!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." msgstr "" +"Запрошенный двоичный файл шаблона «%s» не найден. Он может отсутствовать в " +"вашем архиве шаблонов." #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "Создание PKG" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"Для подписанных ad-hoc приложений требуется право «Отключить проверку " +"библиотеки» для загрузки динамических библиотек." #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "Подпись кода пакета" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Создание DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "Подпись кода DMG" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Создание ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"Подтверждение требует, чтобы приложение было сначала архивировано, вместо " +"этого выберите формат экспорта DMG или ZIP." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Отправка архива для подтверждения" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14452,31 +14493,35 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Предупреждение: В настройках редактора выбран встроенный «codesign». " +"Подписание кода ограничено только подписью ad-hoc." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Предупреждение: инструменты командной строки Xcode не установлены, " +"используется встроенный «codesign». Подписание кода ограничено только " +"подписью ad-hoc." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." -msgstr "" +msgstr "Подтверждение: Подтверждение подписью ad-hoc не поддерживается." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "Предупреждение: требуется подписание кода." +msgstr "Подтверждение: для подтверждения требуется подпись кода." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "Предупреждение: требуется усиленный рантайм." +msgstr "" +"Подтверждение: для подтверждения требуется защищённая среда выполнения." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "Предупреждение: требуется усиленный рантайм." +msgstr "" +"Подтверждение: для подтверждения требуется метка времени среды выполнения." #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14491,63 +14536,84 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Предупреждение: Подтверждение отключено. Экспортированный проект будет " +"заблокирован Gatekeeper, если он загружен из неизвестного источника." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"Подписание кода отключено. Экспортированный проект не будет работать на " +"компьютерах Mac с включённым Gatekeeper и компьютерах Mac с процессором " +"Apple Silicon." #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" msgstr "" +"Защищённая среда выполнения несовместима с подписью ad-hoc и будет отключена!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" -msgstr "" +msgstr "Временные метки не совместимы с подписью ad-hoc и будут отключены!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Предупреждение: Подтверждение не поддерживается в этой ОС. Экспортированный " +"проект будет заблокирован Gatekeeper, если он загружен из неизвестного " +"источника." #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Конфиденциальность: Доступ к микрофону включён, но описание использования не " +"указано." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Конфиденциальность: Доступ к камере включён, но описание использования не " +"указано." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Конфиденциальность: Доступ к информации о местоположении включён, но " +"описание использования не указано." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Конфиденциальность: Доступ к адресной книге включён, но описание " +"использования не указано." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Конфиденциальность: Доступ к календарю включён, но описание использования не " +"указано." #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"Конфиденциальность: Доступ к библиотеке фотографий включён, но описание " +"использования не указано." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14606,21 +14672,20 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"Инструмент rcedit должен быть настроен в Настройках редактора (Export > " +"Windows > Rcedit) для изменения значка или информационных данных приложения." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Недопустимый путь." +msgstr "Недопустимый путь к иконке:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Недопустимое расширение." +msgstr "Недопустимая версия файла:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "Неверный GUID продукта." +msgstr "Недопустимая версия продукта:" #: scene/2d/animated_sprite.cpp msgid "" @@ -15360,14 +15425,13 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Этот узел был удален. Вместо этого используйте AnimationTree." #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" "RMB: Remove preset" msgstr "" "Цвет: #%s\n" -"ЛКМ: Установить цвет\n" +"ЛКМ: Применить цвет\n" "ПКМ: Удалить пресет" #: scene/gui/color_picker.cpp diff --git a/editor/translations/si.po b/editor/translations/si.po index 178bcfdfad..e875e8e5bf 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -1463,6 +1463,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2819,7 +2823,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5480,6 +5484,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7928,7 +7936,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8815,6 +8828,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8862,6 +8879,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8878,7 +8907,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9566,18 +9605,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12154,6 +12181,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13458,6 +13489,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/sk.po b/editor/translations/sk.po index d502613ca1..2f561af326 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -1488,6 +1488,11 @@ msgstr "Načítať základný Bus Layout." msgid "Create a new Bus Layout." msgstr "Vytvoriť nový Bus Layout." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Otvoriť Audio Bus Layout" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Neplatný Názov." @@ -2932,7 +2937,7 @@ msgstr "Prepnúť režim bez rozptyľovania." msgid "Add a new scene." msgstr "Pridať novú scénu." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scéna" @@ -5717,6 +5722,10 @@ msgid "Bake Lightmaps" msgstr "Bake Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Vybrať Súbor Šablóny" @@ -8258,7 +8267,12 @@ msgid "Cinematic Preview" msgstr "Filmové Predzobrazenie" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9197,6 +9211,11 @@ msgstr "Hľadať Náhradný Zdroj:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Prostriedok" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Súbor:" @@ -9249,6 +9268,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Zmeniť %s Typ" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Zmeniť %s Typ" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Načítať predvolené" @@ -9267,7 +9300,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Zmeniť %s Typ" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -10022,18 +10066,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Zhody:" @@ -12678,6 +12710,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filter:" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14043,6 +14080,9 @@ msgstr "Nesprávna veľkosť písma." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 551b2a5c91..baa466cb84 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -1549,6 +1549,11 @@ msgstr "Naloži prevezeto Postavitev Vodila." msgid "Create a new Bus Layout." msgstr "Ustvari novo Postavitev Vodila." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Odpri Zvočno Vodilo" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Neveljavno ime." @@ -3036,7 +3041,7 @@ msgstr "Preklop način pisanja brez motenj." msgid "Add a new scene." msgstr "Dodaj nov Prizor." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Prizor" @@ -5922,6 +5927,10 @@ msgid "Bake Lightmaps" msgstr "Zapeči Svetlobne karte" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Izberi datoteko predloge" @@ -8525,7 +8534,12 @@ msgid "Cinematic Preview" msgstr "Ustvari Predogled Modela" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9477,6 +9491,11 @@ msgstr "Iskanje Nadomestnih Virov:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Viri" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Člani" @@ -9528,6 +9547,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Nastavite Tip Spremenljivke" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Spremeni Osnovni Tip" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Naložite Prevzeto" @@ -9545,7 +9578,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Spremeni Osnovni Tip" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -10306,18 +10350,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Zadetki:" @@ -13018,6 +13050,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtriraj datoteke..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14399,6 +14436,9 @@ msgstr "Neveljavno ime." msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/sq.po b/editor/translations/sq.po index b4115a9c60..83fbc22055 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -1485,6 +1485,11 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Faqosja e Editorit" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Emër i palejuar." @@ -2975,7 +2980,7 @@ msgstr "Ndrysho metodën pa shpërqëndrime." msgid "Add a new scene." msgstr "Shto një skenë të re." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Skenë" @@ -5774,6 +5779,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Zgjidh skedarin e shabllonit" @@ -8263,7 +8272,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9191,6 +9205,11 @@ msgid "Select Another Theme Resource:" msgstr "Kërko Resursin Zëvendësues:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Resursi" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -9241,6 +9260,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Ndrysho Tipin e %s" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Ndrysho Tipin e %s" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Ngarko të Parazgjedhur" @@ -9259,7 +9292,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Ndrysho Tipin e %s" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9967,18 +10011,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Përputhjet:" @@ -12619,6 +12651,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtro Skedarët..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13960,6 +13997,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index fab8794167..b536e1999d 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -1607,6 +1607,11 @@ msgstr "Учитај уобичајен бас распоред." msgid "Create a new Bus Layout." msgstr "Направи нови бас распоред." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Отвори распоред звучног баса" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Неважеће име." @@ -3157,7 +3162,7 @@ msgstr "Укљ./Искљ. режим без сметње." msgid "Add a new scene." msgstr "Додај нову сцену." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Сцена" @@ -6190,6 +6195,10 @@ msgid "Bake Lightmaps" msgstr "Изпеци МапеСенчења" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Одабери шаблонску датотеку" @@ -8961,8 +8970,13 @@ msgid "Cinematic Preview" msgstr "Направи приказ мрежа" #: editor/plugins/spatial_editor_plugin.cpp +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp #, fuzzy -msgid "Not available when using the GLES2 renderer." +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Недоступно кад користиш GLES2 изцртавање." #: editor/plugins/spatial_editor_plugin.cpp @@ -9955,6 +9969,11 @@ msgstr "Обриши ресурс" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Преименуј ресурс" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Увези тему" @@ -10009,6 +10028,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Додај ствар" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Постави Врсту Променљиве" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Измени уобичајен тип" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Учитај уобичајено" @@ -10027,8 +10061,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Додај ствар" +msgid "Base Type" +msgstr "Промени Тип" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -10850,18 +10894,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Подударање:" @@ -14106,6 +14138,11 @@ msgstr "Наслага Фрејмова" #: editor/script_editor_debugger.cpp #, fuzzy +msgid "Filter stack variables" +msgstr "Филтрирај датотеке..." + +#: editor/script_editor_debugger.cpp +#, fuzzy msgid "Profiler" msgstr "Осматрач" @@ -15630,6 +15667,9 @@ msgstr "Неважеће име паковања:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index e4a6a62ec9..fb9a577739 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -6,13 +6,14 @@ # BLu <blmasfon@gmail.com>, 2018. # Vojislav Bajakic <ch3d4.ns@gmail.com>, 2018. # LT <lakizvezdas@gmail.com>, 2019. +# Marko Mihajlović <creationsmarko@gmail.com>, 2022. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-07-29 19:21+0000\n" -"Last-Translator: LT <lakizvezdas@gmail.com>\n" +"PO-Revision-Date: 2022-02-26 10:27+0000\n" +"Last-Translator: Marko Mihajlović <creationsmarko@gmail.com>\n" "Language-Team: Serbian (latin) <https://hosted.weblate.org/projects/godot-" "engine/godot/sr_Latn/>\n" "Language: sr_Latn\n" @@ -21,78 +22,78 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.8-dev\n" +"X-Generator: Weblate 4.11.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 "Nevažeći tip argumenta za convert(), koristi TYPE_* konstante." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "" +msgstr "Očekivana niska dužine 1 (karakter)." #: 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 "Nema dovoljno bajtova za dekodiranje bajtova, ili nevažeći format." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "Nevažeći unos %i (nije prenesen) u izrazu" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "self ne može biti korišćen jer je instanca null (nije prosledjena)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "Nedozvoljen operand do operatora %s, %s i %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "Nedozvoljen indeks tipa %s za bazu tipa %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "Nedozvoljeno imenovan indeks '%s' za bazu tipa %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "" +msgstr "Neispravni argumenti za konstrukciju '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "Pri pozivu '%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" @@ -120,7 +121,7 @@ msgstr "Dodaj ključ ovde" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" -msgstr "Dupliraj Selektovane Ključeve" +msgstr "Dupliraj Obeležene Ključeve" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" @@ -136,56 +137,51 @@ msgstr "Pomeri Bezier Tačke" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" -msgstr "Animacija Uduplaj Ključeve" +msgstr "Anim Dupliraj Ključeve" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Delete Keys" -msgstr "Animacija Obriši Ključeve" +msgstr "Anim Obriši Ključeve" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Time" -msgstr "Animacija Promjeni Vrijeme Ključnog Kadra" +msgstr "Animacija Promeni Vreme Ključnog Kadra" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "Animacija Promjeni Tranziciju" +msgstr "Anim Promeni Prelaz" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" -msgstr "Animacija Promjeni Transformaciju" +msgstr "Anim Promeni Transformaciju" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" -msgstr "Animacija Promjeni Vrijednost Ključnog Kadra" +msgstr "Animacija Promeni Vrednost Ključnog Kadra" #: editor/animation_track_editor.cpp msgid "Anim Change Call" -msgstr "Animacija Promjeni Poziv" +msgstr "Anim Promjeni Poziv" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Time" -msgstr "Animacija Promjeni Vrijeme Ključnog Kadra" +msgstr "Anim Promeni Vremena Ključnih Kadrova" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transition" -msgstr "Animacija Promjeni Tranziciju" +msgstr "Anim Promeni Tranzicije" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Transform" -msgstr "Animacija Promjeni Transformaciju" +msgstr "Anim Promeni Transformacije" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Keyframe Value" -msgstr "Animacija Promjeni Vrijednost Ključnog Kadra" +msgstr "Anim Promeni Vrednost Ključnih Kadrova" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Multi Change Call" -msgstr "Animacija Promjeni Poziv" +msgstr "Anim Promeni Pozive" #: editor/animation_track_editor.cpp msgid "Change Animation Length" @@ -194,52 +190,50 @@ msgstr "Promeni Dužinu Animacije" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "Promeni Ponavljanje Animacije" #: editor/animation_track_editor.cpp msgid "Property Track" -msgstr "" +msgstr "Osobine Trake" #: editor/animation_track_editor.cpp msgid "3D Transform Track" -msgstr "" +msgstr "3D Transformacija trake" #: editor/animation_track_editor.cpp msgid "Call Method Track" -msgstr "" +msgstr "Traka Poziva Metoda" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" -msgstr "" +msgstr "Traka Bezier krive" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" -msgstr "Audio Plejbek Traka" +msgstr "Audio Reprodukciona Traka" #: editor/animation_track_editor.cpp msgid "Animation Playback Track" -msgstr "Animacija Plejbek Traka" +msgstr "Animacija Reprodukciona Traka" #: editor/animation_track_editor.cpp msgid "Animation length (frames)" -msgstr "Dužina Animacije (frames)" +msgstr "Dužina Animacije (frejmova)" #: editor/animation_track_editor.cpp msgid "Animation length (seconds)" -msgstr "Dužina Animacije (secunde)" +msgstr "Dužina animacije (sekunde)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track" msgstr "Dodaj Traku" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "" +msgstr "Ponavljanje Animacije" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Functions:" msgstr "Funkcije:" @@ -248,34 +242,32 @@ msgid "Audio Clips:" msgstr "Audio Klipovi:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Clips:" msgstr "Anim Klipovi:" #: editor/animation_track_editor.cpp msgid "Change Track Path" -msgstr "" +msgstr "Izmeni Mesto Trake" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." -msgstr "" +msgstr "Uključi/isključi ovu traku." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "" +msgstr "Način Ažuriranja (Kako je ova osobina postavljena)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" -msgstr "" +msgstr "Način Interpolacije" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" -msgstr "" +msgstr "Režim Umotanog Ponavljanja (Meša kraj sa početkom pri ponavljanju)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Remove this track." -msgstr "Odstrani Kanal Animacije" +msgstr "Ukloni ovu traku." #: editor/animation_track_editor.cpp msgid "Time (s): " @@ -283,7 +275,7 @@ msgstr "Vreme (s): " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "" +msgstr "Umogući/Onemogući Traku" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -299,12 +291,11 @@ msgstr "Okidač" #: editor/animation_track_editor.cpp msgid "Capture" -msgstr "" +msgstr "Ulovi" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Nearest" -msgstr "Najbliže" +msgstr "Najbliža" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp @@ -313,62 +304,57 @@ msgstr "Linearna" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "" +msgstr "Kubno" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" -msgstr "" +msgstr "Ograniči Interp Ponavljanja" #: editor/animation_track_editor.cpp msgid "Wrap Loop Interp" -msgstr "" +msgstr "Interp Umotanog Ponavljanja" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "Unesi Ključ" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Duplicate Key(s)" -msgstr "Dupliraj Ključeve" +msgstr "Dupliraj Ključ(eve)" #: editor/animation_track_editor.cpp msgid "Add RESET Value(s)" -msgstr "" +msgstr "Dodaj RESET Vrednost(i)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Delete Key(s)" -msgstr "Obriši Ključeve" +msgstr "Obriši Ključ(eve)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" -msgstr "Promijeni Dužinu Animacije" +msgstr "Promijeni Način Ažuriranja Animacije" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Interpolation Mode" -msgstr "Promijeni Dužinu Animacije" +msgstr "Promeni način Interpolacije Animacije" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Loop Mode" -msgstr "Optimizuj Animaciju" +msgstr "Promeni Način Ponavljanja Animacije" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" -msgstr "Odstrani Kanal Animacije" +msgstr "Ukloni Anim Traku" #. TRANSLATORS: %s will be replaced by a phrase describing the target of track. #: editor/animation_track_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "Napravi Novi kanal za %s i dodaj ključ?" +msgstr "Napravi NOVU traku za %s i dodaj ključ?" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" -msgstr "Napravi %d novih kanala i dodaj ključeve?" +msgstr "Napravi %d NOVIH traka i dodaj ključeve?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp #: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp @@ -385,52 +371,51 @@ msgstr "Napravi" #: editor/animation_track_editor.cpp msgid "Anim Insert" -msgstr "Animacija Umetni" +msgstr "Anim Ubaci" #. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. #: editor/animation_track_editor.cpp msgid "node '%s'" -msgstr "" +msgstr "čvor '%s'" #. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. #: editor/animation_track_editor.cpp -#, fuzzy msgid "animation" -msgstr "Optimizuj Animaciju" +msgstr "Animacija" #: editor/animation_track_editor.cpp msgid "AnimationPlayer can't animate itself, only other players." -msgstr "" +msgstr "Plejer Animacija ne može animirati sebe, samo druge plejere." #. TRANSLATORS: This describes the target of new animation track, will be inserted into another string. #: editor/animation_track_editor.cpp msgid "property '%s'" -msgstr "" +msgstr "Osobina '%s'" #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" -msgstr "Animacija Napravi i Dodaj" +msgstr "Anim Napravi i Ubaci" #: editor/animation_track_editor.cpp msgid "Anim Insert Track & Key" -msgstr "Animacija Dodaj kanal i ključ" +msgstr "Anim Ubaci Traku i Ključ" #: editor/animation_track_editor.cpp msgid "Anim Insert Key" -msgstr "Animacija dodaj ključ" +msgstr "Anim Ubaci Ključ" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Step" -msgstr "Počisti Animaciju" +msgstr "Promeni Korake Animacije" #: editor/animation_track_editor.cpp msgid "Rearrange Tracks" -msgstr "" +msgstr "Rasporedi Trake" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." msgstr "" +"Transformacione trake primenjuju se samo na Prostorno-baziranim čvorovima." #: editor/animation_track_editor.cpp msgid "" @@ -439,66 +424,67 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" +"Audio trake mogu da upute samo na čvorove tipa:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "" +msgstr "Animacione trake mogu da upute samo na AnimationPlayer čvorove." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "Nije moguće dodati novu traku bez korena" #: editor/animation_track_editor.cpp msgid "Invalid track for Bezier (no suitable sub-properties)" -msgstr "" +msgstr "Nevažeća traka za Bezier (nema pogodnih pod-osobina)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Bezier Track" -msgstr "Dodaj Bezier Kanal" +msgstr "Dodaj Bezier Traku" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." -msgstr "" +msgstr "Mesto trake je nevažeće, ne može se dodati ključ." #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "Traka nije Prostornog tipa, ne može se dodati ključ" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Transform Track Key" -msgstr "Animacija Dodaj kanal i ključ" +msgstr "Dodaj ključ transformacione trake" #: editor/animation_track_editor.cpp msgid "Add Track Key" -msgstr "Dodaj Kljuc Kanal" +msgstr "Dodaj Kljuc u Traku" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." -msgstr "" +msgstr "Mesto trake je nevažeće, ne može se dodati ključ metode." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Method Track Key" -msgstr "Animacija Dodaj kanal i ključ" +msgstr "Dodaj Ključ Metodne Trake" #: editor/animation_track_editor.cpp msgid "Method not found in object: " -msgstr "" +msgstr "Metod nije nađen u objektu: " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" -msgstr "Animacija Pomjeri Ključeve" +msgstr "Anim Pomeri Ključeve" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Clipboard is empty!" -msgstr "" +msgstr "Klipbord je prazan!" #: editor/animation_track_editor.cpp msgid "Paste Tracks" -msgstr "" +msgstr "Zalepi Trake" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" @@ -507,12 +493,11 @@ msgstr "Animacija Skaliraj Ključeve" #: editor/animation_track_editor.cpp msgid "" "This option does not work for Bezier editing, as it's only a single track." -msgstr "" +msgstr "Ova opcija ne radi za Bezier obradu, jer je jedna traka." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Add RESET Keys" -msgstr "Animacija Skaliraj Ključeve" +msgstr "Anim Dodaj RESET Ključeve" #: editor/animation_track_editor.cpp msgid "" @@ -526,39 +511,48 @@ msgid "" "Alternatively, use an import preset that imports animations to separate " "files." msgstr "" +"Ova animacija pripada uvezenoj sceni, pa promene na uvezenim trakama neće " +"biti sačuvane.\n" +"\n" +"Da omogućiš sposobnost dodavanja prilagođenih traka, uputi se ka uvoznim " +"podešavanjima scene i postavi\n" +"\"Animacija > Skladište\" u \"Datoteke\", omogući \"Animacija > Zadrži " +"Prilagođene Trake\", zatim ponovo uvezi.\n" +"Alternativno, koristi uvozna podešavanja koja uvoze animacije u zasebne " +"datoteke." #: editor/animation_track_editor.cpp msgid "Warning: Editing imported animation" -msgstr "" +msgstr "Upozorenje: Obrađivanje uvezene animacije" #: editor/animation_track_editor.cpp msgid "Select an AnimationPlayer node to create and edit animations." -msgstr "" +msgstr "Izaberi AnimationPlayer čvor da bi napravio i uredio animacije." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." -msgstr "" +msgstr "Prikaži samo trake od čvorova koji su označeni u stablu." #: editor/animation_track_editor.cpp msgid "Group tracks by node or display them as plain list." -msgstr "" +msgstr "Grupiši trake po čvoru ili ih prikaži kao običnu listu." #: editor/animation_track_editor.cpp msgid "Snap:" -msgstr "" +msgstr "Kačenje:" #: editor/animation_track_editor.cpp msgid "Animation step value." -msgstr "" +msgstr "Vrednost koraka animacije." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Sekunde" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "FPS" -msgstr "" +msgstr "FPS" #: editor/animation_track_editor.cpp editor/editor_plugin_settings.cpp #: editor/editor_resource_picker.cpp @@ -569,15 +563,15 @@ msgstr "" #: editor/project_settings_editor.cpp editor/property_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Edit" -msgstr "" +msgstr "Uredi" #: editor/animation_track_editor.cpp msgid "Animation properties." -msgstr "" +msgstr "Osobine animacije." #: editor/animation_track_editor.cpp msgid "Copy Tracks" -msgstr "" +msgstr "Kopiraj Trake" #: editor/animation_track_editor.cpp msgid "Scale Selection" @@ -594,26 +588,23 @@ msgstr "Uduplaj Selekciju" #: editor/animation_track_editor.cpp msgid "Duplicate Transposed" -msgstr "" +msgstr "Dupliraj Transponovanu" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Delete Selection" -msgstr "Uduplaj Selekciju" +msgstr "Ukloni oznaku" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Otiđi Na Sljedeći Korak" +msgstr "Idi na Sledeći Korak" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Otiđi Na Prethodni Korak" +msgstr "Idi na Prethodni Korak" #: editor/animation_track_editor.cpp msgid "Apply Reset" -msgstr "" +msgstr "Primeni Reset" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -625,64 +616,63 @@ msgstr "Počisti Animaciju" #: editor/animation_track_editor.cpp msgid "Pick the node that will be animated:" -msgstr "" +msgstr "Izaberi čvor koji će biti animiran:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "Koristi Bezier krive" #: editor/animation_track_editor.cpp msgid "Create RESET Track(s)" -msgstr "" +msgstr "Napravi RESET Traku(ke)" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" -msgstr "" +msgstr "Anim. Optimizator" #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" -msgstr "" +msgstr "Max. Linearna Greška:" #: editor/animation_track_editor.cpp msgid "Max. Angular Error:" -msgstr "" +msgstr "Max. Ugaona Greška:" #: editor/animation_track_editor.cpp msgid "Max Optimizable Angle:" -msgstr "" +msgstr "Max Ugao Koji Se Može Optimizovati:" #: editor/animation_track_editor.cpp msgid "Optimize" -msgstr "" +msgstr "Optimizuj" #: editor/animation_track_editor.cpp msgid "Remove invalid keys" -msgstr "" +msgstr "Ukloni nevažeće ključeve" #: editor/animation_track_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "" +msgstr "Ukloni nerešene i prazne trake" #: editor/animation_track_editor.cpp msgid "Clean-up all animations" -msgstr "" +msgstr "Očisti sve animacije" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation(s) (NO UNDO!)" -msgstr "" +msgstr "Očisti Animaciju(je) (NEMA OPOZIVANJA!)" #: editor/animation_track_editor.cpp msgid "Clean-Up" -msgstr "" +msgstr "Očisti" #: editor/animation_track_editor.cpp msgid "Scale Ratio:" -msgstr "" +msgstr "Razmera:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select Tracks to Copy" -msgstr "Postavi tranzicije na:" +msgstr "Izaberi Trake za Kopiranje" #: editor/animation_track_editor.cpp editor/editor_log.cpp #: editor/editor_resource_picker.cpp @@ -691,148 +681,148 @@ msgstr "Postavi tranzicije na:" #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Copy" -msgstr "" +msgstr "Kopiraj" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Select All/None" -msgstr "Uduplaj Selekciju" +msgstr "Označi Sve/Ništa" #: editor/animation_track_editor_plugins.cpp -#, fuzzy msgid "Add Audio Track Clip" -msgstr "Animacija Dodaj Kanal" +msgstr "Dodaj Klip Audio Trake" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Promeni Početnu Poziciju Klipa Audio Trake" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Promeni Poziciju Kraja Klipa Audio Trake" #: editor/array_property_edit.cpp msgid "Resize Array" -msgstr "" +msgstr "Promeni Veličinu Niza" #: editor/array_property_edit.cpp msgid "Change Array Value Type" -msgstr "" +msgstr "Promeni Tip Vrednosti Niza" #: editor/array_property_edit.cpp msgid "Change Array Value" -msgstr "" +msgstr "Promeni Vrednost Niza" #: editor/code_editor.cpp msgid "Go to Line" -msgstr "" +msgstr "Idi na Liniju" #: editor/code_editor.cpp msgid "Line Number:" -msgstr "" +msgstr "Broj Linije:" #: editor/code_editor.cpp msgid "%d replaced." -msgstr "" +msgstr "%d zamenjen." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." -msgstr "" +msgstr "%d podudara." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d matches." -msgstr "" +msgstr "%d podudara." #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Match Case" -msgstr "" +msgstr "Slučaj Podudaranja" #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Whole Words" -msgstr "" +msgstr "Cele Reči" #: editor/code_editor.cpp msgid "Replace" -msgstr "" +msgstr "Zameni" #: editor/code_editor.cpp msgid "Replace All" -msgstr "" +msgstr "Zameni Sve" #: editor/code_editor.cpp msgid "Selection Only" -msgstr "" +msgstr "Samo Obeleženo" #: editor/code_editor.cpp editor/plugins/script_text_editor.cpp #: editor/plugins/text_editor.cpp msgid "Standard" -msgstr "" +msgstr "Standardno" #: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp msgid "Toggle Scripts Panel" -msgstr "" +msgstr "Uključi/Isključi Panel sa Skriptama" #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/sprite_frames_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 "Uveličaj" #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/sprite_frames_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 "Umanji" #: editor/code_editor.cpp msgid "Reset Zoom" -msgstr "" +msgstr "Resetuj Uveličavanje" #: editor/code_editor.cpp msgid "Warnings" -msgstr "" +msgstr "Upozorenja" #: editor/code_editor.cpp msgid "Line and column numbers." -msgstr "" +msgstr "Brojevi redova i kolona." #: editor/connections_dialog.cpp msgid "Method in target node must be specified." -msgstr "" +msgstr "Metod u ciljnom čvoru mora biti naveden." #: editor/connections_dialog.cpp msgid "Method name must be a valid identifier." -msgstr "" +msgstr "Naziv metoda mora biti važeći označavač." #: editor/connections_dialog.cpp msgid "" "Target method not found. Specify a valid method or attach a script to the " "target node." msgstr "" +"Ciljni metod nije nađen. Navedi važeći metod ili priloži skriptu ciljnom " +"čvoru." #: editor/connections_dialog.cpp msgid "Connect to Node:" -msgstr "" +msgstr "Poveži sa čvorom:" #: editor/connections_dialog.cpp msgid "Connect to Script:" -msgstr "" +msgstr "Poveži sa Skriptom:" #: editor/connections_dialog.cpp msgid "From Signal:" -msgstr "" +msgstr "Iz Signala:" #: editor/connections_dialog.cpp msgid "Scene does not contain any script." -msgstr "" +msgstr "Scena ne sadrži ni jednu skriptu." #: 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 "Dodaj" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp @@ -842,44 +832,45 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" -msgstr "" +msgstr "Ukloni" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "" +msgstr "Dodaj Dodatni Argument Poziva:" #: editor/connections_dialog.cpp msgid "Extra Call Arguments:" -msgstr "" +msgstr "Dodatni Argumenti Poziva:" #: editor/connections_dialog.cpp msgid "Receiver Method:" -msgstr "" +msgstr "Metod Prijemnika:" #: editor/connections_dialog.cpp msgid "Advanced" -msgstr "" +msgstr "Napredno" #: editor/connections_dialog.cpp msgid "Deferred" -msgstr "" +msgstr "Odložen" #: editor/connections_dialog.cpp msgid "" "Defers the signal, storing it in a queue and only firing it at idle time." -msgstr "" +msgstr "Odlaže signal, smešta ga u red i ispaljuje ga samo za vreme mirovanja." #: editor/connections_dialog.cpp +#, fuzzy msgid "Oneshot" -msgstr "" +msgstr "Jednookidač" #: editor/connections_dialog.cpp msgid "Disconnects the signal after its first emission." -msgstr "" +msgstr "Odvezuje signal nakon njegovog prvog ispuštanja." #: editor/connections_dialog.cpp msgid "Cannot connect signal" -msgstr "" +msgstr "Nije moguće povezati signal" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp @@ -893,115 +884,113 @@ msgstr "" #: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Close" -msgstr "" +msgstr "Zatvori" #: editor/connections_dialog.cpp msgid "Connect" -msgstr "" +msgstr "Poveži" #: editor/connections_dialog.cpp msgid "Signal:" -msgstr "" +msgstr "Signâl:" #: editor/connections_dialog.cpp msgid "Connect '%s' to '%s'" -msgstr "" +msgstr "Poveži '%s' sa '%s'" #: editor/connections_dialog.cpp msgid "Disconnect '%s' from '%s'" -msgstr "" +msgstr "Odveži '%s' od '%s'" #: editor/connections_dialog.cpp msgid "Disconnect all from signal: '%s'" -msgstr "" +msgstr "Odveži sve od signala: '%s'" #: editor/connections_dialog.cpp msgid "Connect..." -msgstr "" +msgstr "Poveži..." #: editor/connections_dialog.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Disconnect" -msgstr "" +msgstr "Odveži" #: editor/connections_dialog.cpp msgid "Connect a Signal to a Method" -msgstr "" +msgstr "Poveži Signal na Metod" #: editor/connections_dialog.cpp -#, fuzzy msgid "Edit Connection:" -msgstr "Izmjeni Selekciju Krivulje" +msgstr "Izmeni Konekciju:" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "" +msgstr "Da li sigurno želis da ukloniš sve veze sa \"%s\" signala?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" -msgstr "" +msgstr "Signali" #: editor/connections_dialog.cpp msgid "Filter signals" -msgstr "" +msgstr "Filtriraj signale" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" -msgstr "" +msgstr "Da li sigurno želiš da ukloniš sve veze sa ovog signala?" #: editor/connections_dialog.cpp msgid "Disconnect All" -msgstr "" +msgstr "Odveži Sve" #: editor/connections_dialog.cpp msgid "Edit..." -msgstr "" +msgstr "Uredi..." #: editor/connections_dialog.cpp -#, fuzzy msgid "Go to Method" -msgstr "Otiđi Na Sljedeći Korak" +msgstr "Idi na Metod" #: editor/create_dialog.cpp msgid "Change %s Type" -msgstr "" +msgstr "Promeni %s Tip" #: editor/create_dialog.cpp editor/project_settings_editor.cpp msgid "Change" -msgstr "" +msgstr "Promeni" #: editor/create_dialog.cpp msgid "Create New %s" -msgstr "" +msgstr "Napravi Novi %s" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "No results for \"%s\"." -msgstr "" +msgstr "Nema rezultata za \"%s\"." #: editor/create_dialog.cpp editor/property_selector.cpp msgid "No description available for %s." -msgstr "" +msgstr "Nema dostupnog opisa za %s." #: editor/create_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp msgid "Favorites:" -msgstr "" +msgstr "Omiljeno:" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp msgid "Recent:" -msgstr "" +msgstr "Nedavno:" #: editor/create_dialog.cpp editor/plugins/script_editor_plugin.cpp #: editor/property_selector.cpp editor/quick_open.cpp editor/rename_dialog.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" -msgstr "" +msgstr "Pretraga:" #: 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 "Podudaranja:" #: editor/create_dialog.cpp editor/editor_feature_profile.cpp #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp @@ -1009,57 +998,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 "Opis:" #: editor/dependency_editor.cpp msgid "Search Replacement For:" -msgstr "" +msgstr "Traži Zamenu za:" #: editor/dependency_editor.cpp msgid "Dependencies For:" -msgstr "" +msgstr "Zavisnosti za:" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" "Changes will only take effect when reloaded." msgstr "" +"Scena '%s' se trenutno uređuje.\n" +"Promene će imati uticaj nakon ponovnog učitavanja." #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" "Changes will only take effect when reloaded." msgstr "" +"Resurs '%s' se koristi.\n" +"Promene će imati uticaj nakon ponovnog učitavanja." #: editor/dependency_editor.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Dependencies" -msgstr "" +msgstr "Zavisnosti" #: editor/dependency_editor.cpp editor/editor_resource_picker.cpp msgid "Resource" -msgstr "" +msgstr "Resurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp #: editor/project_manager.cpp editor/project_settings_editor.cpp msgid "Path" -msgstr "" +msgstr "Putanja" #: editor/dependency_editor.cpp msgid "Dependencies:" -msgstr "" +msgstr "Zavisnosti:" #: editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "" +msgstr "Popravi Pokvareno" #: editor/dependency_editor.cpp msgid "Dependency Editor" -msgstr "" +msgstr "Uređivač Zavisnosti" #: editor/dependency_editor.cpp msgid "Search Replacement Resource:" -msgstr "" +msgstr "Traži Resurs Zamene:" #: editor/dependency_editor.cpp editor/editor_file_dialog.cpp #: editor/editor_help_search.cpp editor/editor_node.cpp @@ -1069,11 +1062,11 @@ msgstr "" #: modules/visual_script/visual_script_property_selector.cpp #: scene/gui/file_dialog.cpp msgid "Open" -msgstr "" +msgstr "Otvori" #: editor/dependency_editor.cpp msgid "Owners Of:" -msgstr "" +msgstr "Vlasnici Od:" #: editor/dependency_editor.cpp msgid "" @@ -1081,6 +1074,9 @@ msgid "" "Depending on your filesystem configuration, the files will either be moved " "to the system trash or deleted permanently." msgstr "" +"Ukloni označene datoteke iz projekta? (Ne može se opozvati.)\n" +"U zavisnosti od konfiguracije sistema datoteka, datoteke će ili biti " +"premeštene u kantu za otpatke ili biti trajno uklonjene." #: editor/dependency_editor.cpp msgid "" @@ -1360,9 +1356,8 @@ msgid "Bypass" msgstr "" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Bus Options" -msgstr "Funkcije:" +msgstr "Podešavanja Magistrale" #: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp #: editor/scene_tree_dock.cpp @@ -1471,6 +1466,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -1782,9 +1781,8 @@ msgid "(Properties Disabled)" msgstr "" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "(Editor Disabled)" -msgstr "Onemogućeno" +msgstr "(Uređivač Onemogućen)" #: editor/editor_feature_profile.cpp msgid "Class Options:" @@ -1829,14 +1827,12 @@ msgid "Current Profile:" msgstr "" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Create Profile" -msgstr "Napravi" +msgstr "Napravi Profil" #: editor/editor_feature_profile.cpp -#, fuzzy msgid "Remove Profile" -msgstr "Obriši Selekciju" +msgstr "Ukloni Profil" #: editor/editor_feature_profile.cpp msgid "Available Profiles:" @@ -1993,14 +1989,12 @@ msgid "Move Favorite Down" msgstr "" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to previous folder." -msgstr "Otiđi Na Prethodni Korak" +msgstr "Idi na prethodni direktorijum." #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Go to next folder." -msgstr "Otiđi Na Sljedeći Korak" +msgstr "Idi na sledeći direktorijum." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Go to parent folder." @@ -2128,9 +2122,8 @@ msgid "Property Descriptions" msgstr "" #: editor/editor_help.cpp -#, fuzzy msgid "(value)" -msgstr "Vrednost:" +msgstr "(Vrednost)" #: editor/editor_help.cpp msgid "" @@ -2178,9 +2171,8 @@ msgid "Signals Only" msgstr "" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Kontanta" +msgstr "Samo Konstante" #: editor/editor_help_search.cpp msgid "Properties Only" @@ -2208,7 +2200,7 @@ msgstr "" #: editor/editor_help_search.cpp modules/visual_script/visual_script_nodes.cpp msgid "Constant" -msgstr "Kontanta" +msgstr "Konstanta" #: editor/editor_help_search.cpp msgid "Property" @@ -2223,9 +2215,8 @@ msgid "Property:" msgstr "" #: editor/editor_inspector.cpp -#, fuzzy msgid "Pin value" -msgstr "Vrednost:" +msgstr "Zakači vrednost" #: editor/editor_inspector.cpp msgid "" @@ -2256,14 +2247,12 @@ msgid "Unpinned %s" msgstr "" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property" -msgstr "Obriši Selekciju" +msgstr "Kopiraj Osobinu" #: editor/editor_inspector.cpp -#, fuzzy msgid "Paste Property" -msgstr "Animacija Uduplaj Ključeve" +msgstr "Zalepi Osobinu" #: editor/editor_inspector.cpp msgid "Copy Property Path" @@ -2274,9 +2263,8 @@ msgid "Output:" msgstr "" #: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Obriši Selekciju" +msgstr "Kopiraj Označeno" #: editor/editor_log.cpp editor/editor_network_profiler.cpp #: editor/editor_profiler.cpp editor/editor_resource_picker.cpp @@ -2629,9 +2617,8 @@ msgid "Can't reload a scene that was never saved." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Reload Saved Scene" -msgstr "Napravi" +msgstr "Ponovo Učitaj Sačuvanu Scenu" #: editor/editor_node.cpp msgid "" @@ -2832,7 +2819,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -2841,9 +2828,8 @@ msgid "Go to previously opened scene." msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Copy Text" -msgstr "Obriši Selekciju" +msgstr "Kopiraj Tekst" #: editor/editor_node.cpp msgid "Next tab" @@ -3052,9 +3038,8 @@ msgid "Editor" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Editor Settings..." -msgstr "Tranzicije" +msgstr "Postavke Uređivača..." #: editor/editor_node.cpp msgid "Editor Layout" @@ -3121,9 +3106,8 @@ msgid "Community" msgstr "Zajednica" #: editor/editor_node.cpp -#, fuzzy msgid "About Godot" -msgstr "O nama / O Godou" +msgstr "O Godot" #: editor/editor_node.cpp msgid "Support Godot Development" @@ -3175,19 +3159,16 @@ msgid "Save & Restart" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Update Continuously" -msgstr "Neprekidna" +msgstr "Neprekidno Ažuriraj" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Napravi" +msgstr "Ažuriraj sve promene" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Napravi" +msgstr "Ažuriraj Vitalne Promene" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -3265,9 +3246,8 @@ msgid "Merge With Existing" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Apply MeshInstance Transforms" -msgstr "Animacija Promjeni Transformaciju" +msgstr "Primeni Transformacije MeshInstance a" #: editor/editor_node.cpp msgid "Open & Run a Script" @@ -3303,9 +3283,8 @@ msgid "Select" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Select Current" -msgstr "Izmjeni Krivulju Čvora" +msgstr "Obeleži Trenutno" #: editor/editor_node.cpp msgid "Open 2D Editor" @@ -3385,9 +3364,8 @@ msgid "Measure:" msgstr "" #: editor/editor_profiler.cpp -#, fuzzy msgid "Frame Time (ms)" -msgstr "Vreme (s): " +msgstr "Vreme Frejma(ms)" #: editor/editor_profiler.cpp msgid "Average Time (ms)" @@ -3432,9 +3410,8 @@ msgid "Calls" msgstr "" #: editor/editor_properties.cpp -#, fuzzy msgid "Edit Text:" -msgstr "Izmjeni Selekciju Krivulje" +msgstr "Izmeni Tekst:" #: editor/editor_properties.cpp editor/script_create_dialog.cpp msgid "On" @@ -3536,9 +3513,8 @@ msgid "Paste" msgstr "" #: editor/editor_resource_picker.cpp editor/property_editor.cpp -#, fuzzy msgid "Convert to %s" -msgstr "Napravi" +msgstr "Konvertuj u %s" #: editor/editor_resource_picker.cpp editor/property_editor.cpp msgid "New %s" @@ -3605,9 +3581,8 @@ msgstr "" #. TRANSLATORS: %s refers to the name of a version control system (e.g. "Git"). #: editor/editor_vcs_interface.cpp -#, fuzzy msgid "%s Error" -msgstr "Ogledalo" +msgstr "%s Greška" #: editor/export_template_manager.cpp msgid "Open the folder containing these templates." @@ -4090,9 +4065,8 @@ msgid "Overwrite" msgstr "" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Create Scene" -msgstr "Napravi" +msgstr "Napravi Scenu" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" @@ -4186,9 +4160,8 @@ msgid "Rename Group" msgstr "" #: editor/groups_editor.cpp -#, fuzzy msgid "Delete Group" -msgstr "Animacija Obriši Ključeve" +msgstr "Ukloni Grupu" #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" @@ -4301,9 +4274,8 @@ msgid "Saving..." msgstr "" #: editor/import_defaults_editor.cpp -#, fuzzy msgid "Select Importer" -msgstr "Uduplaj Selekciju" +msgstr "Označi Uvoznika" #: editor/import_defaults_editor.cpp msgid "Importer:" @@ -4377,9 +4349,8 @@ msgid "Copy Properties" msgstr "" #: editor/inspector_dock.cpp -#, fuzzy msgid "Paste Properties" -msgstr "Animacija Uduplaj Ključeve" +msgstr "Zalepi Osobine" #: editor/inspector_dock.cpp msgid "Make Sub-Resources Unique" @@ -4499,16 +4470,14 @@ msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Create Polygon" -msgstr "Napravi" +msgstr "Napravi Poligon" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Create points." -msgstr "Napravi" +msgstr "Napravi tačke." #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" @@ -4523,9 +4492,8 @@ msgid "Erase points." msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon" -msgstr "Napravi" +msgstr "izmeni Poligon" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" @@ -4580,9 +4548,8 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Animation Point" -msgstr "Optimizuj Animaciju" +msgstr "Dodaj Tačku Animacije" #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Remove BlendSpace1D Point" @@ -4631,18 +4598,16 @@ msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Open Animation Node" -msgstr "Optimizuj Animaciju" +msgstr "Otvori Čvor Animacije" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Triangle" -msgstr "Animacija Dodaj Kanal" +msgstr "Dodaj Trougao" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Change BlendSpace2D Limits" @@ -4725,15 +4690,13 @@ msgid "Nodes Disconnected" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Set Animation" -msgstr "Optimizuj Animaciju" +msgstr "Postavi Animaciju" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Node" -msgstr "Animacija Obriši Ključeve" +msgstr "Ukloni Čvor" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp @@ -4764,19 +4727,16 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Anim Clips" -msgstr "Anim Klipovi:" +msgstr "Anim Klipovi" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Audio Clips" -msgstr "Audio Klipovi:" +msgstr "Audio Klipovi" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Functions" -msgstr "Funkcije:" +msgstr "Funkcije" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp @@ -4914,9 +4874,8 @@ msgid "New" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Edit Transitions..." -msgstr "Tranzicije" +msgstr "Izmeni Tranzicije..." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Open in Inspector" @@ -5014,14 +4973,12 @@ msgid "Move Node" msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition exists!" -msgstr "Tranzicije" +msgstr "Prelaz postoji!" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Add Transition" -msgstr "Tranzicije" +msgstr "Dodaj Tranziciju" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -5061,9 +5018,8 @@ msgid "Node Removed" msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition Removed" -msgstr "Tranzicije" +msgstr "Tranzicija Uklonjena" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" @@ -5085,9 +5041,8 @@ msgid "Connect nodes." msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Remove selected node or transition." -msgstr "Obriši Selekciju" +msgstr "Obriši obeležen čvor ili prelaz." #: editor/plugins/animation_state_machine_editor.cpp msgid "Toggle autoplay this animation on start, restart or seek to zero." @@ -5098,9 +5053,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition: " -msgstr "Tranzicije" +msgstr "Tranzicija: " #: editor/plugins/animation_state_machine_editor.cpp msgid "Play Mode:" @@ -5312,9 +5266,8 @@ msgid "Request failed, timeout" msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Timeout." -msgstr "Vreme:" +msgstr "Istek vremena." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed:" @@ -5508,6 +5461,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -5545,23 +5502,20 @@ msgid "Rotation Step:" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Step:" -msgstr "Skaliraj Selekciju" +msgstr "Skaliraj Korak:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Vertical Guide" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Create Vertical Guide" -msgstr "Napravi" +msgstr "Napravi Vertikalni Vodič" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Remove Vertical Guide" -msgstr "Obriši Selekciju" +msgstr "Ukloni Vertikalni Vodič" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Horizontal Guide" @@ -5572,9 +5526,8 @@ msgid "Create Horizontal Guide" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Remove Horizontal Guide" -msgstr "Obriši Selekciju" +msgstr "Ukloni Horizontalni Vodič" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Horizontal and Vertical Guides" @@ -5627,9 +5580,8 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Grouped" -msgstr "Obriši Selekciju" +msgstr "Grupisane" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5684,18 +5636,16 @@ msgid "Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Left Wide" -msgstr "Linearna" +msgstr "Leva Široka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Top Wide" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Right Wide" -msgstr "Linearna" +msgstr "Desna Široka" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Bottom Wide" @@ -5756,33 +5706,29 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Group Selected" -msgstr "Obriši Selekciju" +msgstr "Grupiši Označeno" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected" -msgstr "Obriši Selekciju" +msgstr "Odgrupiši Označeno" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Clear Guides" -msgstr "Animacija Promjeni Transformaciju" +msgstr "Očisti Vodiče" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create Custom Bone(s) from Node(s)" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Clear Bones" -msgstr "Animacija Promjeni Transformaciju" +msgstr "Očisti Kosti" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" @@ -5812,24 +5758,20 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Drag: Rotate selected node around pivot." -msgstr "Obriši Selekciju" +msgstr "Prevuci: Rotiraj obeležen čvor oko ose." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Alt+Drag: Move selected node." -msgstr "Izbriši označeni ključ(eve)" +msgstr "Alt+Drag: Pomeri obeležen čvor." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Alt+Drag: Scale selected node." -msgstr "Izbriši označeni ključ(eve)" +msgstr "Alt+Drag: Skaliraj označen čvor." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "V: Set selected node's pivot position." -msgstr "Obriši Selekciju" +msgstr "V: Postavi poziciju ose obeleženog čvora." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5954,9 +5896,8 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock Selected Node(s)" -msgstr "Animacija Obriši Ključeve" +msgstr "Zaključaj Označen Čvor(ove)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5965,9 +5906,8 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Unlock Selected Node(s)" -msgstr "Dupliraj Selektovane Ključeve" +msgstr "Otključaj Označen Čvor(ove)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5976,9 +5916,8 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Group Selected Node(s)" -msgstr "Obriši Selekciju" +msgstr "Grupiši Označen Čvor(ove)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5987,9 +5926,8 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected Node(s)" -msgstr "Obriši Selekciju" +msgstr "Odgrupiši Označen Čvor(ove)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton Options" @@ -6065,9 +6003,8 @@ msgid "Scale mask for inserting keys." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Animacija dodaj ključ" +msgstr "Ubaci ključ (na osnovu maske)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -6078,14 +6015,12 @@ msgid "" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Animacija dodaj ključ" +msgstr "Automatski Ubaci Ključ" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Animation Key and Pose Options" -msgstr "Dužina Animacije (secunde)" +msgstr "Ključevi Animacije i Podešavanja Poziranja" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -6104,9 +6039,8 @@ msgid "Add Node Here" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Instance Scene Here" -msgstr "Dodaj ključ ovde" +msgstr "Instanciraj Scenu Ovde" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" @@ -6194,9 +6128,8 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -#, fuzzy msgid "Create Polygon3D" -msgstr "Napravi" +msgstr "Napravi Poligon3D" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly" @@ -6315,24 +6248,21 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Add Point" -msgstr "Optimizuj Animaciju" +msgstr "Dodaj Tačku" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Remove Point" -msgstr "Obriši Selekciju" +msgstr "Ukloni Tačku" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Left Linear" -msgstr "Linearna" +msgstr "Levi Linearni" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy msgid "Right Linear" -msgstr "Linearna" +msgstr "Desni Linearni" #: editor/plugins/curve_editor_plugin.cpp msgid "Load Preset" @@ -6494,7 +6424,7 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy msgid "Create Single Convex Collision Sibling" -msgstr "Napravi" +msgstr "Napravi Jednostruki Konveksni Duplikat Sudara" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" @@ -6505,7 +6435,7 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy msgid "Create Simplified Convex Collision Sibling" -msgstr "Napravi" +msgstr "Napravi Pojednostavljen Konveksni Duplikat Sudara" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" @@ -6517,7 +6447,7 @@ msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Napravi" +msgstr "Napravi Više Konveksnih Duplikata Sudara" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" @@ -6711,9 +6641,8 @@ msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Convert to CPUParticles2D" -msgstr "Napravi" +msgstr "Konvertuj u CPUParticles2D" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -6794,9 +6723,8 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp -#, fuzzy msgid "Split Curve" -msgstr "Izmjeni Krivulju Čvora" +msgstr "Razdeli Krivu" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" @@ -6952,23 +6880,20 @@ msgid "Invalid Polygon (need 3 different vertices)" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Add Custom Polygon" -msgstr "Napravi" +msgstr "Dodaj Prilagođeni Poligon" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Remove Custom Polygon" -msgstr "Napravi" +msgstr "Ukloni Prilagođeni Poligon" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Transform Polygon" -msgstr "Napravi" +msgstr "Transformiši Poligon" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Paint Bone Weights" @@ -6991,9 +6916,8 @@ msgid "Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Polygons" -msgstr "Napravi" +msgstr "Poligoni" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Bones" @@ -7062,9 +6986,8 @@ msgid "Copy Polygon to UV" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Copy UV to Polygon" -msgstr "Napravi" +msgstr "Kopiraj UV u Poligon" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Clear UV" @@ -7169,28 +7092,24 @@ msgid "Flip Portals" msgstr "" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Room Generate Points" -msgstr "Pomeri Bezier Tačke" +msgstr "Generiši Tačke u prostoru" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Generate Points" -msgstr "Napravi" +msgstr "Generiši Tačke" #: editor/plugins/room_manager_editor_plugin.cpp msgid "Flip Portal" msgstr "" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Occluder Set Transform" -msgstr "Animacija Promjeni Transformaciju" +msgstr "Postavi Transformaciju Okludera" #: editor/plugins/room_manager_editor_plugin.cpp -#, fuzzy msgid "Center Node" -msgstr "Animacija Obriši Ključeve" +msgstr "Centriraj Čvor" #: editor/plugins/root_motion_editor_plugin.cpp msgid "AnimationTree has no path set to an AnimationPlayer" @@ -7328,9 +7247,8 @@ msgid "Next Script" msgstr "" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Previous Script" -msgstr "Otiđi Na Prethodni Korak" +msgstr "Prethodna Skripta" #: editor/plugins/script_editor_plugin.cpp msgid "File" @@ -7491,9 +7409,8 @@ msgid "[Ignore]" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Line" -msgstr "Linearna" +msgstr "Linija" #: editor/plugins/script_text_editor.cpp msgid "Go to Function" @@ -7542,9 +7459,8 @@ msgid "Bookmarks" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Breakpoints" -msgstr "Napravi" +msgstr "Tačke Prekida" #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp @@ -7594,9 +7510,8 @@ msgid "Complete Symbol" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Evaluate Selection" -msgstr "Skaliraj Selekciju" +msgstr "Proceni Označeno" #: editor/plugins/script_text_editor.cpp msgid "Trim Trailing Whitespace" @@ -7631,14 +7546,12 @@ msgid "Toggle Bookmark" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Bookmark" -msgstr "Otiđi Na Sljedeći Korak" +msgstr "Idi na Sledeći Obeleživač" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Bookmark" -msgstr "Otiđi Na Prethodni Korak" +msgstr "Idi na Prethodni Obeleživač" #: editor/plugins/script_text_editor.cpp msgid "Remove All Bookmarks" @@ -7662,14 +7575,12 @@ msgid "Remove All Breakpoints" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" -msgstr "Otiđi Na Sljedeći Korak" +msgstr "Idi na Sledeću Tačku Prekida" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "Otiđi Na Prethodni Korak" +msgstr "Idi na Prethodnu Tačku Prekida" #: editor/plugins/shader_editor_plugin.cpp msgid "" @@ -7698,9 +7609,8 @@ msgid "Skeleton2D" msgstr "" #: editor/plugins/skeleton_2d_editor_plugin.cpp -#, fuzzy msgid "Reset to Rest Pose" -msgstr "Napravi" +msgstr "Resetuj na Mirujuću Pozu" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Overwrite Rest Pose" @@ -7824,9 +7734,8 @@ msgid "Translate" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scale" -msgstr "Skaliraj Selekciju" +msgstr "Razmera" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scaling: " @@ -7985,7 +7894,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8040,9 +7954,8 @@ msgid "" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Convert Rooms" -msgstr "Napravi" +msgstr "Konvertuj Prostore" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -8281,42 +8194,36 @@ msgid "Unnamed Gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Napravi" +msgstr "Napravi Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Mesh2D Preview" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Napravi" +msgstr "Napravi Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Polygon2D Preview" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Napravi" +msgstr "Napravi CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "CollisionPolygon2D Preview" -msgstr "Napravi" +msgstr "Predpogled CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Napravi" +msgstr "Napravi LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "LightOccluder2D Preview" -msgstr "Napravi" +msgstr "Predpogled LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -8339,18 +8246,16 @@ msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to Polygon2D" -msgstr "Napravi" +msgstr "Konvertuj u Polygon2D" #: 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 "Napravi" +msgstr "Napravi CollisionPolygon2D Duplikat" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create light occluder." @@ -8429,14 +8334,12 @@ msgid "Move Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Animations:" -msgstr "Optimizuj Animaciju" +msgstr "Animacije:" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "New Animation" -msgstr "Optimizuj Animaciju" +msgstr "Nova Animacija" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed:" @@ -8447,14 +8350,12 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Animation Frames:" -msgstr "Optimizuj Animaciju" +msgstr "Frejmovi Animacije:" #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Add a Texture from File" -msgstr "Obriši Selekciju" +msgstr "Dodaj Teksturu iz Datoteke" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frames from a Sprite Sheet" @@ -8533,9 +8434,8 @@ msgid "Step:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "Separation:" -msgstr "Tranzicije" +msgstr "Odvajanje:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "TextureRegion" @@ -8554,14 +8454,12 @@ msgid "No colors found." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "{num} constant(s)" -msgstr "Napravi" +msgstr "{num} Konstant(e)" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "No constants found." -msgstr "Kontanta" +msgstr "Konstante nisu nađene." #: editor/plugins/theme_editor_plugin.cpp msgid "{num} font(s)" @@ -8710,18 +8608,16 @@ msgid "Select all Theme items with item data." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Deselect All" -msgstr "Uduplaj Selekciju" +msgstr "Poništi Obeleženo" #: editor/plugins/theme_editor_plugin.cpp msgid "Deselect all Theme items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Import Selected" -msgstr "Obriši Selekciju" +msgstr "Uvezi Obeleženo" #: editor/plugins/theme_editor_plugin.cpp msgid "" @@ -8741,23 +8637,20 @@ msgid "Remove All Color Items" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Rename Item" -msgstr "Animacija Preimenuj Kanal" +msgstr "Preimenuj stavku" #: editor/plugins/theme_editor_plugin.cpp msgid "Remove All Constant Items" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Remove All Font Items" -msgstr "Obriši Selekciju" +msgstr "Ukloni Sve Font Stavke" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Remove All Icon Items" -msgstr "Obriši Selekciju" +msgstr "Ukloni Sve Icon Stavke" #: editor/plugins/theme_editor_plugin.cpp msgid "Remove All StyleBox Items" @@ -8846,9 +8739,8 @@ msgid "Add StyleBox Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Remove Items:" -msgstr "Obriši Selekciju" +msgstr "Ukloni stavku:" #: editor/plugins/theme_editor_plugin.cpp msgid "Remove Class Items" @@ -8889,6 +8781,11 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Resurs" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8937,6 +8834,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8953,7 +8862,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Promeni %s Tip" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9194,9 +9114,8 @@ msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Remove selected Texture from TileSet." -msgstr "Obriši Selekciju" +msgstr "Ukloni označenu Teksturu iz TileSet-a." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -9317,9 +9236,8 @@ msgid "Erase bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Create a new rectangle." -msgstr "Napravi" +msgstr "Napravi novi pravougaonik." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -9327,9 +9245,8 @@ msgid "New Rectangle" msgstr "Napravi" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Create a new polygon." -msgstr "Napravi" +msgstr "Napravi novi poligon." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -9359,9 +9276,8 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Remove selected texture? This will remove all tiles which use it." -msgstr "Obriši Selekciju" +msgstr "Ukloni označenu teksturu? Ovo će ukloniti sva polja koja je koriste." #: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." @@ -9391,9 +9307,8 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Delete selected Rect." -msgstr "Izbriši označeni ključ(eve)" +msgstr "Ukloni označeni Pravoug." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -9402,9 +9317,8 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Delete polygon." -msgstr "Napravi" +msgstr "Ukloni poligon." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -9566,9 +9480,8 @@ msgid "Unstaged Changes" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -#, fuzzy msgid "Commit:" -msgstr "Zajednica" +msgstr "Posveti:" #: editor/plugins/version_control_editor_plugin.cpp msgid "Date:" @@ -9669,18 +9582,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -9960,14 +9861,12 @@ msgid "SoftLight operator." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Color constant." -msgstr "Kontanta" +msgstr "Konstanta boje." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Color uniform." -msgstr "Animacija Promjeni Transformaciju" +msgstr "Homogenost Boje." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the %s comparison between two parameters." @@ -10076,9 +9975,8 @@ msgid "'%s' input parameter for vertex and fragment shader mode." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Scalar function." -msgstr "Skaliraj Selekciju" +msgstr "Skalarna funkcija." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar operator." @@ -10311,9 +10209,8 @@ msgid "Scalar constant." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Scalar uniform." -msgstr "Animacija Promjeni Transformaciju" +msgstr "Skalarna homogenost." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Perform the cubic texture lookup." @@ -10336,9 +10233,8 @@ msgid "2D texture uniform lookup with triplanar." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Transform function." -msgstr "Napravi" +msgstr "Funkcija transformacije." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -10380,14 +10276,12 @@ msgid "Multiplies vector by transform." msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Transform constant." -msgstr "Napravi" +msgstr "Transformacija konstante." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Transform uniform." -msgstr "Napravi" +msgstr "Transformacija homogenosti." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector function." @@ -11074,7 +10968,7 @@ msgstr "Obriši Selekciju" #: editor/project_manager.cpp msgid "About" -msgstr "O nama / O Godou" +msgstr "O Godot-u" #: editor/project_manager.cpp msgid "Asset Library Projects" @@ -11349,7 +11243,7 @@ msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" -msgstr "Opšti deo" +msgstr "Opšta" #: editor/project_settings_editor.cpp msgid "Override For..." @@ -11733,14 +11627,12 @@ msgid "Make node as Root" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes and any children?" -msgstr "Animacija Obriši Ključeve" +msgstr "Obrisi %d čvorova i decu?" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete %d nodes?" -msgstr "Animacija Obriši Ključeve" +msgstr "Obriši %d čvorova?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" @@ -11751,9 +11643,8 @@ msgid "Delete node \"%s\" and its children?" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete node \"%s\"?" -msgstr "Animacija Obriši Ključeve" +msgstr "Obriši čvor \"%s\"?" #: editor/scene_tree_dock.cpp msgid "" @@ -11944,9 +11835,8 @@ msgid "Delete (No Confirm)" msgstr "" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Add/Create a New Node." -msgstr "Napravi" +msgstr "Dodaj/Napravi nov čvor." #: editor/scene_tree_dock.cpp msgid "" @@ -12154,9 +12044,8 @@ msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Will create a new script file." -msgstr "Napravi" +msgstr "Biće kreirana nova datoteka skripte." #: editor/script_create_dialog.cpp msgid "Will load an existing script file." @@ -12207,9 +12096,8 @@ msgid "Warning:" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Error:" -msgstr "Ogledalo" +msgstr "Greška:" #: editor/script_editor_debugger.cpp msgid "C++ Error" @@ -12273,6 +12161,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtriraj signale" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -12887,27 +12780,24 @@ msgid "Override an existing built-in function." msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new function." -msgstr "Napravi" +msgstr "Napravi novu funkciju." #: modules/visual_script/visual_script_editor.cpp msgid "Variables:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new variable." -msgstr "Napravi" +msgstr "Napravi novu promenljivu." #: modules/visual_script/visual_script_editor.cpp msgid "Signals:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Create a new signal." -msgstr "Napravi" +msgstr "Napravi novi signal." #: modules/visual_script/visual_script_editor.cpp msgid "Name is not a valid identifier:" @@ -13126,14 +13016,12 @@ msgid "Add Nodes..." msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Function..." -msgstr "Funkcije:" +msgstr "Dodaj funkciju..." #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "function_name" -msgstr "Funkcije:" +msgstr "naziv_funkcije" #: modules/visual_script/visual_script_editor.cpp msgid "Select or create a function to edit its graph." @@ -13156,9 +13044,8 @@ msgid "Cut Nodes" msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Make Function" -msgstr "Funkcije:" +msgstr "Napravi Funkciju" #: modules/visual_script/visual_script_editor.cpp msgid "Refresh Graph" @@ -13308,9 +13195,8 @@ msgid "Emit %s" msgstr "" #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid "Function" -msgstr "Funkcije:" +msgstr "Funkcija" #: modules/visual_script/visual_script_nodes.cpp msgid "Compose Array" @@ -13589,6 +13475,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -13908,9 +13797,8 @@ msgid "" msgstr "" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "Kontanta" +msgstr "Identitet nije pronađen." #: platform/osx/export/export.cpp msgid "Creating app bundle" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 9645a3adff..91d13086f4 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -1501,6 +1501,11 @@ msgstr "Ladda standard Buss-Layouten." msgid "Create a new Bus Layout." msgstr "Skapa en ny Buss-Layout." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Öppna Ljud-Buss Layout" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Ogiltigt namn." @@ -2989,7 +2994,7 @@ msgstr "Växla distraktionsfritt läge." msgid "Add a new scene." msgstr "Lägg till en ny scen." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Scen" @@ -5781,6 +5786,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Välj mall-fil" @@ -8349,7 +8358,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9293,6 +9307,11 @@ msgstr "Välj en annan temaresurs:" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Byt namn på Resurs" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Importera Tema" @@ -9346,6 +9365,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Ändra Bas Typ:" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Ändra Bas Typ:" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "Ladda Standard" @@ -9363,7 +9396,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "Ändra Typ" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -10112,18 +10156,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Matchar:" @@ -12781,6 +12813,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Filtrera tiles" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14135,6 +14172,9 @@ msgstr "Ogiltigt paket namn:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/ta.po b/editor/translations/ta.po index 6a737cca56..c278dc4460 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -1465,6 +1465,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2820,7 +2824,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5484,6 +5488,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7928,7 +7936,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8818,6 +8831,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8866,6 +8883,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8882,7 +8911,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9570,18 +9609,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12158,6 +12185,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13462,6 +13493,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/te.po b/editor/translations/te.po index f329a3c39f..1c6ddff44b 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -1438,6 +1438,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2787,7 +2791,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5430,6 +5434,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7855,7 +7863,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8730,6 +8743,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8776,6 +8793,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8792,7 +8821,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9472,18 +9511,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12037,6 +12064,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13326,6 +13357,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/th.po b/editor/translations/th.po index 3359054a03..c3de50112f 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -1491,6 +1491,11 @@ msgstr "โหลดค่าเริ่มต้นเลย์เอาต์ msgid "Create a new Bus Layout." msgstr "สร้างเลย์เอาต์บัสใหม่" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "เปิดเลย์เอาต์ของบัสเสียง" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "ชื่อผิดพลาด" @@ -2911,7 +2916,7 @@ msgstr "โหมดไร้สิ่งรบกวน" msgid "Add a new scene." msgstr "เพิ่มฉากใหม่" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "ฉาก" @@ -5666,6 +5671,10 @@ msgid "Bake Lightmaps" msgstr "สร้าง Lightmaps" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "เลือกไฟล์ bake ของ lightmap :" @@ -8180,7 +8189,13 @@ msgid "Cinematic Preview" msgstr "ดูตัวอย่างแบบภาพยนตร์" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "ไม่สามารถใช้งานได้เมื่อใช้การเรนเดอร์โดย GLES2" #: editor/plugins/spatial_editor_plugin.cpp @@ -9126,6 +9141,11 @@ msgstr "ลบรีซอร์ส" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "เปลี่ยนชื่อรีซอร์ส" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "นำเข้าธีม" @@ -9180,6 +9200,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "เพิ่มไอเทม" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "แก้ไขประเภทตัวแปร" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "เปลี่ยนประเภท" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "โหลดค่าเริ่มต้น" @@ -9198,8 +9233,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "เพิ่มไอเทม" +msgid "Base Type" +msgstr "เปลี่ยนประเภท" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -9914,18 +9959,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "พบ:" @@ -12620,6 +12653,11 @@ msgid "Stack Frames" msgstr "สแตค" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "ตัวกรองไทล์" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "ตัวตรวจวิเคราะห์ประสิทธิภาพ (Profiler)" @@ -13960,9 +13998,10 @@ msgstr "ชื่อแพ็คเกจผิดพลาด:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"โมดูล \"GodotPaymentV3\" ที่ไม่ถูกต้องได้รวมอยู่ในการตั้งค่าโปรเจกต์ \"android/" -"modules\" (เปลี่ยนแปลงใน Godot 3.2.2)\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/tl.po b/editor/translations/tl.po index 3384446e1d..c943692efb 100644 --- a/editor/translations/tl.po +++ b/editor/translations/tl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2022-01-07 11:42+0000\n" +"PO-Revision-Date: 2022-03-02 18:39+0000\n" "Last-Translator: Napstaguy04 <brokenscreen3@gmail.com>\n" "Language-Team: Tagalog <https://hosted.weblate.org/projects/godot-engine/" "godot/tl/>\n" @@ -18,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 4.10.1\n" +"X-Generator: Weblate 4.11.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -253,7 +253,7 @@ msgstr "Ipalit sa on/off ang track na ito." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "Paraang Nag-aapdate (Kung papano inayos ang katangian na ito)" +msgstr "Paraan ng Pag-update (Kung papano inayos ang katangian na ito)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" @@ -321,7 +321,7 @@ msgstr "Maglagay ng Key" #: editor/animation_track_editor.cpp msgid "Duplicate Key(s)" -msgstr "Doblehin ang (mga) Key" +msgstr "Duplikahin ang (mga) Key" #: editor/animation_track_editor.cpp msgid "Add RESET Value(s)" @@ -548,7 +548,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Animation step value." -msgstr "" +msgstr "Bilang ng usog ng Animasyon." #: editor/animation_track_editor.cpp msgid "Seconds" @@ -609,7 +609,7 @@ msgstr "Bumalik sa Nakaraang Hakbang" #: editor/animation_track_editor.cpp msgid "Apply Reset" -msgstr "" +msgstr "I-apply ang Reset" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -633,7 +633,7 @@ msgstr "Gumawa ng (mga) RESET Track" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" -msgstr "" +msgstr "Tagapabilis ng Animasyon" #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" @@ -645,7 +645,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Max Optimizable Angle:" -msgstr "" +msgstr "Pinakahangganang Angulo na Mao-optimize:" #: editor/animation_track_editor.cpp msgid "Optimize" @@ -1151,11 +1151,11 @@ msgstr "Mga Resources na Walang Tiyak na Pagmamayari:" #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" -msgstr "" +msgstr "Ibahin ang Dictionary Key" #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Value" -msgstr "" +msgstr "Ibahin ang Dictionary Value" #: editor/editor_about.cpp msgid "Thanks from the Godot community!" @@ -1347,7 +1347,7 @@ msgstr "Ilipat ang Effect ng Bus" #: editor/editor_audio_buses.cpp msgid "Delete Bus Effect" -msgstr "" +msgstr "Alisin ang Effect sa Bus" #: editor/editor_audio_buses.cpp msgid "Drag & drop to rearrange." @@ -1363,7 +1363,7 @@ msgstr "Nakatahimik" #: editor/editor_audio_buses.cpp msgid "Bypass" -msgstr "Pasikot-sikot" +msgstr "Ligtaan" #: editor/editor_audio_buses.cpp msgid "Bus Options" @@ -1376,11 +1376,11 @@ msgstr "Doblehin" #: editor/editor_audio_buses.cpp msgid "Reset Volume" -msgstr "" +msgstr "I-balik sa dati ang Volume" #: editor/editor_audio_buses.cpp msgid "Delete Effect" -msgstr "" +msgstr "Alisin ang Effect" #: editor/editor_audio_buses.cpp msgid "Audio" @@ -1440,7 +1440,7 @@ msgstr "Nabigong ang pagsave ang file: %s" #: editor/editor_audio_buses.cpp msgid "Add Bus" -msgstr "" +msgstr "Magdagdag ng Bus" #: editor/editor_audio_buses.cpp msgid "Add a new Audio Bus to this layout." @@ -1476,6 +1476,11 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "I-save Ang Ayos ng Audio Bus Bilang..." + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Di-wastong pangalan." @@ -1507,7 +1512,7 @@ msgstr "" #: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" -msgstr "" +msgstr "Meron ng '%s' na Autoload!" #: editor/editor_autoload_settings.cpp msgid "Rename Autoload" @@ -1572,11 +1577,11 @@ msgstr "Pangkalahatang (Global) Variable" #: editor/editor_data.cpp msgid "Paste Params" -msgstr "" +msgstr "I-pasta ang mga Params" #: editor/editor_data.cpp msgid "Updating Scene" -msgstr "" +msgstr "Sinasariwa ang Eksena" #: editor/editor_data.cpp msgid "Storing local changes..." @@ -1821,6 +1826,8 @@ msgid "" "Profile '%s' already exists. Remove it first before importing, import " "aborted." msgstr "" +"Meron ng '%s' na profile. Alisin muna ito bago mag-import. Naihinto ang pag-" +"import." #: editor/editor_feature_profile.cpp msgid "Error saving profile to path: '%s'." @@ -2030,12 +2037,12 @@ msgstr "Tingnan ang mga item bilang talaan." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" -msgstr "" +msgstr "Mga Direktoryo at mga File:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp editor/rename_dialog.cpp msgid "Preview:" -msgstr "" +msgstr "Pasilip:" #: editor/editor_file_dialog.cpp #: editor/plugins/version_control_editor_plugin.cpp scene/gui/file_dialog.cpp @@ -2086,9 +2093,8 @@ msgid "Properties" msgstr "Mga Katangian" #: editor/editor_help.cpp -#, fuzzy msgid "overrides %s:" -msgstr "ipagpalit:" +msgstr "Ipagpapalit sa %s:" #: editor/editor_help.cpp msgid "default:" @@ -2104,7 +2110,7 @@ msgstr "Mga Katangian ng Theme" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Colors" -msgstr "" +msgstr "Mga Kulay" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Constants" @@ -2112,15 +2118,15 @@ msgstr "Mga Konstant" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Fonts" -msgstr "" +msgstr "Mga Font" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Icons" -msgstr "" +msgstr "Mga Icon" #: editor/editor_help.cpp msgid "Styles" -msgstr "" +msgstr "Mga Estilo" #: editor/editor_help.cpp msgid "Enumerations" @@ -2161,7 +2167,7 @@ msgstr "Maghanap sa Sanggunian" #: editor/editor_help_search.cpp msgid "Case Sensitive" -msgstr "" +msgstr "Sensitibo sa Case" #: editor/editor_help_search.cpp msgid "Show Hierarchy" @@ -2228,9 +2234,8 @@ msgid "Property:" msgstr "Katangian:" #: editor/editor_inspector.cpp -#, fuzzy msgid "Pin value" -msgstr "(halaga)" +msgstr "Halaga ng Pin" #: editor/editor_inspector.cpp msgid "" @@ -2261,19 +2266,16 @@ msgid "Unpinned %s" msgstr "" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property" -msgstr "Katangian" +msgstr "Kopyahin ang Katangian" #: editor/editor_inspector.cpp -#, fuzzy msgid "Paste Property" -msgstr "Katangian" +msgstr "I-paste ang Katangian" #: editor/editor_inspector.cpp -#, fuzzy msgid "Copy Property Path" -msgstr "Kopyahin ang Kinaroroonan" +msgstr "Kopyahin ang Kinaroroonan ng Katangian" #: editor/editor_log.cpp msgid "Output:" @@ -2373,10 +2375,12 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Hindi mai-ligtas ang resource na ito dahil hindi ito nabibilang sa ginagalaw " +"na eksena. Gawing tangi (unique) muna ito." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." -msgstr "I-save ang Resource Bilang..." +msgstr "I-ligtas ang Resource Bilang..." #: editor/editor_node.cpp msgid "Can't open file for writing:" @@ -2440,11 +2444,11 @@ msgstr "" #: editor/editor_node.cpp msgid "Could not save one or more scenes!" -msgstr "" +msgstr "Hindi mai-iligtas ang ni isa o dalawang eksena!" #: editor/editor_node.cpp msgid "Save All Scenes" -msgstr "Iimpok Lahat ng Mga Eksena" +msgstr "I-ligtas Lahat ng Mga Eksena" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" @@ -2523,7 +2527,7 @@ msgstr "" #: editor/editor_node.cpp msgid "There is no defined scene to run." -msgstr "" +msgstr "Walang eksenang pinili upang patakbuhin ang aplikasyon." #: editor/editor_node.cpp msgid "Save scene before running..." @@ -2531,7 +2535,7 @@ msgstr "Isave muna ang eksena bago ito patakbuhin..." #: editor/editor_node.cpp msgid "Could not start subprocess!" -msgstr "" +msgstr "Hindi maumpisa ang subprocess!" #: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" @@ -2539,11 +2543,11 @@ msgstr "Magbukas ng Eksena" #: editor/editor_node.cpp msgid "Open Base Scene" -msgstr "" +msgstr "Buksan ang Punong Eksena (Base Scene)" #: editor/editor_node.cpp msgid "Quick Open..." -msgstr "Mabilisang Magbukas..." +msgstr "Buksan Kaagad..." #: editor/editor_node.cpp msgid "Quick Open Scene..." @@ -2579,7 +2583,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Save Scene As..." -msgstr "" +msgstr "I-ligtas ang Eksena Bilang..." #: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp msgid "This operation can't be done without a scene." @@ -2797,11 +2801,11 @@ msgstr "Isara ang Tab" #: editor/editor_node.cpp msgid "Undo Close Tab" -msgstr "" +msgstr "Ibalik ang Nasarang Tab" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Close Other Tabs" -msgstr "Isara Ang Ibang Mga Tab" +msgstr "Isara ang Ibang mga Tab" #: editor/editor_node.cpp msgid "Close Tabs to the Right" @@ -2843,7 +2847,7 @@ msgstr "" msgid "Add a new scene." msgstr "Magdagdag ng panibagong eksena." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Eksena" @@ -2885,7 +2889,7 @@ msgstr "Magbukas ng Eksena..." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Open Recent" -msgstr "" +msgstr "Buksan ang Kumakailan" #: editor/editor_node.cpp msgid "Save Scene" @@ -2906,12 +2910,12 @@ msgstr "TileSet..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" -msgstr "" +msgstr "I-undo" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" -msgstr "" +msgstr "I-redo" #: editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." @@ -2947,9 +2951,8 @@ msgid "Install Android Build Template..." msgstr "Ikabit ang Android Build Template..." #: editor/editor_node.cpp -#, fuzzy msgid "Open User Data Folder" -msgstr "Buksan ang Folder ng Datos ng Proyekto" +msgstr "Buksan ang User Data Folder ng Proyekto" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" @@ -3093,11 +3096,11 @@ msgstr "" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" -msgstr "" +msgstr "Buksan ang Folder ng Editor Settings" #: editor/editor_node.cpp msgid "Manage Editor Features..." -msgstr "" +msgstr "Pangasiwaan ang mga Tampok ng Editor..." #: editor/editor_node.cpp msgid "Manage Export Templates..." @@ -3232,7 +3235,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Install from file" -msgstr "" +msgstr "Mag-install mula sa file" #: editor/editor_node.cpp msgid "Select android sources file" @@ -3393,7 +3396,7 @@ msgstr "Sukat:" #: editor/editor_profiler.cpp msgid "Frame Time (ms)" -msgstr "" +msgstr "Oras ng Frame (ms)" #: editor/editor_profiler.cpp msgid "Average Time (ms)" @@ -3485,7 +3488,7 @@ msgstr "Pumili ng Tinginan" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" -msgstr "" +msgstr "Ang piniling node ay hindi Viewport!" #: editor/editor_properties_array_dict.cpp msgid "Size: " @@ -3524,7 +3527,7 @@ msgstr "" #: editor/editor_resource_picker.cpp editor/property_editor.cpp msgid "Make Unique" -msgstr "" +msgstr "Gawing Tangi (Unique)" #: editor/editor_resource_picker.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3538,7 +3541,7 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp #: editor/scene_tree_dock.cpp scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" -msgstr "Idikit" +msgstr "I-pasta" #: editor/editor_resource_picker.cpp editor/property_editor.cpp msgid "Convert to %s" @@ -3631,7 +3634,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Starting the download..." -msgstr "" +msgstr "Inuumpisahan ang pag-download..." #: editor/export_template_manager.cpp msgid "Error requesting URL:" @@ -3708,7 +3711,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Can't Resolve" -msgstr "" +msgstr "Hindi Mairesolba" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3871,7 +3874,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Favorites" -msgstr "" +msgstr "Mga Paborito" #: editor/filesystem_dock.cpp msgid "Status: Import of file failed. Please fix file and reimport manually." @@ -3938,19 +3941,19 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Renaming file:" -msgstr "" +msgstr "Pinapalitan ang pangalan ng file:" #: editor/filesystem_dock.cpp msgid "Renaming folder:" -msgstr "" +msgstr "Pinapalitan ang pangalan ng folder:" #: editor/filesystem_dock.cpp msgid "Duplicating file:" -msgstr "" +msgstr "Dinuduplicate ang file:" #: editor/filesystem_dock.cpp msgid "Duplicating folder:" -msgstr "" +msgstr "Dinuduplicate ang folder:" #: editor/filesystem_dock.cpp msgid "New Inherited Scene" @@ -3970,15 +3973,15 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Add to Favorites" -msgstr "" +msgstr "Idagdag sa Paborito mo" #: editor/filesystem_dock.cpp msgid "Remove from Favorites" -msgstr "" +msgstr "Alisin sa Paborito mo" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." -msgstr "Baguhin ang mga Kaasahan..." +msgstr "Baguhin ang mga Kaasahan (Dependencies)..." #: editor/filesystem_dock.cpp msgid "View Owners..." @@ -3998,7 +4001,7 @@ msgstr "Bagong Skrip..." #: editor/filesystem_dock.cpp msgid "New Resource..." -msgstr "" +msgstr "Bagong Resource..." #: editor/filesystem_dock.cpp editor/inspector_dock.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -4034,15 +4037,15 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Sort by Last Modified" -msgstr "Ayusin ayon sa Huling Binago" +msgstr "Pagbukud-bukurin ayon sa Huling Binago" #: editor/filesystem_dock.cpp msgid "Sort by First Modified" -msgstr "" +msgstr "Pagbukud-bukurin ayon sa Unang Binago" #: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate..." -msgstr "" +msgstr "I-duplicate..." #: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Rename..." @@ -4087,15 +4090,15 @@ msgstr "Ilipat" #: editor/project_manager.cpp editor/rename_dialog.cpp #: editor/scene_tree_dock.cpp msgid "Rename" -msgstr "" +msgstr "Baguhin ang Pangalan" #: editor/filesystem_dock.cpp msgid "Overwrite" -msgstr "" +msgstr "Ipagpalit" #: editor/filesystem_dock.cpp msgid "Create Scene" -msgstr "" +msgstr "Lumikha ng Eksena" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" @@ -4111,11 +4114,11 @@ msgstr "Hanapin:" #: editor/find_in_files.cpp editor/rename_dialog.cpp msgid "Replace:" -msgstr "" +msgstr "Palitan:" #: editor/find_in_files.cpp msgid "Folder:" -msgstr "" +msgstr "Folder:" #: editor/find_in_files.cpp msgid "Filters:" @@ -4130,11 +4133,11 @@ msgstr "" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." -msgstr "" +msgstr "Hanapin..." #: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp msgid "Replace..." -msgstr "" +msgstr "Palitan..." #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -4156,7 +4159,7 @@ msgstr "Palitan Lahat" #: editor/find_in_files.cpp msgid "Searching..." -msgstr "" +msgstr "Naghahanap..." #: editor/find_in_files.cpp msgid "%d match in %d file." @@ -4172,11 +4175,11 @@ msgstr "" #: editor/groups_editor.cpp msgid "Add to Group" -msgstr "" +msgstr "Idagdag sa Pangkat" #: editor/groups_editor.cpp msgid "Remove from Group" -msgstr "" +msgstr "Alisin sa Pangkat" #: editor/groups_editor.cpp msgid "Group name already exists." @@ -4205,7 +4208,7 @@ msgstr "" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp #: editor/scene_tree_editor.cpp msgid "Filter nodes" -msgstr "" +msgstr "Salain ang mga node" #: editor/groups_editor.cpp msgid "Nodes in Group" @@ -4266,11 +4269,11 @@ msgstr "" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Import Scene" -msgstr "" +msgstr "Mag-angkat ng Eksena" #: editor/import/resource_importer_scene.cpp msgid "Importing Scene..." -msgstr "" +msgstr "Inaangkat ang Eksena..." #: editor/import/resource_importer_scene.cpp msgid "Generating Lightmaps" @@ -4302,7 +4305,7 @@ msgstr "" #: editor/import/resource_importer_scene.cpp msgid "Saving..." -msgstr "" +msgstr "Nililigtas..." #: editor/import_defaults_editor.cpp msgid "Select Importer" @@ -4346,15 +4349,15 @@ msgstr "" #: editor/import_dock.cpp msgid "Import As:" -msgstr "" +msgstr "Iangkat Bilang:" #: editor/import_dock.cpp msgid "Preset" -msgstr "" +msgstr "Preset" #: editor/import_dock.cpp msgid "Save Scenes, Re-Import, and Restart" -msgstr "" +msgstr "I-ligtas ang mga Eksena, I-reimport at Mag-restart" #: editor/import_dock.cpp msgid "Changing the type of an imported file requires editor restart." @@ -4377,11 +4380,11 @@ msgstr "" #: editor/inspector_dock.cpp msgid "Copy Properties" -msgstr "" +msgstr "Kopyahin ang mga Katangian" #: editor/inspector_dock.cpp msgid "Paste Properties" -msgstr "" +msgstr "I-pasta ang mga Katangian" #: editor/inspector_dock.cpp msgid "Make Sub-Resources Unique" @@ -4403,7 +4406,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Save As..." -msgstr "" +msgstr "I-ligtas Bilang..." #: editor/inspector_dock.cpp msgid "Extra resource options." @@ -4435,11 +4438,11 @@ msgstr "" #: editor/inspector_dock.cpp msgid "Open documentation for this object." -msgstr "" +msgstr "Buksan ang dokumentasyon para sa object na ito." #: editor/inspector_dock.cpp editor/scene_tree_dock.cpp msgid "Open Documentation" -msgstr "" +msgstr "Buksan ang Dokumentasyon" #: editor/inspector_dock.cpp msgid "Filter properties" @@ -4467,48 +4470,48 @@ msgstr "" #: editor/plugin_config_dialog.cpp msgid "Create a Plugin" -msgstr "" +msgstr "Gumawa ng Plugin" #: editor/plugin_config_dialog.cpp msgid "Plugin Name:" -msgstr "" +msgstr "Pangalan ng Plugin:" #: editor/plugin_config_dialog.cpp msgid "Subfolder:" -msgstr "" +msgstr "Subfolder:" #: editor/plugin_config_dialog.cpp #: editor/plugins/version_control_editor_plugin.cpp msgid "Author:" -msgstr "" +msgstr "May-akda:" #: editor/plugin_config_dialog.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Version:" -msgstr "" +msgstr "Bersyon:" #: editor/plugin_config_dialog.cpp editor/script_create_dialog.cpp msgid "Language:" -msgstr "" +msgstr "Wika:" #: editor/plugin_config_dialog.cpp msgid "Script Name:" -msgstr "" +msgstr "Pangalan ng Skript:" #: editor/plugin_config_dialog.cpp msgid "Activate now?" -msgstr "" +msgstr "Aktibahin na ngayon?" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create Polygon" -msgstr "" +msgstr "Lumikha ng Polygon" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Create points." -msgstr "" +msgstr "Lumikha ng mga punto." #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" @@ -4516,27 +4519,30 @@ msgid "" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" +"Ayusin ang mga punto.\n" +"LMB: Maglipat ng Punto\n" +"RMB: Magbura ng Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Erase points." -msgstr "" +msgstr "Burahin ang mga punto." #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Edit Polygon" -msgstr "" +msgstr "Ayusin ang Polygon" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" -msgstr "" +msgstr "Maglagay ng Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Edit Polygon (Remove Point)" -msgstr "" +msgstr "Ayusin ang Polygon (Alisin ang Punto)" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Remove Polygon And Point" -msgstr "" +msgstr "Alisin ang Polygon At Punto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4544,14 +4550,14 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Animation" -msgstr "" +msgstr "Magdagdag ng Animation" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Load..." -msgstr "" +msgstr "Magload..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4617,20 +4623,20 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" -msgstr "" +msgstr "Punto" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Open Editor" -msgstr "" +msgstr "Buksan ang Editor" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Open Animation Node" -msgstr "" +msgstr "Buksan ang Animation Node" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Triangle already exists." @@ -4638,7 +4644,7 @@ msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Add Triangle" -msgstr "" +msgstr "Magdagdag ng Tatsulok" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Change BlendSpace2D Limits" @@ -4722,12 +4728,12 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Set Animation" -msgstr "" +msgstr "Itakda ang Animasyon" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Delete Node" -msgstr "" +msgstr "Burahin ang Node" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp @@ -4790,42 +4796,42 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" -msgstr "" +msgstr "I-toggle ang Kusang Pagpapalabas" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "" +msgstr "Bagong Pangalan ng Animation:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "" +msgstr "Bagong Anim" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "" +msgstr "Baguhin ang Pangalan ng Animasyon:" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Delete Animation?" -msgstr "" +msgstr "Alisin ang Animation?" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Remove Animation" -msgstr "" +msgstr "Alisin ang Animation" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Invalid animation name!" -msgstr "" +msgstr "Di-wastong pangalan ng animation!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation name already exists!" -msgstr "" +msgstr "May nakapangalan na parehas sa Animation na ito!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Rename Animation" -msgstr "" +msgstr "Palitan ang Pangalan ng Animation" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Duplicate Animation" @@ -4861,7 +4867,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "No animation to edit!" -msgstr "" +msgstr "Walang animasyong pinagtratrabauhan!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" @@ -4906,7 +4912,7 @@ msgstr "Bago" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." -msgstr "" +msgstr "Ayusin ang mga Transisyon..." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Open in Inspector" @@ -4930,7 +4936,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" -msgstr "" +msgstr "Mga Direksyon" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Past" @@ -5062,6 +5068,9 @@ msgid "" "RMB to add new nodes.\n" "Shift+LMB to create connections." msgstr "" +"Magpili at maglipad ng mga node.\n" +"RMB upang magdagdag ng bagong mga node.\n" +"Shift+LMB upang gumawa ng mga bagong koneksyon." #: editor/plugins/animation_state_machine_editor.cpp msgid "Create new nodes." @@ -5175,15 +5184,15 @@ msgstr "" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Delete Input" -msgstr "" +msgstr "Alisin ang Input" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation tree is valid." -msgstr "" +msgstr "Wasto ang animation tree." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation tree is invalid." -msgstr "" +msgstr "Di-wasto ang animation tree." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Animation Node" @@ -5235,27 +5244,27 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Contents:" -msgstr "" +msgstr "Laman:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "View Files" -msgstr "" +msgstr "Tignan ang mga File" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download" -msgstr "" +msgstr "I-download" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." -msgstr "" +msgstr "Nabigo sa pagkonekta, maaring subukan muli." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect." -msgstr "" +msgstr "Hindi makakonekta." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" -msgstr "" +msgstr "Hindi makakonekta sa host:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response from host:" @@ -5271,7 +5280,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve." -msgstr "" +msgstr "Hindi mai-resolba." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" @@ -5283,7 +5292,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." -msgstr "" +msgstr "Nabigo sa pag-write." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, too many redirects" @@ -5303,55 +5312,55 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed:" -msgstr "" +msgstr "Nabigo:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Bad download hash, assuming file has been tampered with." -msgstr "" +msgstr "Di-wastong download hash, inaakalang may gumalaw ng file." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Expected:" -msgstr "" +msgstr "Inaasahan:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Got:" -msgstr "" +msgstr "Natanggap:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed SHA-256 hash check" -msgstr "" +msgstr "Nabigo sa pagsusuri ng SHA-256 hash" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" -msgstr "" +msgstr "Nabigo sa Pagdownload ng Asset:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading (%s / %s)..." -msgstr "" +msgstr "Dinadawnlowd (%s/%s)..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading..." -msgstr "" +msgstr "Dinadawnlowd..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Resolving..." -msgstr "" +msgstr "Rineresolba..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" -msgstr "" +msgstr "Nabigo sa paggawa ng hiling" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Idle" -msgstr "" +msgstr "Nakatenga" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install..." -msgstr "" +msgstr "I-install..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Retry" -msgstr "" +msgstr "Subukan muli" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download Error" @@ -5371,23 +5380,23 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Name (A-Z)" -msgstr "" +msgstr "Pangalan (A-Z)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Name (Z-A)" -msgstr "" +msgstr "Pangalan (Z-A)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "License (A-Z)" -msgstr "" +msgstr "Lisensya (A-Z)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "License (Z-A)" -msgstr "" +msgstr "Lisensya (Z-A)" #: editor/plugins/asset_library_editor_plugin.cpp msgid "First" -msgstr "" +msgstr "Panguna" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Previous" @@ -5403,7 +5412,7 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp msgid "All" -msgstr "" +msgstr "Lahat" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Search templates, projects, and demos" @@ -5423,31 +5432,31 @@ msgstr "" #: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" -msgstr "" +msgstr "Ipagbukud-bukod:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Category:" -msgstr "" +msgstr "Kaurian:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Site:" -msgstr "" +msgstr "Site:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Support" -msgstr "" +msgstr "Naka-alalay" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Official" -msgstr "" +msgstr "Opisyal" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Testing" -msgstr "" +msgstr "Sinusubukan" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Loading..." -msgstr "" +msgstr "Nagloload..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Assets ZIP File" @@ -5493,13 +5502,17 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Preview" -msgstr "" +msgstr "Pasilip" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Configure Snap" @@ -5567,7 +5580,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotate %d CanvasItems" -msgstr "" +msgstr "Paikutin ang (mga) %d Canvasitems" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotate CanvasItem \"%s\" to %d degrees" @@ -5715,7 +5728,7 @@ msgid "" "Project Camera Override\n" "Overrides the running project's camera with the editor viewport camera." msgstr "" -"Pagpapalit ng Kamera ng Proyekto\n" +"Pagpapalit sa Kamera ng Proyekto\n" "Pinapalitan ang kamera ng tumatakbong proyekto sa kamera ng editor viewport." #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5729,12 +5742,12 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock Selected" -msgstr "" +msgstr "I-lock ang nakapili" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock Selected" -msgstr "" +msgstr "I-unlock ang nakapili" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5748,7 +5761,7 @@ msgstr "Ibuwag Ang Pangkat ng Napili" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" -msgstr "" +msgstr "I-pasta ang Pose" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear Guides" @@ -5764,11 +5777,11 @@ msgstr "Alisin Ang Mga Buto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make IK Chain" -msgstr "" +msgstr "Lumikha ng IK Chain" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Clear IK Chain" -msgstr "" +msgstr "Alisin ang IK Chain" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5781,7 +5794,7 @@ msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Reset" -msgstr "" +msgstr "Ibalik sa Dati ang Zoom" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5810,10 +5823,12 @@ msgstr "V: Itakda ang posisyon ng pivot sa node." #: editor/plugins/spatial_editor_plugin.cpp msgid "Alt+RMB: Show list of all nodes at position clicked, including locked." msgstr "" +"Alt+RMB: Ipakita ang listahan ng lahat ng node at posisyong pinindutan, " +"kabilang ang mga naka-lock." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "RMB: Add node at position clicked." -msgstr "" +msgstr "RMB: Magdagdag ng node sa posisyong pinindutan." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5832,7 +5847,7 @@ msgstr "Paraan ng Pagpapalaki" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Shift: Scale proportionally." -msgstr "" +msgstr "Shift: Palakihin na pa-proporsyonal." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5861,7 +5876,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Use Smart Snap" -msgstr "" +msgstr "Gamitin ang Smart Snap" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Toggle grid snapping." @@ -5931,14 +5946,13 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock Selected Node(s)" -msgstr "Doblehin ang (mga) Napiling Key" +msgstr "I-lock ang Nakapiling (mga) Node" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Unlock the selected object (can be moved)." -msgstr "" +msgstr "I-Unlock ang Napiling Object (maaring galawin)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5964,9 +5978,8 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Ungroup Selected Node(s)" -msgstr "Ibuwag Ang Pangkat ng Napili" +msgstr "Ibuwag Ang Pangkat ng (mga) Napiling Node" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Skeleton Options" @@ -5991,7 +6004,7 @@ msgstr "Tingnan" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Always Show Grid" -msgstr "" +msgstr "Parating Ipakita ang Grid" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Helpers" @@ -6095,11 +6108,11 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom to 3.125%" -msgstr "" +msgstr "I-zoom sa 3.125%" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom to 6.25%" -msgstr "" +msgstr "I-zoom sa 6.25%" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Zoom to 12.5%" @@ -6168,15 +6181,15 @@ msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Create Polygon3D" -msgstr "" +msgstr "Gumawa ng Polygon3D" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly" -msgstr "" +msgstr "Ayusin ang Poly" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Edit Poly (Remove Point)" -msgstr "" +msgstr "Ayusin ang Poly (Magalis ng Punto)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -6192,7 +6205,7 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Restart" -msgstr "" +msgstr "Simulan muli" #: editor/plugins/cpu_particles_2d_editor_plugin.cpp #: editor/plugins/particles_2d_editor_plugin.cpp @@ -6247,12 +6260,12 @@ msgstr "" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emission Points From Mesh" -msgstr "" +msgstr "Gumawa ng mga Punto ng Bugahan Galing sa Mesh" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emission Points From Node" -msgstr "" +msgstr "Gumawa ng mga Punto ng Bugahan Galing sa Node" #: editor/plugins/curve_editor_plugin.cpp msgid "Flat 0" @@ -6264,11 +6277,11 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp msgid "Ease In" -msgstr "" +msgstr "Suwabeng Pagpasok" #: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp msgid "Ease Out" -msgstr "" +msgstr "Suwabeng Paglabas" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -6288,11 +6301,11 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Add Point" -msgstr "" +msgstr "Magdagdag ng Punto" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Point" -msgstr "" +msgstr "Magalis ng Punto" #: editor/plugins/curve_editor_plugin.cpp msgid "Left Linear" @@ -7242,16 +7255,16 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find Next" -msgstr "" +msgstr "Hanapin ang Susunod" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find Previous" -msgstr "" +msgstr "Hanapin ang Nakaraan" #: editor/plugins/script_editor_plugin.cpp msgid "Filter scripts" -msgstr "" +msgstr "Salain ang mga skrip" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -7291,15 +7304,15 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Open..." -msgstr "" +msgstr "Buksan..." #: editor/plugins/script_editor_plugin.cpp msgid "Reopen Closed Script" -msgstr "" +msgstr "Buksan Muli ang Naisarang Skrip" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" -msgstr "" +msgstr "I-ligtas Lahat" #: editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" @@ -7416,7 +7429,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp msgid "Search Results" -msgstr "" +msgstr "Bunga ng Paghahanap" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Scripts" @@ -7449,7 +7462,7 @@ msgstr "" #: editor/plugins/script_text_editor.cpp msgid "Go to Function" -msgstr "" +msgstr "Tumungo sa Punsyon" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -7500,29 +7513,29 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp msgid "Go To" -msgstr "" +msgstr "Pumunta sa" #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Cut" -msgstr "" +msgstr "Gupitin" #: editor/plugins/script_text_editor.cpp editor/plugins/theme_editor_plugin.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Select All" -msgstr "" +msgstr "Piliin Lahat" #: editor/plugins/script_text_editor.cpp msgid "Delete Line" -msgstr "" +msgstr "Burahin ang Linya" #: editor/plugins/script_text_editor.cpp msgid "Indent Left" -msgstr "" +msgstr "I-urong Pakaliwa" #: editor/plugins/script_text_editor.cpp msgid "Indent Right" -msgstr "" +msgstr "I-urong Pakanan" #: editor/plugins/script_text_editor.cpp msgid "Toggle Comment" @@ -7595,11 +7608,11 @@ msgstr "" #: editor/plugins/script_text_editor.cpp msgid "Go to Function..." -msgstr "" +msgstr "Pumunta sa Punsyon..." #: editor/plugins/script_text_editor.cpp msgid "Go to Line..." -msgstr "" +msgstr "Pumunta sa Linya..." #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -7930,7 +7943,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8808,6 +8826,11 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Baguhin ang Pangalan ng Resource" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8857,6 +8880,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Magdagdag ng Bagong Uri ng Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Ibahin ang Punong-Uri" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Ibahin ang Punong-Uri" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Ipakita ang Karaniwan" @@ -8873,8 +8910,19 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Magdagdag ng Bagong Uri ng Item" +#, fuzzy +msgid "Base Type" +msgstr "Ibahin ang Punong-Uri" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9559,18 +9607,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Mga Tugma:" @@ -10922,47 +10958,47 @@ msgstr "" #: editor/project_manager.cpp msgid "Scan" -msgstr "" +msgstr "Maghanap" #: editor/project_manager.cpp msgid "Scan Projects" -msgstr "" +msgstr "Maghanap ng mga Proyekto" #: editor/project_manager.cpp msgid "Select a Folder to Scan" -msgstr "" +msgstr "Pumili ng Folder na Paghahanapan" #: editor/project_manager.cpp msgid "New Project" -msgstr "" +msgstr "Bagong Proyekto" #: editor/project_manager.cpp msgid "Import Project" -msgstr "" +msgstr "Mag-angkat ng Proyekto" #: editor/project_manager.cpp msgid "Remove Project" -msgstr "" +msgstr "Alisin ang Proyekto" #: editor/project_manager.cpp msgid "Remove Missing" -msgstr "" +msgstr "Alisin ang Nawawala" #: editor/project_manager.cpp msgid "About" -msgstr "Tungkol sa Godot" +msgstr "Tungkol dito" #: editor/project_manager.cpp msgid "Asset Library Projects" -msgstr "" +msgstr "Mga Proyekto mula sa Asset Library" #: editor/project_manager.cpp msgid "Restart Now" -msgstr "" +msgstr "I-restart" #: editor/project_manager.cpp msgid "Remove All" -msgstr "" +msgstr "Alisin Lahat" #: editor/project_manager.cpp msgid "Also delete project contents (no undo!)" @@ -10970,17 +11006,20 @@ msgstr "" #: editor/project_manager.cpp msgid "Can't run project" -msgstr "" +msgstr "Hindi mapatakbo ang proyekto" #: editor/project_manager.cpp msgid "" "You currently don't have any projects.\n" "Would you like to explore official example projects in the Asset Library?" msgstr "" +"Kasalukuyang wala ka pang mga proyekto.\n" +"Gusto mo bang pumunta sa mga opisyal na halimbawang proyekto sa Asset " +"Library?" #: editor/project_manager.cpp msgid "Filter projects" -msgstr "" +msgstr "Salain ang mga proyekto" #: editor/project_manager.cpp msgid "" @@ -10988,6 +11027,10 @@ msgid "" "To filter projects by name and full path, the query must contain at least " "one `/` character." msgstr "" +"Ang patlang na ito ay nagsasala sa mga proyekto ayon sa pangalan at hulihang " +"path component. \n" +"Upang sumala ng mga proyekto ayon sa pangalan at full path, dapat mayroong " +"kahit isang '/' na karakter sa paghahanap." #: editor/project_settings_editor.cpp msgid "Physical Key" @@ -12136,6 +12179,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Salain ang mga hudyat" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -12153,7 +12201,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Monitors" -msgstr "" +msgstr "Mga Tagasubaybay" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -13010,30 +13058,28 @@ msgid "Edit Member" msgstr "Ayusin ang Kasapi" #: modules/visual_script/visual_script_expression.cpp -#, fuzzy msgid "Expression" -msgstr "Ibahin ang Ekspresyon" +msgstr "Ekspresyon" #: modules/visual_script/visual_script_flow_control.cpp msgid "Return" msgstr "" #: modules/visual_script/visual_script_flow_control.cpp -#, fuzzy msgid "Condition" -msgstr "animation" +msgstr "Kondisyon" #: modules/visual_script/visual_script_flow_control.cpp msgid "if (cond) is:" -msgstr "" +msgstr "if (kondisyon) ay:" #: modules/visual_script/visual_script_flow_control.cpp msgid "While" -msgstr "" +msgstr "While" #: modules/visual_script/visual_script_flow_control.cpp msgid "while (cond):" -msgstr "" +msgstr "while (kondisyon):" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator" @@ -13045,11 +13091,11 @@ msgstr "" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " -msgstr "" +msgstr "Hindi iterable ang uri ng input: " #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid" -msgstr "" +msgstr "Naging invalid ang Iterator" #: modules/visual_script/visual_script_flow_control.cpp msgid "Iterator became invalid: " @@ -13065,7 +13111,7 @@ msgstr "" #: modules/visual_script/visual_script_flow_control.cpp msgid "Switch" -msgstr "" +msgstr "Switch" #: modules/visual_script/visual_script_flow_control.cpp msgid "'input' is:" @@ -13078,7 +13124,7 @@ msgstr "Mga Uri:" #: modules/visual_script/visual_script_flow_control.cpp msgid "Is %s?" -msgstr "" +msgstr "%s ba?" #: modules/visual_script/visual_script_func_nodes.cpp msgid "On %s" @@ -13351,7 +13397,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Exporting APK..." -msgstr "" +msgstr "Iniluluwas ang APK..." #: platform/android/export/export_plugin.cpp msgid "Uninstalling..." @@ -13367,7 +13413,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Running on device..." -msgstr "" +msgstr "Tumatakbo sa device..." #: platform/android/export/export_plugin.cpp msgid "Could not execute on device." @@ -13433,7 +13479,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Invalid public key for APK expansion." -msgstr "" +msgstr "Di-wastong public key para sa APK expansion." #: platform/android/export/export_plugin.cpp msgid "Invalid package name:" @@ -13443,6 +13489,9 @@ msgstr "Di-wastong pangalan para sa pakete:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp @@ -13504,11 +13553,11 @@ msgstr "nagbalik ng may pagkakabigong #%d ang 'apksigner'" #: platform/android/export/export_plugin.cpp msgid "Verifying %s..." -msgstr "" +msgstr "Pinapatunayan ang %s..." #: platform/android/export/export_plugin.cpp msgid "'apksigner' verification of %s failed." -msgstr "" +msgstr "Nabigo ang pagpapatunay ng 'apksigner' ng %s." #: platform/android/export/export_plugin.cpp msgid "Exporting for Android" @@ -13561,7 +13610,7 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Building Android Project (gradle)" -msgstr "" +msgstr "Binibuild ang Android Project (gradle)" #: platform/android/export/export_plugin.cpp msgid "" @@ -13585,13 +13634,15 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Creating APK..." -msgstr "" +msgstr "Nililikha ang APK..." #: platform/android/export/export_plugin.cpp msgid "" "Could not find template APK to export:\n" "%s" msgstr "" +"Walang mahanap na template APK upang iluwas:\n" +"%s" #: platform/android/export/export_plugin.cpp msgid "" @@ -13603,11 +13654,11 @@ msgstr "" #: platform/android/export/export_plugin.cpp msgid "Adding files..." -msgstr "" +msgstr "Dinadagdag ang mga file..." #: platform/android/export/export_plugin.cpp msgid "Could not export project files" -msgstr "" +msgstr "Hindi mai-luwas ang mga project file" #: platform/android/export/export_plugin.cpp msgid "Aligning APK..." @@ -13635,11 +13686,11 @@ msgstr "" #: platform/javascript/export/export.cpp msgid "Stop HTTP Server" -msgstr "" +msgstr "Ihinto ang HTTP Server" #: platform/javascript/export/export.cpp msgid "Run in Browser" -msgstr "" +msgstr "Patakbuhin sa Browser" #: platform/javascript/export/export.cpp msgid "Run exported HTML in the system's default browser." @@ -13703,9 +13754,8 @@ msgid "Failed to extract thin binary." msgstr "" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Di-wastong pangalan." +msgstr "Di-wastong binary format." #: platform/osx/export/codesign.cpp msgid "Already signed!" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 87535e17f4..81253d421c 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -1539,6 +1539,11 @@ msgstr "Varsayılan Bus Yerleşim Düzenini Yükle." msgid "Create a new Bus Layout." msgstr "Yeni bir Bus Yerleşim Düzeni oluştur." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Audio Bus Yerleşim Düzenini Aç" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Geçersiz ad." @@ -2981,7 +2986,7 @@ msgstr "Dikkat-Dağıtmayan Kipine geç." msgid "Add a new scene." msgstr "Yeni bir sahne ekle." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Sahne" @@ -5756,6 +5761,10 @@ msgid "Bake Lightmaps" msgstr "Işık-Haritalarını Pişir" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Işık Haritası pişirme dosyası seçiniz:" @@ -8235,7 +8244,13 @@ msgid "Cinematic Preview" msgstr "Sinematik Önizleme" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "GLES2 işleyici kullanılırken kullanılamaz." #: editor/plugins/spatial_editor_plugin.cpp @@ -9130,6 +9145,11 @@ msgid "Select Another Theme Resource:" msgstr "Başka Bir Tema Kaynağı Seçin:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Kaynağı Yeniden Adlandır" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Başka Bir Tema" @@ -9178,6 +9198,20 @@ msgstr "" "tipteki diğer tüm StyleBox'larda aynı özellikleri güncelleyecektir." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Öğe Türü Ekle" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Değişken Tipini Ayarla" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Temel Tipi Değiştir" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Varsayılanı Göster" @@ -9194,8 +9228,19 @@ msgid "Override all default type items." msgstr "Tüm varsayılan tür öğelerini geçersiz kıl." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Öğe Türü Ekle" +#, fuzzy +msgid "Base Type" +msgstr "Temel Tipi Değiştir" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9899,18 +9944,6 @@ msgid "Commit list size" msgstr "İşlem listesi boyutu" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Dallar" @@ -12642,6 +12675,11 @@ msgid "Stack Frames" msgstr "Çerçeveleri Yığ" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Döşemelerde Bul" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Kesitçi" @@ -13963,9 +14001,10 @@ msgstr "Geçersiz paket ismi:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Geçersiz \"GodotPaymentV3\" modülü \"android/modüller\" proje ayarına dahil " -"edildi (Godot 3.2.2'de değiştirildi).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/tt.po b/editor/translations/tt.po index 8459c61d41..afad464d26 100644 --- a/editor/translations/tt.po +++ b/editor/translations/tt.po @@ -1438,6 +1438,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2787,7 +2791,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5429,6 +5433,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7854,7 +7862,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8729,6 +8742,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8775,6 +8792,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8791,7 +8820,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9469,18 +9508,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12034,6 +12061,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13317,6 +13348,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po index 3b2ebd6275..478dc7420f 100644 --- a/editor/translations/tzm.po +++ b/editor/translations/tzm.po @@ -1436,6 +1436,10 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +msgid "Audio Bus Layout" +msgstr "" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2785,7 +2789,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5427,6 +5431,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "" @@ -7852,7 +7860,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8727,6 +8740,10 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Theme Resource" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -8773,6 +8790,18 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Variation Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Set Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -8789,7 +8818,17 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +msgid "Base Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9465,18 +9504,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12030,6 +12057,10 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +msgid "Filter stack variables" +msgstr "" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13313,6 +13344,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 63a2ecc734..d5e68f8a84 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -23,7 +23,7 @@ msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2022-01-24 02:05+0000\n" +"PO-Revision-Date: 2022-02-16 16:36+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -1497,6 +1497,11 @@ msgstr "Завантажити типове компонування шини." msgid "Create a new Bus Layout." msgstr "Створення нового компонування шини." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Відкрити компонування аудіо шини" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Некоректна назва." @@ -2117,7 +2122,6 @@ msgstr "Клас:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp #: editor/script_create_dialog.cpp -#, fuzzy msgid "Inherits:" msgstr "Успадковує:" @@ -2884,9 +2888,8 @@ msgstr "Видалити компонування" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp -#, fuzzy msgid "Default" -msgstr "За замовчуванням" +msgstr "Типовий" #: editor/editor_node.cpp editor/editor_resource_picker.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp @@ -2949,7 +2952,7 @@ msgstr "Перемкнути режим без відволікання." msgid "Add a new scene." msgstr "Додати нову сцену." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Сцена" @@ -3325,14 +3328,12 @@ msgid "Update Continuously" msgstr "Оновлювати неперервно" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "Оновлювати при зміні" +msgstr "Оновити усі зміни" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "Зміни матеріалу:" +msgstr "Оновити критичні зміни" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4111,6 +4112,11 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"Цей суфікс назв файлів не розпізнано редактором.\n" +"Якщо ви хочете виконати перейменування попри це, скористайтеся програмою для " +"керування файлами операційної системи.\n" +"Після перейменовування із застосуванням невідомого суфікса назви, редактор " +"більше не показуватиме файл у списку." #: editor/filesystem_dock.cpp msgid "" @@ -5731,6 +5737,10 @@ msgid "Bake Lightmaps" msgstr "Запікати карти освітлення" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "Виберіть файл приготування карти освітлення:" @@ -8218,7 +8228,13 @@ msgid "Cinematic Preview" msgstr "Кінематичний перегляд" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Є недоступним, якщо використовується обробник GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9115,6 +9131,11 @@ msgid "Select Another Theme Resource:" msgstr "Виберіть ресурс іншої теми:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "Перейменувати ресурс" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "Інша тема" @@ -9164,6 +9185,20 @@ msgstr "" "цього типу." #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "Додати тип запису" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Встановити тип змінної" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Змінити базовий тип" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "Показати типовий" @@ -9181,8 +9216,19 @@ msgid "Override all default type items." msgstr "Перевизначити усі записи стандартних типів." #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "Додати тип запису" +#, fuzzy +msgid "Base Type" +msgstr "Змінити базовий тип" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9890,18 +9936,6 @@ msgid "Commit list size" msgstr "Розмір списку внеску" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "Гілки" @@ -12655,6 +12689,11 @@ msgid "Stack Frames" msgstr "Стосувати кадри" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Фільтрувати плитки" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "Засіб профілювання" @@ -12828,14 +12867,12 @@ msgid "Set Occluder Sphere Position" msgstr "Встановити позицію сфери закупорювання" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "Задати положення точки порталу" +msgstr "Задати розташування точки затінювального багатокутника" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "Задати положення точки кривої" +msgstr "Задати розташування точки отвору затінювання" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -13978,9 +14015,10 @@ msgstr "Некоректна назва пакунка:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Некоректний модуль «GodotPaymentV3» включено до параметрів проєкту «android/" -"modules» (змінено у Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -14250,166 +14288,167 @@ msgstr "Помилка під час спроби запуску сервера #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "Не вдалося отримати доступ до файлової системи." #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "Не вдалося отримати хеш-суму Info.plist." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "Некоректна назва проєкту." +msgstr "Некоректний вміст Info.plist — немає назви виконуваного файла." #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Некоректний вміст Info.plist — немає ідентифікатора комплекту." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "Некоректна геометрія, неможливо створити багатокутник." +msgstr "Некоректний вміст Info.plist — не вдалося завантажити." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "Неможливо створити теку." +msgstr "Не вдалося створити підтеку «%s»." #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "Не вдалося видобути «тонкі» двійкові дані." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "Некоректний базовий шлях." +msgstr "Некоректний формат двійкових даних." #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "Вже підписано!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "Не вдалося завантажити ресурс." +msgstr "Не вдалося обробити вкладені ресурси." #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "Не вдалося створити підтеку _CodeSignature." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "Не вдалося завантажити ресурс." +msgstr "Не вдалося отримати хеш-суму CodeResources." #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "Некоректний суфікс." +msgstr "Некоректний файл найменувань." #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "Некоректний суфікс." +msgstr "Некоректний виконуваний файл." #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "Не вдалося змінити розмір команди завантаження підпису." #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "Не вдалося створити «товсті» двійкові дані." #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "Невідомий тип комплекту." #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "Невідомий тип об'єктів." #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." msgstr "" +"Зауваження: процедура засвідчення, загалом, триває не більше години. Щойно " +"процедуру буде завершено, ви отримаєте повідомлення електронною поштою." #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" msgstr "" +"Ви можете стежити за поступом вручну — відкрийте термінал і віддайте у ньому " +"таку команду:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" msgstr "" +"Віддайте таку команду для долучення квитка засвідчення до експортованої " +"програми (необов'язкова процедура):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "Піктограм не знайдено." +msgstr "Не знайдено профілю." #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "Створюємо мініатюру" +msgstr "Створюємо комплект програми" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"Не вдалося знайти шаблон APK для експортування:\n" -"%s" +msgstr "Не вдалося знайти програму-шаблон для експортування:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" msgstr "" +"У цій операційній системі не передбачено підтримки відносних символічних " +"посилань. Експортований проєкт може виявитися непрацездатним!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." msgstr "" +"Не знайдено двійкового файла шаблона «%s». Ймовірно, його немає у вашому " +"архіві шаблона." #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "Створюємо PKG" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." msgstr "" +"Для одноразово підписаних програм потрібен параметр «Вимкнути перевірку " +"бібліотек» для завантаження динамічних бібліотек." #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "Комплект із підписуванням коду" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "Створюємо DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "DMG із підписуванням коду" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "Створюємо ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." msgstr "" +"Для засвідчення програму слід спочатку архівувати. Виберіть замість " +"поточного формат експортування DMG або ZIP." #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "Надсилаємо архів для засвідчення" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14420,31 +14459,36 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"Попередження: у параметрах редактора вибрано вбудований «codesign». " +"Підписування коду обмежено одноразовим підписом." #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"Попередження: не встановлено інструменти командного рядка Xcode, " +"використовуємо вбудований «codesign». Підписування коду обмежено одноразовим " +"підписом." #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." msgstr "" +"Засвідчення: підтримки засвідчення із одноразовим підписом не передбачено." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "Засвідчення: потрібен код підписування." +msgstr "Засвідчення: для засвідчення потрібне підписування коду." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "Засвідчення: потрібне стійке середовище запуску." +msgstr "Засвідчення: для засвідчення потрібне стійке середовище запуску." #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "Засвідчення: потрібне стійке середовище запуску." +msgstr "" +"Засвідчення: для засвідчення потрібне середовище запуску із часовими " +"позначками." #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14459,63 +14503,86 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Попередження: засвідчення вимкнено. Експортований проєкт буде заблоковано " +"Gatekeeper, якщо його отримано з невідомого джерела." #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"Підписування коду вимкнено. Експортований проєкт не запускатиметься на Macіз " +"Gatekeeper та Mac на основі Apple Silicon." #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" msgstr "" +"Стійке середовище запуску є несумісним із одноразовим підписом — його буде " +"вимкнено!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" msgstr "" +"Використання часових позначок є несумісним із одноразовим підписом — його " +"буде вимкнено!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"Попередження: підтримки засвідчення у цій операційній системі не " +"передбачено. Експортований проєкт буде заблоковано Gatekeeper, якщо його " +"отримано із невідомого джерела." #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." msgstr "" +"Конфіденційність: увімкнено доступ до мікрофона, але опис використання не " +"вказано." #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." msgstr "" +"Конфіденційність: увімкнено доступ до камери, але опис використання не " +"вказано." #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." msgstr "" +"Конфіденційність: увімкнено доступ до даних щодо місця перебування, але опис " +"використання не вказано." #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." msgstr "" +"Конфіденційність: увімкнено доступ до адресної книги, але опис використання " +"не вказано." #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." msgstr "" +"Конфіденційність: увімкнено доступ до календаря, але опис використання не " +"вказано." #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." msgstr "" +"Конфіденційність: увімкнено доступ до бібліотеки фотографій, але опис " +"використання не вказано." #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14584,21 +14651,21 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"Щоб мати змогу змінювати піктограму або дані щодо програми, має бути " +"налаштовано інструмент rcedit у параметрах редактора (Експорт > Windows > " +"Rcedit)." #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "Неправильний шлях." +msgstr "Некоректний шлях до піктограм:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "Некоректний суфікс." +msgstr "Некоректна версія файла:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "Некоректний GUID продукту." +msgstr "Некоректна версія продукту:" #: scene/2d/animated_sprite.cpp msgid "" @@ -15344,14 +15411,13 @@ msgstr "" "Цей вузол вважається застарілим. Скористайтеся замість нього AnimationTree." #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" "RMB: Remove preset" msgstr "" "Колір: #%s\n" -"Ліва кнопка: встановити колір\n" +"Ліва кнопка: застосувати колір\n" "Права кнопка: вилучити взірець" #: scene/gui/color_picker.cpp diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 90156465b3..3febf6aebe 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -1463,6 +1463,11 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr ".تمام کا انتخاب" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "" @@ -2844,7 +2849,7 @@ msgstr "" msgid "Add a new scene." msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "" @@ -5555,6 +5560,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr ".تمام کا انتخاب" @@ -8061,7 +8070,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -8979,6 +8993,11 @@ msgid "Select Another Theme Resource:" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "" @@ -9026,6 +9045,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "" @@ -9042,7 +9075,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -9769,18 +9813,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "" @@ -12395,6 +12427,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "سب سکریپشن بنائیں" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -13739,6 +13776,9 @@ msgstr "" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 12cb91b7f9..3590c07d79 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -18,14 +18,14 @@ # LetterC67 <hoangdeptoong@gmail.com>, 2020, 2021. # Rev <revolnoom7801@gmail.com>, 2021. # SyliawDeV <thanhlongstranger@gmail.com>, 2021. -# IoeCmcomc <hopdaigia2004@gmail.com>, 2021. +# IoeCmcomc <hopdaigia2004@gmail.com>, 2021, 2022. # Hung <hungthitkhia@gmail.com>, 2021. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-09-15 00:46+0000\n" +"PO-Revision-Date: 2022-02-26 10:27+0000\n" "Last-Translator: IoeCmcomc <hopdaigia2004@gmail.com>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/" "godot/vi/>\n" @@ -34,7 +34,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.9-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -815,7 +815,7 @@ msgid "" "target node." msgstr "" "Phương thức không được tìm thấy. Chỉ định phương thức hợp lệ hoặc đính kèm " -"tệp lệnh vào nút." +"tập lệnh vào nút." #: editor/connections_dialog.cpp msgid "Connect to Node:" @@ -1495,6 +1495,11 @@ msgstr "Nạp bố cục Bus mặc định." msgid "Create a new Bus Layout." msgstr "Tạo bố cục Bus mới." +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "Mở bố cục Bus âm thanh" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "Tên không hợp lệ." @@ -2103,7 +2108,7 @@ msgstr "Lớp:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp #: editor/script_create_dialog.cpp msgid "Inherits:" -msgstr "Thừa kế:" +msgstr "Kế thừa:" #: editor/editor_help.cpp msgid "Inherited by:" @@ -2145,7 +2150,7 @@ msgstr "Màu" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp msgid "Constants" -msgstr "Hằng số" +msgstr "Hằng" #: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -2924,7 +2929,7 @@ msgstr "Bật tắt chế độ tập trung." msgid "Add a new scene." msgstr "Thêm cảnh mới." -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "Cảnh" @@ -5674,6 +5679,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "Chọn tệp bake lightmap:" @@ -8203,7 +8212,13 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "Không khả dụng khi sử dụng trình kết xuất GLES2." #: editor/plugins/spatial_editor_plugin.cpp @@ -9145,6 +9160,11 @@ msgstr "Xóa tài nguyên" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "Đổi tên tài nguyên" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "Nhập Tông màu" @@ -9199,6 +9219,21 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Add Item Type" +msgstr "Thêm mục" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "Đặt loại biến" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "Thay đổi loại cơ sở" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Show Default" msgstr "Nạp mặc định" @@ -9217,8 +9252,18 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Add Item Type" -msgstr "Thêm mục" +msgid "Base Type" +msgstr "Thay đổi loại cơ sở" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -9934,18 +9979,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "Phù hợp:" @@ -10056,7 +10089,7 @@ msgstr "Tỷ lệ" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector" -msgstr "Vector" +msgstr "Véc tơ" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" @@ -10178,11 +10211,11 @@ msgstr "hàm đen trắng" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts HSV vector to RGB equivalent." -msgstr "Chuyển vector màu HSV sang RGB tương ứng." +msgstr "Chuyển véc tơ màu HSV sang RGB tương ứng." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Converts RGB vector to HSV equivalent." -msgstr "Chuyển vector màu RGB sang HSV tương ứng." +msgstr "Chuyển véc tơ màu RGB sang HSV tương ứng." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Sepia function." @@ -10622,16 +10655,16 @@ msgid "" "whose number of rows is the number of components in 'c' and whose number of " "columns is the number of components in 'r'." msgstr "" -"Tính tích ngoài của một cặp vector.\n" +"Tính tích ngoài của một cặp véc tơ.\n" "\n" -"Tích ngoài đặt tham số 'c' đầu tiên làm vector dọc (ma trận 1 cột) và tham " -"số 'h' thứ hai là vector ngang (ma trận 1 hàng) rồi thực hiện phép nhân ma " -"trận tuyến tính 'c * h', tạo ra ma trận có số hàng bằng số phần tử trong 'h' " -"và số cột bằng số phần tử trong 'c'." +"Tích ngoài coi tham số 'c' đầu tiên là véc tơ dọc (ma trận 1 cột) và tham số " +"'h' thứ hai là véc tơ ngang (ma trận 1 hàng) rồi thực hiện phép nhân ma trận " +"tuyến tính 'c * h', tạo ra ma trận có số hàng bằng số phần tử trong 'h' và " +"số cột bằng số phần tử trong 'c'." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Composes transform from four vectors." -msgstr "Tạo phép biến đổi từ 4 vector." +msgstr "Tạo phép biến đổi từ 4 véc tơ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Decomposes transform to four vectors." @@ -10655,7 +10688,7 @@ msgstr "Nhân hai phép biến đổi." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Multiplies vector by transform." -msgstr "Nhân vector với phép biến đổi." +msgstr "Nhân véc tơ với phép biến đổi." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform constant." @@ -10668,11 +10701,11 @@ msgstr "Tạo" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector function." -msgstr "Hàm Vector." +msgstr "Hàm véc tơ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector operator." -msgstr "" +msgstr "Toán tử véc tơ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Composes vector from three scalars." @@ -10680,7 +10713,7 @@ msgstr "Tạo vector từ ba giá trị vô hướng." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Decomposes vector to three scalars." -msgstr "Tách vector thành ba giá trị vô hướng." +msgstr "Tách véc tơ thành ba giá trị vô hướng." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the cross product of two vectors." @@ -10692,7 +10725,7 @@ msgstr "Trả về khoảng cách giữa hai điểm." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the dot product of two vectors." -msgstr "Tính tích vô hướng của hai vector." +msgstr "Tính tích vô hướng của hai véc tơ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -10704,7 +10737,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the length of a vector." -msgstr "Tính chiều dài vector." +msgstr "Tính chiều dài của một véc tơ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Linear interpolation between two vectors." @@ -10716,27 +10749,27 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Calculates the normalize product of vector." -msgstr "Tính tích chuẩn hóa của vector." +msgstr "Tính tích chuẩn hóa của véc tơ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 - vector" -msgstr "1.0 - vector" +msgstr "1.0 - véc tơ" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "1.0 / vector" -msgstr "1.0 / vector" +msgstr "1.0 / véc tơ" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" "Returns the vector that points in the direction of reflection ( a : incident " "vector, b : normal vector )." msgstr "" -"Trả về vector chỉ hướng phản xạ ( a : vector tia tới, b : vector pháp " +"Trả về véc tơ chỉ hướng phản xạ ( a : vector tia tới, b : vector pháp " "tuyến )." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the vector that points in the direction of refraction." -msgstr "Trả về vector chỉ hướng khúc xạ." +msgstr "Trả về véc tơ chỉ theo hướng khúc xạ." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -11879,7 +11912,7 @@ msgstr "Tên nút" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" -msgstr "Tên cha mẹ của nút, nếu có sẵn" +msgstr "Tên của nút mẹ, nếu có sẵn" #: editor/rename_dialog.cpp msgid "Node type" @@ -11981,7 +12014,7 @@ msgstr "Tại kí tự %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" -msgstr "Đổi cha mẹ của nút" +msgstr "Đổi mẹ của nút" #: editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" @@ -11993,7 +12026,7 @@ msgstr "" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "Đổi nút cha" +msgstr "Đổi nút mẹ" #: editor/run_settings_dialog.cpp msgid "Run Mode:" @@ -12063,11 +12096,11 @@ msgstr "Thao tác này không thể áp dụng lên gốc của cây." #: editor/scene_tree_dock.cpp msgid "Move Node In Parent" -msgstr "Chuyển nút trong cha mẹ" +msgstr "Di chuyển nút trong nút mẹ" #: editor/scene_tree_dock.cpp msgid "Move Nodes In Parent" -msgstr "Di chuyển các nút trong cha mẹ" +msgstr "Di chuyển các nút trong nút mẹ" #: editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" @@ -12076,8 +12109,8 @@ msgstr "Nhân đôi các nút" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" -"Không thể đổi cha mẹ các nút trong cảnh kế thừa, thứ tự các nút không thể " -"thay đổi." +"Không thể đổi mẹ của các nút trong cảnh kế thừa, thứ tự các nút không thể " +"được thay đổi." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." @@ -12285,7 +12318,7 @@ msgstr "Đổi Kiểu" #: editor/scene_tree_dock.cpp msgid "Reparent to New Node" -msgstr "Reparent đến nút mới" +msgstr "Thay nút mẹ thành nút mới" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -12526,7 +12559,7 @@ msgstr "Tên Lớp không hợp lệ." #: editor/script_create_dialog.cpp msgid "Invalid inherited parent name or path." -msgstr "" +msgstr "Tên hoặc đường dẫn nút mẹ được kế thừa không hợp lệ." #: editor/script_create_dialog.cpp #, fuzzy @@ -12663,6 +12696,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "Lọc ô" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14026,9 +14064,10 @@ msgstr "Tên gói không hợp lệ:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"Cài đặt dự án chứa module không hợp lệ \"GodotPaymentV3\" ở mục \"android/" -"modules\" (đã thay đổi từ Godot 3.2.2).\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 0675b564d3..47b66ad06d 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -88,7 +88,7 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2022-02-12 21:43+0000\n" +"PO-Revision-Date: 2022-03-08 15:20+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" @@ -97,7 +97,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.11-dev\n" +"X-Generator: Weblate 4.12-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -683,7 +683,7 @@ msgstr "优化动画" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation" -msgstr "清空动画" +msgstr "清理动画" #: editor/animation_track_editor.cpp msgid "Pick the node that will be animated:" @@ -723,19 +723,19 @@ msgstr "移除无效帧" #: editor/animation_track_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "移除未分解的空轨道" +msgstr "移除无法解析的轨道和空轨道" #: editor/animation_track_editor.cpp msgid "Clean-up all animations" -msgstr "清除所有动画" +msgstr "清理所有动画" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation(s) (NO UNDO!)" -msgstr "清除动画(无法撤销!)" +msgstr "清理动画(无法撤销!)" #: editor/animation_track_editor.cpp msgid "Clean-Up" -msgstr "清空" +msgstr "清理" #: editor/animation_track_editor.cpp msgid "Scale Ratio:" @@ -1538,6 +1538,11 @@ msgstr "加载默认总线布局。" msgid "Create a new Bus Layout." msgstr "创建新的总线布局。" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "打开音频总线布局" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "名称无效。" @@ -2930,7 +2935,7 @@ msgstr "切换专注模式。" msgid "Add a new scene." msgstr "添加新场景。" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "场景" @@ -3290,14 +3295,12 @@ msgid "Update Continuously" msgstr "持续更新" #: editor/editor_node.cpp -#, fuzzy msgid "Update All Changes" -msgstr "当有更改时更新" +msgstr "更新所有修改" #: editor/editor_node.cpp -#, fuzzy msgid "Update Vital Changes" -msgstr "材质变更:" +msgstr "更新关键修改" #: editor/editor_node.cpp msgid "Hide Update Spinner" @@ -4050,6 +4053,9 @@ msgid "" "After renaming to an unknown extension, the file won't be shown in the " "editor anymore." msgstr "" +"编辑器无法识别该文件扩展名。\n" +"如果你仍要重命名,请使用操作系统的文件管理器。\n" +"在重命名为未知扩展名后,改文件不会再在编辑器中显示。" #: editor/filesystem_dock.cpp msgid "" @@ -5135,7 +5141,7 @@ msgstr "接下来(自动队列):" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Cross-Animation Blend Times" -msgstr "跨动画时间混合" +msgstr "跨动画混合时间" #: editor/plugins/animation_state_machine_editor.cpp msgid "Move Node" @@ -5638,6 +5644,10 @@ msgid "Bake Lightmaps" msgstr "烘焙光照贴图" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "选择光照贴图烘焙文件:" @@ -8094,7 +8104,13 @@ msgid "Cinematic Preview" msgstr "效果预览" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "使用 GLES2 渲染器时不可用。" #: editor/plugins/spatial_editor_plugin.cpp @@ -8982,6 +8998,11 @@ msgid "Select Another Theme Resource:" msgstr "选择其他主题资源:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "重命名资源" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "其他主题" @@ -9029,6 +9050,20 @@ msgstr "" "将此样式盒置顶为主样式。编辑其属性会更新该类型下其他所有样式盒的相同属性。" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "添加项目类型" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "设置变量类型" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "修改基础类型" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "显示默认" @@ -9045,8 +9080,19 @@ msgid "Override all default type items." msgstr "覆盖所有默认类型项目。" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "添加项目类型" +#, fuzzy +msgid "Base Type" +msgstr "修改基础类型" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9739,18 +9785,6 @@ msgid "Commit list size" msgstr "提交列表大小" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "10" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "20" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "30" - -#: editor/plugins/version_control_editor_plugin.cpp msgid "Branches" msgstr "分支" @@ -12415,6 +12449,11 @@ msgid "Stack Frames" msgstr "栈帧" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "筛选图块" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "性能分析器" @@ -12588,14 +12627,12 @@ msgid "Set Occluder Sphere Position" msgstr "设置遮挡球体位置" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Polygon Point Position" -msgstr "设置入口顶点位置" +msgstr "设置遮挡多边形顶点位置" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Set Occluder Hole Point Position" -msgstr "设置曲线的顶点位置" +msgstr "设置遮挡空洞顶点位置" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" @@ -13705,9 +13742,10 @@ msgstr "无效的包名称:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"“android/modules” 项目设置(变更于Godot 3.2.2)中包含了无效模组 " -"“GodotPaymentV3”。\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." @@ -13952,166 +13990,153 @@ msgstr "启动 HTTP 服务器时出错:" #: platform/osx/export/codesign.cpp msgid "Can't get filesystem access." -msgstr "" +msgstr "无法访问文件系统。" #: platform/osx/export/codesign.cpp msgid "Failed to get Info.plist hash." -msgstr "" +msgstr "获取 Info.plist 哈希失败。" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, no exe name." -msgstr "项目名称无效。" +msgstr "Info.plist 无效,没有可执行文件名称。" #: platform/osx/export/codesign.cpp msgid "Invalid Info.plist, no bundle id." -msgstr "" +msgstr "Info.plist 无效,没有捆绑包 ID。" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid Info.plist, can't load." -msgstr "无效的几何体,无法创建多边形。" +msgstr "Info.plist 无效,无法加载。" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to create \"%s\" subfolder." -msgstr "无法创建文件夹。" +msgstr "创建“%s”子文件夹失败。" #: platform/osx/export/codesign.cpp msgid "Failed to extract thin binary." -msgstr "" +msgstr "提取瘦二进制文件失败。" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid binary format." -msgstr "无效的基本路径。" +msgstr "二进制格式无效。" #: platform/osx/export/codesign.cpp msgid "Already signed!" -msgstr "" +msgstr "签名已存在!" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to process nested resources." -msgstr "加载资源失败。" +msgstr "处理嵌套资源失败。" #: platform/osx/export/codesign.cpp msgid "Failed to create _CodeSignature subfolder." -msgstr "" +msgstr "创建 _CodeSignature 子文件夹失败。" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Failed to get CodeResources hash." -msgstr "加载资源失败。" +msgstr "获取 CodeResources 哈希失败。" #: platform/osx/export/codesign.cpp platform/osx/export/export.cpp -#, fuzzy msgid "Invalid entitlements file." -msgstr "扩展名无效。" +msgstr "授权文件无效。" #: platform/osx/export/codesign.cpp -#, fuzzy msgid "Invalid executable file." -msgstr "扩展名无效。" +msgstr "可执行文件无效。" #: platform/osx/export/codesign.cpp msgid "Can't resize signature load command." -msgstr "" +msgstr "无法改变签名加载命令的大小。" #: platform/osx/export/codesign.cpp msgid "Failed to create fat binary." -msgstr "" +msgstr "无法创建胖二进制。" #: platform/osx/export/codesign.cpp msgid "Unknown bundle type." -msgstr "" +msgstr "未知捆绑包类型。" #: platform/osx/export/codesign.cpp msgid "Unknown object type." -msgstr "" +msgstr "未知对象类型。" #: platform/osx/export/export.cpp msgid "" "Note: The notarization process generally takes less than an hour. When the " "process is completed, you'll receive an email." -msgstr "" +msgstr "注意:公证过程通常少于一个小时。过程结束后,你会收到一封邮件。" #: platform/osx/export/export.cpp msgid "" "You can check progress manually by opening a Terminal and running the " "following command:" -msgstr "" +msgstr "你可以手动检查进度,请打开终端并运行以下命令:" #: platform/osx/export/export.cpp msgid "" "Run the following command to staple the notarization ticket to the exported " "application (optional):" -msgstr "" +msgstr "运行以下命令将公证票证装订到导出的应用中(可选):" #: platform/osx/export/export.cpp -#, fuzzy msgid "No identity found." -msgstr "没有图标。" +msgstr "没有找到身份。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Creating app bundle" -msgstr "正在创建缩略图" +msgstr "正在创建应用捆绑包" #: platform/osx/export/export.cpp -#, fuzzy msgid "Could not find template app to export:" -msgstr "" -"找不到导出模板 APK:\n" -"%s" +msgstr "无法找到导出的模板应用:" #: platform/osx/export/export.cpp msgid "" "Relative symlinks are not supported on this OS, the exported project might " "be broken!" -msgstr "" +msgstr "该操作系统上不支持相对符号链接,导出的项目可能损坏!" #: platform/osx/export/export.cpp msgid "" "Requested template binary '%s' not found. It might be missing from your " "template archive." -msgstr "" +msgstr "未找到请求的二进制模板“%s”。你的模板归档中可能缺失该文件。" #: platform/osx/export/export.cpp msgid "Making PKG" -msgstr "" +msgstr "正在制作 PKG" #: platform/osx/export/export.cpp msgid "" "Ad-hoc signed applications require the 'Disable Library Validation' " "entitlement to load dynamic libraries." -msgstr "" +msgstr "Ad-hoc 签名的应用需要“Disable Library Validation”授权才能加载动态库。" #: platform/osx/export/export.cpp msgid "Code signing bundle" -msgstr "" +msgstr "正在对捆绑包进行代码签名" #: platform/osx/export/export.cpp msgid "Making DMG" -msgstr "" +msgstr "正在制作 DMG" #: platform/osx/export/export.cpp msgid "Code signing DMG" -msgstr "" +msgstr "正在对 DMG 进行代码签名" #: platform/osx/export/export.cpp msgid "Making ZIP" -msgstr "" +msgstr "正在制作 ZIP" #: platform/osx/export/export.cpp msgid "" "Notarization requires the app to be archived first, select the DMG or ZIP " "export format instead." -msgstr "" +msgstr "公证要求该应用先进行归档,请选择 DMG 或 ZIP 导出格式。" #: platform/osx/export/export.cpp msgid "Sending archive for notarization" -msgstr "" +msgstr "正在发送归档进行公证" #: platform/osx/export/export.cpp msgid "Invalid bundle identifier:" @@ -14122,31 +14147,31 @@ msgid "" "Warning: Built-in \"codesign\" is selected in the Editor Settings. Code " "signing is limited to ad-hoc signature only." msgstr "" +"警告:编辑器设置里选中的是内置的“codesign”。代码签名仅限于 ad-hoc 签名。" #: platform/osx/export/export.cpp msgid "" "Warning: Xcode command line tools are not installed, using built-in " "\"codesign\". Code signing is limited to ad-hoc signature only." msgstr "" +"警告:未安装 Xcode 命令行工具,将使用内置的“codesign”。代码签名仅限于 ad-hoc " +"签名。" #: platform/osx/export/export.cpp msgid "Notarization: Notarization with an ad-hoc signature is not supported." -msgstr "" +msgstr "公证:不支持使用 Ad-hoc 签名进行公证。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Code signing is required for notarization." -msgstr "公证:需要代码签名。" +msgstr "公证:公证需要代码签名。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Hardened runtime is required for notarization." -msgstr "公证:需要加强的运行时环境。" +msgstr "公证:公证需要加固运行时环境。" #: platform/osx/export/export.cpp -#, fuzzy msgid "Notarization: Timestamp runtime is required for notarization." -msgstr "公证:需要加强的运行时环境。" +msgstr "公证:公证需要时间戳运行时环境。" #: platform/osx/export/export.cpp msgid "Notarization: Apple ID name not specified." @@ -14161,63 +14186,69 @@ msgid "" "Warning: Notarization is disabled. The exported project will be blocked by " "Gatekeeper if it's downloaded from an unknown source." msgstr "" +"警告:已禁用公证。如果从未知来源下载该导出后的项目,将被 Gatekeeper 阻止运" +"行。" #: platform/osx/export/export.cpp msgid "" "Code signing is disabled. The exported project will not run on Macs with " "enabled Gatekeeper and Apple Silicon powered Macs." msgstr "" +"已禁用代码签名。导出后的项目将无法在启用 Gatekeeper 的 Mac 和使用 Apple " +"Silicon 的 Mac 上运行。" #: platform/osx/export/export.cpp msgid "" "Hardened Runtime is not compatible with ad-hoc signature, and will be " "disabled!" -msgstr "" +msgstr "加固运行时环境与 Ad-hoc 签名不兼容,将被禁用!" #: platform/osx/export/export.cpp msgid "" "Timestamping is not compatible with ad-hoc signature, and will be disabled!" -msgstr "" +msgstr "时间戳运行时环境与 Ad-hoc 签名不兼容,将被禁用!" #: platform/osx/export/export.cpp msgid "" "Warning: Notarization is not supported from this OS. The exported project " "will be blocked by Gatekeeper if it's downloaded from an unknown source." msgstr "" +"警告:不支持从该操作系统进行公证。如果从未知来源下载该导出后的项目,将被 " +"Gatekeeper 阻止运行。" #: platform/osx/export/export.cpp msgid "" "Privacy: Microphone access is enabled, but usage description is not " "specified." -msgstr "" +msgstr "隐私:已启用麦克风访问,但未指定用途描述。" #: platform/osx/export/export.cpp msgid "" "Privacy: Camera access is enabled, but usage description is not specified." -msgstr "" +msgstr "隐私:已启用相机访问,但未指定用途描述。" #: platform/osx/export/export.cpp msgid "" "Privacy: Location information access is enabled, but usage description is " "not specified." -msgstr "" +msgstr "隐私:已启用位置信息访问,但未指定用途描述。" #: platform/osx/export/export.cpp msgid "" "Privacy: Address book access is enabled, but usage description is not " "specified." -msgstr "" +msgstr "隐私:已启用地址簿访问,但未指定用途描述。" #: platform/osx/export/export.cpp msgid "" "Privacy: Calendar access is enabled, but usage description is not specified." -msgstr "" +msgstr "隐私:已启用日历访问,但未指定用途描述。" #: platform/osx/export/export.cpp msgid "" "Privacy: Photo library access is enabled, but usage description is not " "specified." -msgstr "" +msgstr "隐私:已启用照片库访问,但未指定用途描述。" #: platform/uwp/export/export.cpp msgid "Invalid package short name." @@ -14276,21 +14307,20 @@ msgid "" "The rcedit tool must be configured in the Editor Settings (Export > Windows " "> Rcedit) to change the icon or app information data." msgstr "" +"必须在编辑器设置中配置 rcedit 工具(Export > Windows > Rcedit)才能修改图标或" +"应用信息数据。" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid icon path:" -msgstr "路径无效。" +msgstr "图标路径无效:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid file version:" -msgstr "扩展名无效。" +msgstr "文件版本无效:" #: platform/windows/export/export.cpp -#, fuzzy msgid "Invalid product version:" -msgstr "产品 GUID 无效。" +msgstr "产品版本无效:" #: scene/2d/animated_sprite.cpp msgid "" @@ -14967,14 +14997,13 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "该节点已废弃。请使用 AnimationTree 代替。" #: scene/gui/color_picker.cpp -#, fuzzy msgid "" "Color: #%s\n" "LMB: Apply color\n" "RMB: Remove preset" msgstr "" "颜色:#%s\n" -"鼠标左键:设置颜色\n" +"鼠标左键:应用颜色\n" "鼠标右键:移除预设" #: scene/gui/color_picker.cpp diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 3e58cca1e2..be7d27d9c9 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -1537,6 +1537,11 @@ msgstr "" msgid "Create a new Bus Layout." msgstr "" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "編輯器佈局" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "無效名稱。" @@ -2990,7 +2995,7 @@ msgstr "" msgid "Add a new scene." msgstr "新增軌迹" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "場景" @@ -5861,6 +5866,10 @@ msgid "Bake Lightmaps" msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp #, fuzzy msgid "Select lightmap bake file:" msgstr "選取Template檔案" @@ -8447,7 +8456,12 @@ msgid "Cinematic Preview" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -9400,6 +9414,11 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Theme Resource" +msgstr "資源" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Another Theme" msgstr "檔案" @@ -9452,6 +9471,20 @@ msgid "" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "更改動畫循環" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "更改動畫循環" + +#: editor/plugins/theme_editor_plugin.cpp #, fuzzy msgid "Show Default" msgstr "預設" @@ -9470,7 +9503,18 @@ msgid "Override all default type items." msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" +#, fuzzy +msgid "Base Type" +msgstr "更改動畫循環" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -10227,18 +10271,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "吻合:" @@ -12956,6 +12988,11 @@ msgid "Stack Frames" msgstr "" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "篩選檔案..." + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "" @@ -14331,6 +14368,9 @@ msgstr "無效名稱" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" #: platform/android/export/export_plugin.cpp diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index e58704257e..15a32eaec6 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -1486,6 +1486,11 @@ msgstr "載入預設匯流排配置。" msgid "Create a new Bus Layout." msgstr "建立新匯流排配置。" +#: editor/editor_audio_buses.cpp +#, fuzzy +msgid "Audio Bus Layout" +msgstr "開啟音訊匯流排配置" + #: editor/editor_autoload_settings.cpp msgid "Invalid name." msgstr "無效的名稱。" @@ -2885,7 +2890,7 @@ msgstr "切換/取消專注模式。" msgid "Add a new scene." msgstr "新增場景。" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/theme_editor_plugin.cpp msgid "Scene" msgstr "場景" @@ -5592,6 +5597,10 @@ msgid "Bake Lightmaps" msgstr "烘焙光照圖" #: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "LightMap Bake" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Select lightmap bake file:" msgstr "選擇光照圖烘焙檔案:" @@ -8054,7 +8063,13 @@ msgid "Cinematic Preview" msgstr "效果預覽" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Not available when using the GLES2 renderer." +msgid "(Not in GLES2)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "" +"Debug draw modes are only available when using the GLES3 renderer, not GLES2." msgstr "使用 GLES2 算繪引擎時無法使用。" #: editor/plugins/spatial_editor_plugin.cpp @@ -8943,6 +8958,11 @@ msgid "Select Another Theme Resource:" msgstr "選擇其他主題資源:" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Theme Resource" +msgstr "重新命名資源" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Another Theme" msgstr "其他主題" @@ -8993,6 +9013,20 @@ msgstr "" "釘選該樣式盒為主要樣式。編輯其屬性將更新所有其他同類別的樣式盒之相同屬性。" #: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item Type" +msgstr "新增項目類型" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Variation Base Type" +msgstr "設定變數型別" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Set Base Type" +msgstr "更改基礎型別" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Show Default" msgstr "顯示預設" @@ -9009,8 +9043,19 @@ msgid "Override all default type items." msgstr "複寫所有預設類別項目。" #: editor/plugins/theme_editor_plugin.cpp -msgid "Add Item Type" -msgstr "新增項目類型" +#, fuzzy +msgid "Base Type" +msgstr "更改基礎型別" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Select the variation base type from a list of available types." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "" +"A type associated with a built-in class cannot be marked as a variation of " +"another type." +msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme:" @@ -9718,18 +9763,6 @@ msgid "Commit list size" msgstr "" #: editor/plugins/version_control_editor_plugin.cpp -msgid "10" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "20" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp -msgid "30" -msgstr "" - -#: editor/plugins/version_control_editor_plugin.cpp #, fuzzy msgid "Branches" msgstr "符合條件:" @@ -12401,6 +12434,11 @@ msgid "Stack Frames" msgstr "堆疊框" #: editor/script_editor_debugger.cpp +#, fuzzy +msgid "Filter stack variables" +msgstr "篩選圖塊" + +#: editor/script_editor_debugger.cpp msgid "Profiler" msgstr "分析工具" @@ -13725,9 +13763,10 @@ msgstr "無效的套件名稱:" msgid "" "Invalid \"GodotPaymentV3\" module included in the \"android/modules\" " "project setting (changed in Godot 3.2.2).\n" +"Replace it with the first-party \"GodotGooglePlayBilling\" plugin.\n" +"Note that the singleton was also renamed from \"GodotPayments\" to " +"\"GodotGooglePlayBilling\"." msgstr "" -"「andoird/modules」專案設定中包含了無效的「GodotPaymentV3」模組(更改於 " -"Godot 3.2.2)。\n" #: platform/android/export/export_plugin.cpp msgid "\"Use Custom Build\" must be enabled to use the plugins." |