Browse Source

Merge pull request #45485 from akien-mga/3.2-cherrypicks

Cherry-picks for the 3.2 branch (future 3.2.4) - 18th batch
Rémi Verschelde 4 years ago
parent
commit
354ea90b5a
64 changed files with 1079 additions and 1417 deletions
  1. 1 0
      .gitignore
  2. 5 0
      core/bind/core_bind.cpp
  3. 1 0
      core/bind/core_bind.h
  4. 6 1
      core/ustring.cpp
  5. 16 7
      doc/classes/Array.xml
  6. 14 0
      doc/classes/Control.xml
  7. 2 1
      doc/classes/MultiplayerAPI.xml
  8. 2 1
      doc/classes/NetworkedMultiplayerPeer.xml
  9. 8 0
      doc/classes/OS.xml
  10. 2 1
      doc/classes/Particles.xml
  11. 2 1
      doc/classes/Particles2D.xml
  12. 1 1
      doc/classes/Resource.xml
  13. 1 0
      doc/classes/SceneTree.xml
  14. 1 0
      doc/classes/TileMap.xml
  15. 1 0
      doc/classes/VideoPlayer.xml
  16. 7 0
      editor/editor_node.cpp
  17. 25 2
      editor/editor_settings.cpp
  18. 3 3
      editor/editor_themes.cpp
  19. 15 0
      editor/filesystem_dock.cpp
  20. 12 4
      editor/plugins/asset_library_editor_plugin.cpp
  21. 4 0
      editor/plugins/skeleton_editor_plugin.cpp
  22. 2 0
      editor/plugins/spatial_editor_plugin.cpp
  23. 5 0
      editor/project_export.cpp
  24. 2 0
      editor/project_manager.cpp
  25. 7 24
      editor/scene_tree_dock.cpp
  26. 139 208
      editor/translations/bg.po
  27. 10 7
      editor/translations/cs.po
  28. 84 74
      editor/translations/da.po
  29. 36 42
      editor/translations/de.po
  30. 39 45
      editor/translations/es.po
  31. 29 31
      editor/translations/et.po
  32. 32 46
      editor/translations/fi.po
  33. 33 39
      editor/translations/fr.po
  34. 6 6
      editor/translations/hu.po
  35. 70 107
      editor/translations/it.po
  36. 15 13
      editor/translations/ja.po
  37. 12 12
      editor/translations/mk.po
  38. 23 26
      editor/translations/pl.po
  39. 120 132
      editor/translations/pt.po
  40. 33 29
      editor/translations/pt_BR.po
  41. 33 46
      editor/translations/ru.po
  42. 39 52
      editor/translations/tr.po
  43. 33 43
      editor/translations/uk.po
  44. 7 8
      editor/translations/zh_CN.po
  45. 18 4
      misc/dist/osx_template.app/Contents/Info.plist
  46. 6 0
      misc/hooks/winmessage.ps1
  47. 11 4
      modules/mbedtls/SCsub
  48. 1 1
      modules/mono/mono_gd/gd_mono_marshal.h
  49. 5 10
      modules/mono/mono_gd/support/android_support.h
  50. 24 0
      platform/iphone/godot_app_delegate.h
  51. 3 3
      platform/iphone/godot_app_delegate.m
  52. 27 5
      platform/iphone/plugin/godot_plugin_config.h
  53. 0 1
      scene/3d/mesh_instance.cpp
  54. 8 0
      scene/3d/physics_body.cpp
  55. 3 1
      scene/gui/control.cpp
  56. 7 0
      scene/gui/line_edit.cpp
  57. 4 2
      scene/gui/range.cpp
  58. 7 7
      scene/resources/default_theme/default_theme.cpp
  59. 0 2
      scene/resources/default_theme/xpmfix.sh
  60. 2 2
      scene/resources/style_box.cpp
  61. 1 1
      scene/resources/style_box.h
  62. 12 7
      servers/audio_server.cpp
  63. 2 2
      servers/audio_server.h
  64. 0 353
      thirdparty/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp

+ 1 - 0
.gitignore

@@ -364,3 +364,4 @@ compile_commands.json
 
 # https://clangd.llvm.org/ cache folder
 .clangd/
+.cache/

+ 5 - 0
core/bind/core_bind.cpp

@@ -647,6 +647,10 @@ int _OS::get_power_percent_left() {
 	return OS::get_singleton()->get_power_percent_left();
 }
 
+Thread::ID _OS::get_thread_caller_id() const {
+	return Thread::get_caller_id();
+};
+
 bool _OS::has_feature(const String &p_feature) const {
 
 	return OS::get_singleton()->has_feature(p_feature);
@@ -1416,6 +1420,7 @@ void _OS::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("alert", "text", "title"), &_OS::alert, DEFVAL("Alert!"));
 
 	ClassDB::bind_method(D_METHOD("set_thread_name", "name"), &_OS::set_thread_name);
+	ClassDB::bind_method(D_METHOD("get_thread_caller_id"), &_OS::get_thread_caller_id);
 
 	ClassDB::bind_method(D_METHOD("set_use_vsync", "enable"), &_OS::set_use_vsync);
 	ClassDB::bind_method(D_METHOD("is_vsync_enabled"), &_OS::is_vsync_enabled);

+ 1 - 0
core/bind/core_bind.h

@@ -360,6 +360,7 @@ public:
 	bool is_ok_left_and_cancel_right() const;
 
 	Error set_thread_name(const String &p_name);
+	Thread::ID get_thread_caller_id() const;
 
 	void set_use_vsync(bool p_enable);
 	bool is_vsync_enabled() const;

+ 6 - 1
core/ustring.cpp

@@ -2709,10 +2709,15 @@ int String::rfindn(const String &p_str, int p_from) const {
 
 bool String::ends_with(const String &p_string) const {
 
+	int l = p_string.length();
+	if (l == 0) {
+		return true;
+	}
+
 	int pos = find_last(p_string);
 	if (pos == -1)
 		return false;
-	return pos + p_string.length() == length();
+	return pos + l == length();
 }
 
 bool String::begins_with(const String &p_string) const {

+ 16 - 7
doc/classes/Array.xml

@@ -181,7 +181,9 @@
 			<argument index="0" name="value" type="Variant">
 			</argument>
 			<description>
-				Removes the first occurrence of a value from the array.
+				Removes the first occurrence of a value from the array. To remove an element by index, use [method remove] instead.
+				[b]Note:[/b] This method acts in-place and doesn't return a value.
+				[b]Note:[/b] On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
 			</description>
 		</method>
 		<method name="find">
@@ -237,7 +239,8 @@
 			<return type="int">
 			</return>
 			<description>
-				Returns a hashed integer value representing the array contents.
+				Returns a hashed integer value representing the array and its contents.
+				[b]Note:[/b] Arrays with equal contents can still produce different hashes. Only the exact same arrays will produce the same hashed integer value.
 			</description>
 		</method>
 		<method name="insert">
@@ -247,6 +250,8 @@
 			</argument>
 			<description>
 				Inserts a new element at a given position in the array. The position must be valid, or at the end of the array ([code]pos == size()[/code]).
+				[b]Note:[/b] This method acts in-place and doesn't return a value.
+				[b]Note:[/b] On large arrays, this method will be slower if the inserted element is close to the beginning of the array (index 0). This is because all elements placed after the newly inserted element have to be reindexed.
 			</description>
 		</method>
 		<method name="invert">
@@ -272,35 +277,39 @@
 			<return type="Variant">
 			</return>
 			<description>
-				Removes and returns the last element of the array. Returns [code]null[/code] if the array is empty, without printing an error message.
+				Removes and returns the last element of the array. Returns [code]null[/code] if the array is empty, without printing an error message. See also [method pop_front].
 			</description>
 		</method>
 		<method name="pop_front">
 			<return type="Variant">
 			</return>
 			<description>
-				Removes and returns the first element of the array. Returns [code]null[/code] if the array is empty, without printing an error message.
+				Removes and returns the first element of the array. Returns [code]null[/code] if the array is empty, without printing an error message. See also [method pop_back].
+				[b]Note:[/b] On large arrays, this method is much slower than [method pop_back] as it will reindex all the array's elements every time it's called. The larger the array, the slower [method pop_front] will be.
 			</description>
 		</method>
 		<method name="push_back">
 			<argument index="0" name="value" type="Variant">
 			</argument>
 			<description>
-				Appends an element at the end of the array.
+				Appends an element at the end of the array. See also [method push_front].
 			</description>
 		</method>
 		<method name="push_front">
 			<argument index="0" name="value" type="Variant">
 			</argument>
 			<description>
-				Adds an element at the beginning of the array.
+				Adds an element at the beginning of the array. See also [method push_back].
+				[b]Note:[/b] On large arrays, this method is much slower than [method push_back] as it will reindex all the array's elements every time it's called. The larger the array, the slower [method push_front] will be.
 			</description>
 		</method>
 		<method name="remove">
 			<argument index="0" name="position" type="int">
 			</argument>
 			<description>
-				Removes an element from the array by index. If the index does not exist in the array, nothing happens.
+				Removes an element from the array by index. If the index does not exist in the array, nothing happens. To remove an element by searching for its value, use [method erase] instead.
+				[b]Note:[/b] This method acts in-place and doesn't return a value.
+				[b]Note:[/b] On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
 			</description>
 		</method>
 		<method name="resize">

+ 14 - 0
doc/classes/Control.xml

@@ -215,6 +215,20 @@
 				[/codeblock]
 			</description>
 		</method>
+		<method name="find_next_valid_focus" qualifiers="const">
+			<return type="Control">
+			</return>
+			<description>
+				Finds the next (below in the tree) [Control] that can receive the focus.
+			</description>
+		</method>
+		<method name="find_prev_valid_focus" qualifiers="const">
+			<return type="Control">
+			</return>
+			<description>
+				Finds the previous (above in the tree) [Control] that can receive the focus.
+			</description>
+		</method>
 		<method name="force_drag">
 			<return type="void">
 			</return>

+ 2 - 1
doc/classes/MultiplayerAPI.xml

@@ -4,9 +4,10 @@
 		High-level multiplayer API.
 	</brief_description>
 	<description>
-		This class implements most of the logic behind the high-level multiplayer API.
+		This class implements most of the logic behind the high-level multiplayer API. See also [NetworkedMultiplayerPeer].
 		By default, [SceneTree] has a reference to this class that is used to provide multiplayer capabilities (i.e. RPC/RSET) across the whole scene.
 		It is possible to override the MultiplayerAPI instance used by specific Nodes by setting the [member Node.custom_multiplayer] property, effectively allowing to run both client and server in the same scene.
+		[b]Note:[/b] The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
 	</description>
 	<tutorials>
 	</tutorials>

+ 2 - 1
doc/classes/NetworkedMultiplayerPeer.xml

@@ -4,7 +4,8 @@
 		A high-level network interface to simplify multiplayer interactions.
 	</brief_description>
 	<description>
-		Manages the connection to network peers. Assigns unique IDs to each client connected to the server.
+		Manages the connection to network peers. Assigns unique IDs to each client connected to the server. See also [MultiplayerAPI].
+		[b]Note:[/b] The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
 	</description>
 	<tutorials>
 		<link title="High-level multiplayer">https://docs.godotengine.org/en/3.2/tutorials/networking/high_level_multiplayer.html</link>

+ 8 - 0
doc/classes/OS.xml

@@ -486,6 +486,14 @@
 				[b]Note:[/b] This method is implemented on Windows.
 			</description>
 		</method>
+		<method name="get_thread_caller_id" qualifiers="const">
+			<return type="int">
+			</return>
+			<description>
+				Returns the ID of the current thread. This can be used in logs to ease debugging of multi-threaded applications.
+				[b]Note:[/b] Thread IDs are not deterministic and may be reused across application restarts.
+			</description>
+		</method>
 		<method name="get_ticks_msec" qualifiers="const">
 			<return type="int">
 			</return>

+ 2 - 1
doc/classes/Particles.xml

@@ -106,7 +106,8 @@
 			Speed scaling ratio. A value of [code]0[/code] can be used to pause the particles.
 		</member>
 		<member name="visibility_aabb" type="AABB" setter="set_visibility_aabb" getter="get_visibility_aabb" default="AABB( -4, -4, -4, 8, 8, 8 )">
-			The [AABB] that determines the area of the world part of which needs to be visible on screen for the particle system to be active.
+			The [AABB] that determines the node's region which needs to be visible on screen for the particle system to be active.
+			Grow the box if particles suddenly appear/disappear when the node enters/exits the screen. The [AABB] can be grown via code or with the [b]Particles → Generate AABB[/b] editor tool.
 			[b]Note:[/b] If the [ParticlesMaterial] in use is configured to cast shadows, you may want to enlarge this AABB to ensure the shadow is updated when particles are off-screen.
 		</member>
 	</members>

+ 2 - 1
doc/classes/Particles2D.xml

@@ -78,7 +78,8 @@
 			Particle texture. If [code]null[/code], particles will be squares.
 		</member>
 		<member name="visibility_rect" type="Rect2" setter="set_visibility_rect" getter="get_visibility_rect" default="Rect2( -100, -100, 200, 200 )">
-			Editor visibility helper.
+			The [Rect2] that determines the node's region which needs to be visible on screen for the particle system to be active.
+			Grow the rect if particles suddenly appear/disappear when the node enters/exits the screen. The [Rect2] can be grown via code or with the [b]Particles → Generate Visibility Rect[/b] editor tool.
 		</member>
 	</members>
 	<constants>

+ 1 - 1
doc/classes/Resource.xml

@@ -79,7 +79,7 @@
 			If [code]true[/code], the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.
 		</member>
 		<member name="resource_name" type="String" setter="set_name" getter="get_name" default="&quot;&quot;">
-			The name of the resource. This is an optional identifier.
+			The name of the resource. This is an optional identifier. If [member resource_name] is not empty, its value will be displayed to represent the current resource in the editor inspector. For built-in scripts, the [member resource_name] will be displayed as the tab name in the script editor.
 		</member>
 		<member name="resource_path" type="String" setter="set_path" getter="get_path" default="&quot;&quot;">
 			The path to the resource. In case it has its own file, it will return its filepath. If it's tied to the scene, it will return the scene's path, followed by the resource's index.

+ 1 - 0
doc/classes/SceneTree.xml

@@ -77,6 +77,7 @@
 				    yield(get_tree().create_timer(1.0), "timeout")
 				    print("end")
 				[/codeblock]
+				The timer will be automatically freed after its time elapses.
 			</description>
 		</method>
 		<method name="get_frame" qualifiers="const">

+ 1 - 0
doc/classes/TileMap.xml

@@ -5,6 +5,7 @@
 	</brief_description>
 	<description>
 		Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a list of tiles (textures plus optional collision, navigation, and/or occluder shapes) which are used to create grid-based maps.
+		When doing physics queries against the tilemap, the cell coordinates are encoded as [code]metadata[/code] for each detected collision shape returned by methods such as [method Physics2DDirectSpaceState.intersect_shape], [method Physics2DDirectBodyState.get_contact_collider_shape_metadata], etc.
 	</description>
 	<tutorials>
 		<link title="Using Tilemaps">https://docs.godotengine.org/en/3.2/tutorials/2d/using_tilemaps.html</link>

+ 1 - 0
doc/classes/VideoPlayer.xml

@@ -7,6 +7,7 @@
 		Control node for playing video streams using [VideoStream] resources.
 		Supported video formats are [url=https://www.webmproject.org/]WebM[/url] ([code].webm[/code], [VideoStreamWebm]), [url=https://www.theora.org/]Ogg Theora[/url] ([code].ogv[/code], [VideoStreamTheora]), and any format exposed via a GDNative plugin using [VideoStreamGDNative].
 		[b]Note:[/b] Due to a bug, VideoPlayer does not support localization remapping yet.
+		[b]Warning:[/b] On HTML5, video playback [i]will[/i] perform poorly due to missing architecture-specific assembly optimizations, especially for VP8/VP9.
 	</description>
 	<tutorials>
 	</tutorials>

+ 7 - 0
editor/editor_node.cpp

@@ -2258,6 +2258,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
 
 			if (!p_confirmed) {
 				tab_closing = p_option == FILE_CLOSE ? editor_data.get_edited_scene() : _next_unsaved_scene(false);
+				_scene_tab_changed(tab_closing);
 
 				if (unsaved_cache || p_option == FILE_CLOSE_ALL_AND_QUIT || p_option == FILE_CLOSE_ALL_AND_RUN_PROJECT_MANAGER) {
 					String scene_filename = editor_data.get_edited_scene_root(tab_closing)->get_filename();
@@ -2902,6 +2903,10 @@ void EditorNode::_discard_changes(const String &p_str) {
 			_update_scene_tabs();
 
 			if (current_option == FILE_CLOSE_ALL_AND_QUIT || current_option == FILE_CLOSE_ALL_AND_RUN_PROJECT_MANAGER) {
+				// If restore tabs is enabled, reopen the scene that has just been closed, so it's remembered properly.
+				if (bool(EDITOR_GET("interface/scene_tabs/restore_scenes_on_load"))) {
+					_menu_option_confirm(FILE_OPEN_PREV, true);
+				}
 				if (_next_unsaved_scene(false) == -1) {
 					current_option = current_option == FILE_CLOSE_ALL_AND_QUIT ? FILE_QUIT : RUN_PROJECT_MANAGER;
 					_discard_changes();
@@ -5761,6 +5766,8 @@ EditorNode::EditorNode() {
 		switch (display_scale) {
 			case 0: {
 				// Try applying a suitable display scale automatically.
+				// The code below is adapted in `editor/editor_settings.cpp` and `editor/project_manager.cpp`.
+				// Make sure to update those when modifying the code below.
 #ifdef OSX_ENABLED
 				editor_set_scale(OS::get_singleton()->get_screen_max_scale());
 #else

+ 25 - 2
editor/editor_settings.cpp

@@ -317,7 +317,26 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
 
 	// Editor
 	_initial_set("interface/editor/display_scale", 0);
-	hints["interface/editor/display_scale"] = PropertyInfo(Variant::INT, "interface/editor/display_scale", PROPERTY_HINT_ENUM, "Auto,75%,100%,125%,150%,175%,200%,Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
+	// Display what the Auto display scale setting effectively corresponds to.
+	// The code below is adapted in `editor/editor_node.cpp` and `editor/project_manager.cpp`.
+	// Make sure to update those when modifying the code below.
+#ifdef OSX_ENABLED
+	float scale = OS::get_singleton()->get_screen_max_scale();
+#else
+	const int screen = OS::get_singleton()->get_current_screen();
+	float scale;
+	if (OS::get_singleton()->get_screen_dpi(screen) >= 192 && OS::get_singleton()->get_screen_size(screen).y >= 1400) {
+		// hiDPI display.
+		scale = 2.0;
+	} else if (OS::get_singleton()->get_screen_size(screen).y <= 800) {
+		// Small loDPI display. Use a smaller display scale so that editor elements fit more easily.
+		// Icons won't look great, but this is better than having editor elements overflow from its window.
+		scale = 0.75;
+	} else {
+		scale = 1.0;
+	}
+#endif
+	hints["interface/editor/display_scale"] = PropertyInfo(Variant::INT, "interface/editor/display_scale", PROPERTY_HINT_ENUM, vformat("Auto (%d%%),75%%,100%%,125%%,150%%,175%%,200%%,Custom", Math::round(scale * 100)), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
 	_initial_set("interface/editor/custom_display_scale", 1.0f);
 	hints["interface/editor/custom_display_scale"] = PropertyInfo(Variant::REAL, "interface/editor/custom_display_scale", PROPERTY_HINT_RANGE, "0.5,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
 	_initial_set("interface/editor/main_font_size", 14);
@@ -326,7 +345,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
 	hints["interface/editor/code_font_size"] = PropertyInfo(Variant::INT, "interface/editor/code_font_size", PROPERTY_HINT_RANGE, "8,48,1", PROPERTY_USAGE_DEFAULT);
 	_initial_set("interface/editor/font_antialiased", true);
 	_initial_set("interface/editor/font_hinting", 0);
-	hints["interface/editor/font_hinting"] = PropertyInfo(Variant::INT, "interface/editor/font_hinting", PROPERTY_HINT_ENUM, "Auto,None,Light,Normal", PROPERTY_USAGE_DEFAULT);
+#ifdef OSX_ENABLED
+	hints["interface/editor/font_hinting"] = PropertyInfo(Variant::INT, "interface/editor/font_hinting", PROPERTY_HINT_ENUM, "Auto (None),None,Light,Normal", PROPERTY_USAGE_DEFAULT);
+#else
+	hints["interface/editor/font_hinting"] = PropertyInfo(Variant::INT, "interface/editor/font_hinting", PROPERTY_HINT_ENUM, "Auto (Light),None,Light,Normal", PROPERTY_USAGE_DEFAULT);
+#endif
 	_initial_set("interface/editor/main_font", "");
 	hints["interface/editor/main_font"] = PropertyInfo(Variant::STRING, "interface/editor/main_font", PROPERTY_HINT_GLOBAL_FILE, "*.ttf,*.otf", PROPERTY_USAGE_DEFAULT);
 	_initial_set("interface/editor/main_font_bold", "");

+ 3 - 3
editor/editor_themes.cpp

@@ -40,16 +40,16 @@
 #include "modules/svg/image_loader_svg.h"
 #endif
 
-static Ref<StyleBoxTexture> make_stylebox(Ref<Texture> p_texture, float p_left, float p_top, float p_right, float p_botton, float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_botton = -1, bool p_draw_center = true) {
+static Ref<StyleBoxTexture> make_stylebox(Ref<Texture> p_texture, float p_left, float p_top, float p_right, float p_bottom, float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_bottom = -1, bool p_draw_center = true) {
 	Ref<StyleBoxTexture> style(memnew(StyleBoxTexture));
 	style->set_texture(p_texture);
 	style->set_margin_size(MARGIN_LEFT, p_left * EDSCALE);
 	style->set_margin_size(MARGIN_RIGHT, p_right * EDSCALE);
-	style->set_margin_size(MARGIN_BOTTOM, p_botton * EDSCALE);
+	style->set_margin_size(MARGIN_BOTTOM, p_bottom * EDSCALE);
 	style->set_margin_size(MARGIN_TOP, p_top * EDSCALE);
 	style->set_default_margin(MARGIN_LEFT, p_margin_left * EDSCALE);
 	style->set_default_margin(MARGIN_RIGHT, p_margin_right * EDSCALE);
-	style->set_default_margin(MARGIN_BOTTOM, p_margin_botton * EDSCALE);
+	style->set_default_margin(MARGIN_BOTTOM, p_margin_bottom * EDSCALE);
 	style->set_default_margin(MARGIN_TOP, p_margin_top * EDSCALE);
 	style->set_draw_center(p_draw_center);
 	return style;

+ 15 - 0
editor/filesystem_dock.cpp

@@ -74,6 +74,9 @@ bool FileSystemDock::_create_tree(TreeItem *p_parent, EditorFileSystemDirectory
 	subdirectory_item->set_metadata(0, lpath);
 	if (!p_select_in_favorites && (path == lpath || ((display_mode == DISPLAY_MODE_SPLIT) && path.get_base_dir() == lpath))) {
 		subdirectory_item->select(0);
+		// Keep select an item when re-created a tree
+		// To prevent crashing when nothing is selected.
+		subdirectory_item->set_as_cursor(0);
 	}
 
 	if (p_unfold_path && path.begins_with(lpath) && path != lpath) {
@@ -1290,10 +1293,16 @@ void FileSystemDock::_make_scene_confirm() {
 
 void FileSystemDock::_file_removed(String p_file) {
 	emit_signal("file_removed", p_file);
+
+	path = "res://";
+	current_path->set_text(path);
 }
 
 void FileSystemDock::_folder_removed(String p_folder) {
 	emit_signal("folder_removed", p_folder);
+
+	path = "res://";
+	current_path->set_text(path);
 }
 
 void FileSystemDock::_rename_operation_confirm() {
@@ -1348,6 +1357,9 @@ void FileSystemDock::_rename_operation_confirm() {
 
 	print_verbose("FileSystem: saving moved scenes.");
 	_save_scenes_after_move(file_renames);
+
+	path = new_path;
+	current_path->set_text(path);
 }
 
 void FileSystemDock::_duplicate_operation_confirm() {
@@ -1456,6 +1468,9 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path, bool overw
 
 		print_verbose("FileSystem: saving moved scenes.");
 		_save_scenes_after_move(file_renames);
+
+		path = "res://";
+		current_path->set_text(path);
 	}
 }
 

+ 12 - 4
editor/plugins/asset_library_editor_plugin.cpp

@@ -1423,10 +1423,18 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
 	search_hb2->add_child(memnew(Label(TTR("Site:") + " ")));
 	repository = memnew(OptionButton);
 
-	repository->add_item("godotengine.org");
-	repository->set_item_metadata(0, "https://godotengine.org/asset-library/api");
-	repository->add_item("localhost");
-	repository->set_item_metadata(1, "http://127.0.0.1/asset-library/api");
+	{
+		Dictionary default_urls;
+		default_urls["godotengine.org"] = "https://godotengine.org/asset-library/api";
+		default_urls["localhost"] = "http://127.0.0.1/asset-library/api";
+		Dictionary available_urls = _EDITOR_DEF("asset_library/available_urls", default_urls, true);
+		Array keys = available_urls.keys();
+		for (int i = 0; i < available_urls.size(); i++) {
+			String key = keys[i];
+			repository->add_item(key);
+			repository->set_item_metadata(i, available_urls[key]);
+		}
+	}
 
 	repository->connect("item_selected", this, "_repository_changed");
 

+ 4 - 0
editor/plugins/skeleton_editor_plugin.cpp

@@ -113,6 +113,10 @@ PhysicalBone *SkeletonEditor::create_physical_bone(int bone_id, int bone_child_i
 	CollisionShape *bone_shape = memnew(CollisionShape);
 	bone_shape->set_shape(bone_shape_capsule);
 
+	Transform capsule_transform;
+	capsule_transform.basis = Basis(Vector3(1, 0, 0), Vector3(0, 0, 1), Vector3(0, -1, 0));
+	bone_shape->set_transform(capsule_transform);
+
 	Transform body_transform;
 	body_transform.origin = Vector3(0, 0, -half_height);
 

+ 2 - 0
editor/plugins/spatial_editor_plugin.cpp

@@ -3162,6 +3162,8 @@ void SpatialEditorViewport::_toggle_camera_preview(bool p_activate) {
 
 void SpatialEditorViewport::_toggle_cinema_preview(bool p_activate) {
 	previewing_cinema = p_activate;
+	rotation_control->set_visible(!p_activate);
+
 	if (!previewing_cinema) {
 		if (previewing != NULL)
 			previewing->disconnect("tree_exited", this, "_preview_exited_scene");

+ 5 - 0
editor/project_export.cpp

@@ -767,6 +767,11 @@ void ProjectExportDialog::_refresh_parent_checks(TreeItem *p_item) {
 }
 
 void ProjectExportDialog::_export_pck_zip() {
+	Ref<EditorExportPreset> current = get_current_preset();
+	ERR_FAIL_COND(current.is_null());
+
+	String dir = current->get_export_path().get_base_dir();
+	export_pck_zip->set_current_dir(dir);
 
 	export_pck_zip->popup_centered_ratio();
 }

+ 2 - 0
editor/project_manager.cpp

@@ -2436,6 +2436,8 @@ ProjectManager::ProjectManager() {
 		switch (display_scale) {
 			case 0: {
 				// Try applying a suitable display scale automatically.
+				// The code below is adapted in `editor/editor_settings.cpp` and `editor/editor_node.cpp`.
+				// Make sure to update those when modifying the code below.
 #ifdef OSX_ENABLED
 				editor_set_scale(OS::get_singleton()->get_screen_max_scale());
 #else

+ 7 - 24
editor/scene_tree_dock.cpp

@@ -57,10 +57,7 @@ void SceneTreeDock::_nodes_drag_begin() {
 }
 
 void SceneTreeDock::_quick_open() {
-	Vector<String> files = quick_open->get_selected_files();
-	for (int i = 0; i < files.size(); i++) {
-		instance(files[i]);
-	}
+	instance_scenes(quick_open->get_selected_files(), scene_tree->get_selected());
 }
 
 void SceneTreeDock::_input(Ref<InputEvent> p_event) {
@@ -121,26 +118,9 @@ void SceneTreeDock::_unhandled_key_input(Ref<InputEvent> p_event) {
 }
 
 void SceneTreeDock::instance(const String &p_file) {
-
-	Node *parent = scene_tree->get_selected();
-
-	if (!parent) {
-		parent = edited_scene;
-	};
-
-	if (!edited_scene) {
-
-		current_option = -1;
-		accept->set_text(TTR("No parent to instance a child at."));
-		accept->popup_centered_minsize();
-		return;
-	};
-
-	ERR_FAIL_COND(!parent);
-
 	Vector<String> scenes;
 	scenes.push_back(p_file);
-	_perform_instance_scenes(scenes, parent, -1);
+	instance_scenes(scenes, scene_tree->get_selected());
 }
 
 void SceneTreeDock::instance_scenes(const Vector<String> &p_files, Node *p_parent) {
@@ -152,8 +132,11 @@ void SceneTreeDock::instance_scenes(const Vector<String> &p_files, Node *p_paren
 	}
 
 	if (!parent || !edited_scene) {
-
-		accept->set_text(TTR("No parent to instance the scenes at."));
+		if (p_files.size() == 1) {
+			accept->set_text(TTR("No parent to instance a child at."));
+		} else {
+			accept->set_text(TTR("No parent to instance the scenes at."));
+		}
 		accept->popup_centered_minsize();
 		return;
 	};

File diff suppressed because it is too large
+ 139 - 208
editor/translations/bg.po


+ 10 - 7
editor/translations/cs.po

@@ -23,13 +23,13 @@
 # Daniel Kříž <[email protected]>, 2020.
 # VladimirBlazek <[email protected]>, 2020.
 # kubajz22 <[email protected]>, 2020.
-# Václav Blažej <[email protected]>, 2020.
+# Václav Blažej <[email protected]>, 2020, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-01-12 13:32+0000\n"
-"Last-Translator: Vojtěch Šamla <auzkok@seznam.cz>\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
+"Last-Translator: Václav Blažej <vaclavblazej@seznam.cz>\n"
 "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
 "cs/>\n"
 "Language: cs\n"
@@ -37,7 +37,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2394,7 +2394,7 @@ msgstr "Neexistuje žádná scéna pro spuštění."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Uložit scénu před spuštěním..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5173,26 +5173,29 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Nebylo možné určit velikost světelné mapy. Maximální velikost je příliš malá?"
 
 #: 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 ""
+"Některé sítě jsou neplatné. Ujistěte se, že hodnoty kanálu UV2 jsou ve "
+"čtvercové oblasti [0.0, 1.0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Godot byl sestaven bez podpory ray tracingu, světelné mapy nelze zapéct."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Zapéct lightmapy"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Vybrat soubor šablony"
+msgstr "Vybrat soubor pro zapečení světelných map:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp

+ 84 - 74
editor/translations/da.po

@@ -16,12 +16,13 @@
 # Kristoffer Andersen <[email protected]>, 2019.
 # Joe Osborne <[email protected]>, 2020.
 # Autowinto <[email protected]>, 2020.
-# Mikkel Mouridsen <[email protected]>, 2020.
+# Mikkel Mouridsen <[email protected]>, 2020, 2021.
+# snakatk <[email protected]>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-06-22 06:40+0000\n"
+"PO-Revision-Date: 2021-01-26 16:32+0000\n"
 "Last-Translator: Mikkel Mouridsen <[email protected]>\n"
 "Language-Team: Danish <https://hosted.weblate.org/projects/godot-engine/"
 "godot/da/>\n"
@@ -30,7 +31,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -334,7 +335,7 @@ msgstr "Vikle Løkke Interpolation"
 #: editor/animation_track_editor.cpp
 #: editor/plugins/canvas_item_editor_plugin.cpp
 msgid "Insert Key"
-msgstr "Indsæt nøgle"
+msgstr "Indsæt Nøgle"
 
 #: editor/animation_track_editor.cpp
 msgid "Duplicate Key(s)"
@@ -762,8 +763,9 @@ msgid "Standard"
 msgstr "Standard"
 
 #: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
 msgid "Toggle Scripts Panel"
-msgstr ""
+msgstr "Slå til/fra Scripts Panel"
 
 #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp
 #: editor/plugins/texture_region_editor_plugin.cpp
@@ -825,7 +827,7 @@ msgstr "Fra signal:"
 
 #: editor/connections_dialog.cpp
 msgid "Scene does not contain any script."
-msgstr ""
+msgstr "Scenen indeholder ikke noget script."
 
 #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
 #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -867,22 +869,23 @@ msgid "Deferred"
 msgstr "Udskudt"
 
 #: editor/connections_dialog.cpp
+#, fuzzy
 msgid ""
 "Defers the signal, storing it in a queue and only firing it at idle time."
-msgstr ""
+msgstr "Udskyder signalet, gemmer det i en kø og anvender det ved spildtid."
 
 #: editor/connections_dialog.cpp
 msgid "Oneshot"
 msgstr "OneShot"
 
 #: editor/connections_dialog.cpp
+#, fuzzy
 msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Frakobler signalet efter dets første aktivering."
 
 #: editor/connections_dialog.cpp
-#, fuzzy
 msgid "Cannot connect signal"
-msgstr "Forbind Signal: "
+msgstr "Kan ikke forbinde signal"
 
 #: editor/connections_dialog.cpp editor/dependency_editor.cpp
 #: editor/export_template_manager.cpp editor/groups_editor.cpp
@@ -1429,12 +1432,14 @@ msgid "Open Audio Bus Layout"
 msgstr "Åben Audio Bus Layout"
 
 #: editor/editor_audio_buses.cpp
+#, fuzzy
 msgid "There is no '%s' file."
-msgstr ""
+msgstr "Der er ingen '%s' fil."
 
 #: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
 msgid "Layout"
-msgstr ""
+msgstr "Layout"
 
 #: editor/editor_audio_buses.cpp
 msgid "Invalid file, not an audio bus layout."
@@ -1513,8 +1518,9 @@ msgstr ""
 "Ugyldigt navn. Må ikke være i konflikt med eksisterende global constant navn."
 
 #: editor/editor_autoload_settings.cpp
+#, fuzzy
 msgid "Keyword cannot be used as an autoload name."
-msgstr ""
+msgstr "Nøgleord kan ikke bruges som autoload navn."
 
 #: editor/editor_autoload_settings.cpp
 msgid "Autoload '%s' already exists!"
@@ -1545,8 +1551,9 @@ msgid "Rearrange Autoloads"
 msgstr "Flytte om på Autoloads"
 
 #: editor/editor_autoload_settings.cpp
+#, fuzzy
 msgid "Can't add autoload:"
-msgstr ""
+msgstr "Kan ikke tilføje autoload:"
 
 #: editor/editor_autoload_settings.cpp
 msgid "Add AutoLoad"
@@ -1633,8 +1640,9 @@ msgid "Storing File:"
 msgstr "Lagrings Fil:"
 
 #: editor/editor_export.cpp
+#, fuzzy
 msgid "No export template found at the expected path:"
-msgstr ""
+msgstr "Ingen eksporterings-skabelon fundet ved den forventede sti:"
 
 #: editor/editor_export.cpp
 msgid "Packing"
@@ -4776,17 +4784,18 @@ msgid "Scale animation playback globally for the node."
 msgstr ""
 
 #: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
 msgid "Animation Tools"
-msgstr ""
+msgstr "Animation Værktøjer"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "Animation"
-msgstr ""
+msgstr "Animation"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 #, fuzzy
 msgid "Edit Transitions..."
-msgstr "Overgange"
+msgstr "Rediger Overgange..."
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 #, fuzzy
@@ -4824,20 +4833,21 @@ msgid "Future"
 msgstr ""
 
 #: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
 msgid "Depth"
-msgstr ""
+msgstr "Dybde"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "1 step"
-msgstr ""
+msgstr "1 trin"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "2 steps"
-msgstr ""
+msgstr "2 trin"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "3 steps"
-msgstr ""
+msgstr "3 trin"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "Differences Only"
@@ -4854,30 +4864,31 @@ msgstr ""
 #: editor/plugins/animation_player_editor_plugin.cpp
 #, fuzzy
 msgid "Pin AnimationPlayer"
-msgstr "Ændre Animation Navn:"
+msgstr "Fastgør AnimationPlayer"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "Create New Animation"
-msgstr ""
+msgstr "Opret Ny Animation"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "Animation Name:"
-msgstr ""
+msgstr "Animation Navn:"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 #: editor/plugins/resource_preloader_editor_plugin.cpp
 #: editor/plugins/script_editor_plugin.cpp
 #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
 msgid "Error!"
-msgstr ""
+msgstr "Fejl!"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "Blend Times:"
 msgstr ""
 
 #: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
 msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Næste (Auto Kø):"
 
 #: editor/plugins/animation_player_editor_plugin.cpp
 msgid "Cross-Animation Blend Times"
@@ -4889,14 +4900,12 @@ msgid "Move Node"
 msgstr "Flyt Node(s)"
 
 #: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
 msgid "Transition exists!"
-msgstr "Overgang"
+msgstr "Overgang eksisterer!"
 
 #: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
 msgid "Add Transition"
-msgstr "Overgang"
+msgstr "Tilføj Overgang"
 
 #: editor/plugins/animation_state_machine_editor.cpp
 #: modules/visual_script/visual_script_editor.cpp
@@ -4933,14 +4942,12 @@ msgid "No playback resource set at path: %s."
 msgstr "Ikke i stien for ressource."
 
 #: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
 msgid "Node Removed"
-msgstr "Fjern"
+msgstr "Node Fjernet"
 
 #: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
 msgid "Transition Removed"
-msgstr "Overgang"
+msgstr "Overgang Fjernet"
 
 #: editor/plugins/animation_state_machine_editor.cpp
 msgid "Set Start Node (Autoplay)"
@@ -4977,9 +4984,8 @@ msgid "Set the end animation. This is useful for sub-transitions."
 msgstr ""
 
 #: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
 msgid "Transition: "
-msgstr "Overgang"
+msgstr "Overgang: "
 
 #: editor/plugins/animation_state_machine_editor.cpp
 #, fuzzy
@@ -4994,7 +5000,7 @@ msgstr "Animation Zoom."
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 msgid "New name:"
-msgstr ""
+msgstr "Nyt navn:"
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 #: editor/plugins/multimesh_editor_plugin.cpp
@@ -5018,8 +5024,9 @@ msgid "Mix"
 msgstr ""
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
+#, fuzzy
 msgid "Auto Restart:"
-msgstr ""
+msgstr "Auto Genstart:"
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 msgid "Restart (s):"
@@ -5035,8 +5042,9 @@ msgstr ""
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 #: editor/plugins/multimesh_editor_plugin.cpp
+#, fuzzy
 msgid "Amount:"
-msgstr ""
+msgstr "Mængde:"
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 msgid "Blend 0:"
@@ -5052,13 +5060,14 @@ msgstr ""
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 msgid "Current:"
-msgstr ""
+msgstr "Nuværende:"
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 #: editor/plugins/visual_shader_editor_plugin.cpp
 #: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
 msgid "Add Input"
-msgstr ""
+msgstr "Tilføj Input"
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 msgid "Clear Auto-Advance"
@@ -5069,8 +5078,9 @@ msgid "Set Auto-Advance"
 msgstr ""
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
+#, fuzzy
 msgid "Delete Input"
-msgstr ""
+msgstr "Fjern Input"
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
 msgid "Animation tree is valid."
@@ -5117,16 +5127,19 @@ msgid "Transition Node"
 msgstr ""
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
+#, fuzzy
 msgid "Import Animations..."
-msgstr ""
+msgstr "Importer Animationer..."
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
+#, fuzzy
 msgid "Edit Node Filters"
-msgstr ""
+msgstr "Rediger Node Filtre"
 
 #: editor/plugins/animation_tree_player_editor_plugin.cpp
+#, fuzzy
 msgid "Filters..."
-msgstr ""
+msgstr "Filtre..."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Contents:"
@@ -5137,8 +5150,9 @@ msgid "View Files"
 msgstr "Vis filer"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
 msgid "Connection error, please try again."
-msgstr ""
+msgstr "Forbindelsesfejl, prøv venligst igen."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Can't connect to host:"
@@ -5146,15 +5160,16 @@ msgstr "Kan ikke forbinde til host:"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "No response from host:"
-msgstr ""
+msgstr "Ingen respons fra host:"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Can't resolve hostname:"
 msgstr ""
 
 #: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
 msgid "Request failed, return code:"
-msgstr ""
+msgstr "Forespørgsel mislykkedes, returkode:"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 #, fuzzy
@@ -5164,11 +5179,12 @@ msgstr "Forespørgsel mislykkedes."
 #: editor/plugins/asset_library_editor_plugin.cpp
 #, fuzzy
 msgid "Cannot save response to:"
-msgstr "Kan ikke fjerne:"
+msgstr "Kan ikke gemme respons i:"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
 msgid "Write error."
-msgstr ""
+msgstr "Skrivefejl."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Request failed, too many redirects"
@@ -5182,12 +5198,12 @@ msgstr "Omdiriger Løkke."
 #: editor/plugins/asset_library_editor_plugin.cpp
 #, fuzzy
 msgid "Request failed, timeout"
-msgstr "Forespørgsel mislykkedes."
+msgstr "Forespørgsel mislykkedes, tiden udløb."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 #, fuzzy
 msgid "Timeout."
-msgstr "Tid"
+msgstr "Tiden udløb."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Bad download hash, assuming file has been tampered with."
@@ -5210,14 +5226,12 @@ msgid "Asset Download Error:"
 msgstr ""
 
 #: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
 msgid "Downloading (%s / %s)..."
-msgstr "Indlæser"
+msgstr "Downloader (%s / %s)..."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
 msgid "Downloading..."
-msgstr "Indlæser"
+msgstr "Downloader..."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Resolving..."
@@ -5234,11 +5248,12 @@ msgstr ""
 #: editor/plugins/asset_library_editor_plugin.cpp
 #, fuzzy
 msgid "Install..."
-msgstr "Installér"
+msgstr "Installér..."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
 msgid "Retry"
-msgstr ""
+msgstr "Prøv igen"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Download Error"
@@ -5258,25 +5273,23 @@ msgstr ""
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Name (A-Z)"
-msgstr ""
+msgstr "Navn (A-Z)"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Name (Z-A)"
-msgstr ""
+msgstr "Navn (Z-A)"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
 msgid "License (A-Z)"
-msgstr "Licens"
+msgstr "Licens (A-Z)"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
 msgid "License (Z-A)"
-msgstr "Licens"
+msgstr "Licens (Z-A)"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "First"
-msgstr ""
+msgstr "Første"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 #, fuzzy
@@ -5289,7 +5302,7 @@ msgstr "Næste"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Last"
-msgstr ""
+msgstr "Sidste"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "All"
@@ -5300,9 +5313,8 @@ msgid "No results for \"%s\"."
 msgstr ""
 
 #: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
 msgid "Import..."
-msgstr "Importer"
+msgstr "Importer..."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Plugins..."
@@ -5322,9 +5334,8 @@ msgid "Site:"
 msgstr "Websted:"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
 msgid "Support"
-msgstr "Støtte..."
+msgstr "Support"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Official"
@@ -5335,9 +5346,8 @@ msgid "Testing"
 msgstr "Tester"
 
 #: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
 msgid "Loading..."
-msgstr "Indlæs"
+msgstr "Indlæser..."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Assets ZIP File"
@@ -5406,7 +5416,7 @@ msgstr ""
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
 msgid "steps"
-msgstr ""
+msgstr "trin"
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
 msgid "Rotation Offset:"

+ 36 - 42
editor/translations/de.po

@@ -23,7 +23,7 @@
 # Peter Friedland <[email protected]>, 2016.
 # No need for a name <[email protected]>, 2016.
 # Sönke <[email protected]>, 2018.
-# So Wieso <[email protected]>, 2016-2018, 2019, 2020.
+# So Wieso <[email protected]>, 2016-2018, 2019, 2020, 2021.
 # Tim Schellenberg <[email protected]>, 2017.
 # Timo Schwarzer <[email protected]>, 2016-2018.
 # viernullvier <[email protected]>, 2016.
@@ -66,8 +66,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-01-12 13:32+0000\n"
-"Last-Translator: Martin <[email protected]>\n"
+"PO-Revision-Date: 2021-01-16 01:28+0000\n"
+"Last-Translator: So Wieso <[email protected]>\n"
 "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
 "godot/de/>\n"
 "Language: de\n"
@@ -75,7 +75,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2452,7 +2452,7 @@ msgstr "Es ist keine abzuspielende Szene definiert."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Szene vor dem Abspielen speichern..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5235,14 +5235,12 @@ msgid "Assets ZIP File"
 msgstr "Nutzerinhalte als ZIP-Datei"
 
 #: 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 ""
-"Der Speicherpfad für Lightmap-Bilder kann nicht bestimmt werden.\n"
-"Speichern Sie die Szene (Bilder werden im gleichen Ordner gespeichert) oder "
-"legen Sie den Speicherpfad in den BakedLightmap-Eigenschaften fest."
+"Ein Speicherpfad für Lightmap-Bilder kann nicht bestimmt werden.\n"
+"Ein Speichern der Szene sollte dieses Problem beheben."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5262,26 +5260,31 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Die Größe des Lightmaps kann nicht bestimmt werden. Möglicherweise ist die "
+"maximale Lightmap-Größe zu klein."
 
 #: 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 ""
+"Ein Mesh ist ungültig. Es muss sichergestellt sein dass alle Werte das UV2-"
+"Kanals im Bereich von 0.0 bis 1.0 liegen."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Diese Godot-Version wurde ohne Raytracing-Unterstützung erstellt, Lightmaps "
+"können damit nicht gebacken werden."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Lightmaps vorrendern"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Vorlagendatei auswählen"
+msgstr "Lightmap-Bake-Datei auswählen:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6384,9 +6387,8 @@ msgstr ""
 "werden"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Zu CPU-Partikeln konvertieren"
+msgstr "Zu CPUParticles2D konvertieren"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11680,36 +11682,31 @@ msgstr "GridMap zu MeshLibrary hinzufügen um ihre Meshes benutzen zu können."
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Backen beginnen"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Datenstrukturen werden vorbereitet"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Erzeuge AABB"
+msgstr "Puffer generieren"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Richtungen"
+msgstr "Direct-Lighting"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Nach rechts einrücken"
+msgstr "Indirect-Lighting"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
 msgstr "Nachbearbeitung"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Plotte Lichter:"
+msgstr "Lightmaps auftragen"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12229,9 +12226,8 @@ msgid "Select device from the list"
 msgstr "Gerät aus Liste auswählen"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "Das zipalign Hilfswerkzeug konnte nicht gefunden werden."
+msgstr "Das ‚apksigner‘-Hilfswerkzeug konnte nicht gefunden werden."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12253,16 +12249,13 @@ msgstr ""
 "Release-Keystore wurde nicht korrekt konfiguriert in den Exporteinstellungen."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
 msgstr ""
-"Ungültiger Android-SDK-Pfad für eigene Builds in den Editoreinstellungen."
+"Es wird ein gültiger Android-SDK-Pfad in den Editoreinstellungen benötigt."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
-"Ungültiger Android-SDK-Pfad für eigene Builds in den Editoreinstellungen."
+msgstr "Ungültiger Android-SDK-Pfad in den Editoreinstellungen."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12271,12 +12264,13 @@ msgstr "‚platform-tools‘-Verzeichnis fehlt!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
 msgstr ""
+"‚adb‘-Anwendung der Android-SDK-Platform-Tools konnte nicht gefunden werden."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Ungültiger Android-SDK-Pfad für eigene Builds in den Editoreinstellungen."
+"Schauen Sie im Android-SDK-Verzeichnis das in den Editoreinstellungen "
+"angegeben wurde nach."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'build-tools' directory!"
@@ -12285,6 +12279,8 @@ msgstr "‚build-tools‘-Verzeichnis fehlt!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
 msgstr ""
+"‚apksigner‘-Anwendung der Android-SDK-Build-Tools konnte nicht gefunden "
+"werden."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12768,27 +12764,23 @@ msgstr "ARVROrigin benötigt ein ARVRCamera-Unterobjekt."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Am Suchen nach Meshes und Lichtern"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Parse Geometrie…"
+msgstr "Am Vorbereiten der Geometrie (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Umgebung anzeigen"
+msgstr "Am Vorbereiten der Umgebung"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Generiere Lightmaps"
+msgstr "Am Generieren eines Schnappschusses"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Generiere Lightmaps"
+msgstr "Am Speichern der Lightmaps"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13212,6 +13204,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"Der Sampler-Port ist verbunden wird aber nicht benutzt. Die Quelle sollte "
+"möglicherweise auf ‚SamplerPort‘ gestellt werden."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 39 - 45
editor/translations/es.po

@@ -14,7 +14,7 @@
 # Diego López <[email protected]>, 2017.
 # eon-s <[email protected]>, 2018, 2019, 2020.
 # Gustavo Leon <[email protected]>, 2017-2018.
-# Javier Ocampos <[email protected]>, 2018, 2019, 2020.
+# Javier Ocampos <[email protected]>, 2018, 2019, 2020, 2021.
 # Jose Maria Martinez <[email protected]>, 2018.
 # Juan Quiroga <[email protected]>, 2017.
 # Kiji Pixel <[email protected]>, 2017.
@@ -62,8 +62,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-01-12 13:32+0000\n"
-"Last-Translator: Lucasdelpiero <lucasdelpiero98@gmail.com>\n"
+"PO-Revision-Date: 2021-01-16 01:29+0000\n"
+"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
 "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
 "godot/es/>\n"
 "Language: es\n"
@@ -71,7 +71,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2451,7 +2451,7 @@ msgstr "No hay escena definida para ejecutar."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Guarda escena antes de ejecutar..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5239,14 +5239,13 @@ msgid "Assets ZIP File"
 msgstr "Archivo ZIP de elementos"
 
 #: 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 ""
-"No se puede encontrar una ruta válida para las imágenes \"lightmap\".\n"
-"Guarda la escena (para que las imágenes se guarden en el mismo directorio), "
-"o selecciona otra ruta desde las propiedades del \"BackedLightmap\"."
+"No se puede determinar una ruta de guardado para las imágenes de los "
+"lightmaps.\n"
+"Guarda tu escena e inténtalo de nuevo."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5265,26 +5264,31 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Falló al determinar el tamaño del lightmap ¿El tamaño máximo del lightmap es "
+"demasiado pequeño?"
 
 #: 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 ""
+"Alguna malla es inválida. Asegúrate de que los valores del canal de UV2 "
+"están contenidos dentro de la región cuadrangular [0,0,1,0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"El editor de Godot se construyó sin soporte de trazado de rayos, los "
+"lightmaps no pueden ser bakeados."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Bake Lightmaps"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Selecciona un Archivo de Plantilla"
+msgstr "Selecciona un archivo lightmap bakeado:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6388,9 +6392,8 @@ msgstr ""
 "Solo se puede asignar un punto a un material de procesado ParticlesMaterial"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Convertir a CPUParticles"
+msgstr "Convertir a CPUParticles2D"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11678,36 +11681,31 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Empezar a Bakear"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Preparar estructuras de datos"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Generar AABB"
+msgstr "Generar buffers"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Direcciones"
+msgstr "Iluminación directa"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Indentar a la Derecha"
+msgstr "Iluminación indirecta"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
-msgstr "Post-Procesado"
+msgstr "Post procesado"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Trazando Iluminación:"
+msgstr "Trazar lightmaps"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12227,9 +12225,8 @@ msgid "Select device from the list"
 msgstr "Seleccionar dispositivo de la lista"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "No se pudo encontrar la herramienta zipalign."
+msgstr "No se pudo encontrar la herramienta 'apksigner'."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12251,18 +12248,14 @@ msgstr ""
 "exportación."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
 msgstr ""
-"Ruta del SDK de Android inválida para la compilación personalizada en "
-"Configuración del Editor."
+"Se requiere una ruta válida del SDK de Android en la Configuración del "
+"Editor."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
-"Ruta del SDK de Android inválida para la compilación personalizada en "
-"Configuración del Editor."
+msgstr "Ruta del SDK de Android inválida en la Configuración del Editor."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12271,12 +12264,13 @@ msgstr "¡No se encontró el directorio 'platform-tools'!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
 msgstr ""
+"No se pudo encontrar el comando adb de las herramientas de la plataforma SDK "
+"de Android."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Ruta del SDK de Android inválida para la compilación personalizada en "
+"Por favor, comprueba el directorio del SDK de Android especificado en la "
 "Configuración del Editor."
 
 #: platform/android/export/export.cpp
@@ -12286,6 +12280,8 @@ msgstr "¡No se encontró el directorio 'build-tools'!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
 msgstr ""
+"No se pudo encontrar el comando apksigner de las herramientas de "
+"construcción del SDK de Android."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12771,27 +12767,23 @@ msgstr "ARVROrigin requiere un nodo hijo ARVRCamera."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Encontrar mallas y luces"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Analizando geometría..."
+msgstr "Preparando geometría (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Ver Entorno"
+msgstr "Preparar entorno"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Generando Lightmaps"
+msgstr "Generar captura"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Generando Lightmaps"
+msgstr "Guardar lightmaps"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13205,6 +13197,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"El puerto de muestreo está conectado, pero no se utiliza. Considera la "
+"posibilidad de cambiar la fuente a \"SamplerPort\"."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 29 - 31
editor/translations/et.po

@@ -10,7 +10,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2021-01-14 22:48+0000\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
 "Last-Translator: Kritzmensch <[email protected]>\n"
 "Language-Team: Estonian <https://hosted.weblate.org/projects/godot-engine/"
 "godot/et/>\n"
@@ -1127,14 +1127,12 @@ msgid "Gold Sponsors"
 msgstr "Kuldsponsorid"
 
 #: editor/editor_about.cpp
-#, fuzzy
 msgid "Silver Sponsors"
-msgstr "Hõbennetajad"
+msgstr "Hõbesponsorid"
 
 #: editor/editor_about.cpp
-#, fuzzy
 msgid "Bronze Sponsors"
-msgstr "Pronksannetajad"
+msgstr "Pronkssponsorid"
 
 #: editor/editor_about.cpp
 msgid "Mini Sponsors"
@@ -1279,11 +1277,11 @@ msgstr ""
 
 #: editor/editor_audio_buses.cpp
 msgid "Solo"
-msgstr ""
+msgstr "Soolo"
 
 #: editor/editor_audio_buses.cpp
 msgid "Mute"
-msgstr ""
+msgstr "Vaigista"
 
 #: editor/editor_audio_buses.cpp
 msgid "Bypass"
@@ -1300,7 +1298,7 @@ msgstr "Duplikeeri"
 
 #: editor/editor_audio_buses.cpp
 msgid "Reset Volume"
-msgstr ""
+msgstr "Lähtesta valjus"
 
 #: editor/editor_audio_buses.cpp
 msgid "Delete Effect"
@@ -1328,7 +1326,7 @@ msgstr ""
 
 #: editor/editor_audio_buses.cpp
 msgid "Reset Bus Volume"
-msgstr ""
+msgstr "Lähtesta siini valjus"
 
 #: editor/editor_audio_buses.cpp
 msgid "Move Audio Bus"
@@ -1634,7 +1632,7 @@ msgstr "Skriptiredaktor"
 
 #: editor/editor_feature_profile.cpp
 msgid "Asset Library"
-msgstr ""
+msgstr "Vadade kogum"
 
 #: editor/editor_feature_profile.cpp
 msgid "Scene Tree Editing"
@@ -1809,7 +1807,7 @@ msgstr "Värskenda"
 
 #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
 msgid "All Recognized"
-msgstr ""
+msgstr "Kõik tuvastatud"
 
 #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
 msgid "All Files (*)"
@@ -1896,11 +1894,11 @@ msgstr "Värskenda faile."
 
 #: editor/editor_file_dialog.cpp
 msgid "(Un)favorite current folder."
-msgstr ""
+msgstr "Lisa praegune kaust lemmikute sekka."
 
 #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
 msgid "Toggle the visibility of hidden files."
-msgstr ""
+msgstr "Näita peidetud faile."
 
 #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
 msgid "View items as a grid of thumbnails."
@@ -2387,7 +2385,7 @@ msgstr ""
 
 #: editor/editor_node.cpp
 msgid "Export Mesh Library"
-msgstr ""
+msgstr "Ekspordi võrgu kogum"
 
 #: editor/editor_node.cpp
 msgid "This operation can't be done without a root node."
@@ -3025,7 +3023,7 @@ msgstr ""
 
 #: editor/editor_node.cpp
 msgid "Merge With Existing"
-msgstr ""
+msgstr "Liida olemasolevaga"
 
 #: editor/editor_node.cpp
 msgid "Open & Run a Script"
@@ -3316,7 +3314,7 @@ msgstr ""
 
 #: editor/editor_sub_scene.cpp
 msgid "Scene Path:"
-msgstr ""
+msgstr "Stseeni tee:"
 
 #: editor/editor_sub_scene.cpp
 msgid "Import From Node:"
@@ -6735,11 +6733,11 @@ msgstr "Käivita"
 
 #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
 msgid "Step Into"
-msgstr ""
+msgstr "Trepi sissepoole"
 
 #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
 msgid "Step Over"
-msgstr ""
+msgstr "Trepi üle"
 
 #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
 msgid "Break"
@@ -6879,7 +6877,7 @@ msgstr ""
 
 #: editor/plugins/script_text_editor.cpp
 msgid "Breakpoints"
-msgstr ""
+msgstr "Katkepunktid"
 
 #: editor/plugins/script_text_editor.cpp
 #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp
@@ -6987,19 +6985,19 @@ msgstr ""
 #: editor/plugins/script_text_editor.cpp
 #: modules/visual_script/visual_script_editor.cpp
 msgid "Toggle Breakpoint"
-msgstr ""
+msgstr "Lülita katkepunkt sisse/välja"
 
 #: editor/plugins/script_text_editor.cpp
 msgid "Remove All Breakpoints"
-msgstr ""
+msgstr "Eemalda kõik katkepunktid"
 
 #: editor/plugins/script_text_editor.cpp
 msgid "Go to Next Breakpoint"
-msgstr ""
+msgstr "Liigu järgmise katkepunkti juurde"
 
 #: editor/plugins/script_text_editor.cpp
 msgid "Go to Previous Breakpoint"
-msgstr ""
+msgstr "Naase eelmise katkepunkti juurde"
 
 #: editor/plugins/shader_editor_plugin.cpp
 msgid ""
@@ -7197,7 +7195,7 @@ msgstr ""
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid "Lock View Rotation"
-msgstr ""
+msgstr "Lukusta vaateakna pöördenurk"
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid "Display Normal"
@@ -7285,7 +7283,7 @@ msgstr ""
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid "View Rotation Locked"
-msgstr ""
+msgstr "Vaateakna pöördenurk on lukustatud"
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid ""
@@ -9649,7 +9647,7 @@ msgstr "Uus projekt"
 
 #: editor/project_manager.cpp
 msgid "Remove Missing"
-msgstr ""
+msgstr "Eemalda puuduvad"
 
 #: editor/project_manager.cpp
 msgid "Templates"
@@ -10734,7 +10732,7 @@ msgstr "Videomälu"
 
 #: editor/script_editor_debugger.cpp
 msgid "Skip Breakpoints"
-msgstr ""
+msgstr "Jäta katkepunktid vahele"
 
 #: editor/script_editor_debugger.cpp
 msgid "Inspect Previous Instance"
@@ -10750,11 +10748,11 @@ msgstr "Virnakaadrid"
 
 #: editor/script_editor_debugger.cpp
 msgid "Profiler"
-msgstr ""
+msgstr "Profileerija"
 
 #: editor/script_editor_debugger.cpp
 msgid "Network Profiler"
-msgstr ""
+msgstr "Võrgu profileerija"
 
 #: editor/script_editor_debugger.cpp
 msgid "Monitor"
@@ -10790,7 +10788,7 @@ msgstr "Ressursi tee"
 
 #: editor/script_editor_debugger.cpp
 msgid "Type"
-msgstr ""
+msgstr "Tüüp"
 
 #: editor/script_editor_debugger.cpp
 msgid "Format"
@@ -10823,7 +10821,7 @@ msgstr ""
 #: editor/script_editor_debugger.cpp
 #, fuzzy
 msgid "Export measures as CSV"
-msgstr "Ekspordi mõõtmed/meetmed CSV-vormingus"
+msgstr "Ekspordi mõõtmed CSV-vormingus"
 
 #: editor/settings_config_dialog.cpp
 msgid "Erase Shortcut"

+ 32 - 46
editor/translations/fi.po

@@ -8,14 +8,14 @@
 # Jarmo Riikonen <[email protected]>, 2017.
 # Nuutti Varvikko <[email protected]>, 2018.
 # Sami Lehtilä <[email protected]>, 2018.
-# Tapani Niemi <[email protected]>, 2018, 2019, 2020.
+# Tapani Niemi <[email protected]>, 2018, 2019, 2020, 2021.
 # Tuomas Lähteenmäki <[email protected]>, 2019.
 # Matti Niskanen <[email protected]>, 2020.
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-12-29 21:52+0000\n"
+"PO-Revision-Date: 2021-01-21 11:57+0000\n"
 "Last-Translator: Tapani Niemi <[email protected]>\n"
 "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
 "godot/fi/>\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2384,7 +2384,7 @@ msgstr "Suoritettavaa skeneä ei ole määritetty."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Tallenna skene ennen ajamista..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5147,14 +5147,12 @@ msgid "Assets ZIP File"
 msgstr "Assettien zip-tiedosto"
 
 #: 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 ""
 "Lightmap-kuvien tallennuspolun määrittäminen ei onnistu.\n"
-"Tallenna skenesi (jotta kuvat tallentuisivat samaan hakemistoon), tai "
-"valitse tallennuspolku BakedLightmapin asetuksista."
+"Tallenna skenesi ja yritä uudelleen."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5173,26 +5171,31 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Lightmapin koon määrittäminen epäonnistui. Suurin lightmapin koko liian "
+"pieni?"
 
 #: 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 ""
+"Jokin mesh on virheellinen. Varmista, että UV2-kanavan arvot ovat [0.0, 1.0] "
+"välisen neliön alueella."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Godot-editori on käännetty ilman ray tracing -tukea, joten lightmappeja ei "
+"voi kehittää."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Kehitä Lightmapit"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Valitse mallitiedosto"
+msgstr "Valitse lightmapin kehitystiedosto:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6288,9 +6291,8 @@ msgstr ""
 "Piste voidaan asettaa ainoastaan ParticlesMaterial käsittelyn materiaaliin"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Muunna CPUPartikkeleiksi"
+msgstr "Muunna CPUParticles2D solmuksi"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11566,36 +11568,31 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Aloita kehitys"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Valmistellaan tietorakenteita"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Luo AABB"
+msgstr "Luo puskurit"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Suunnat"
+msgstr "Suora valaistus"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Sisennä oikealle"
+msgstr "Epäsuora valaistus"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
 msgstr "Jälkikäsittely"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Piirretään valoja:"
+msgstr "Piirretään lightmappeja"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12109,9 +12106,8 @@ msgid "Select device from the list"
 msgstr "Valitse laite listasta"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "zipalign työkalua ei löydy."
+msgstr "'apksigner' työkalua ei löydy."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12131,18 +12127,12 @@ msgid "Release keystore incorrectly configured in the export preset."
 msgstr "Release keystore on konfiguroitu väärin viennin esiasetuksissa."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
-msgstr ""
-"Virheellinen Android SDK -polku mukautettu käännöstä varten editorin "
-"asetuksissa."
+msgstr "Editorin asetuksiin tarvitaan kelvollinen Android SDK -polku."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
-"Virheellinen Android SDK -polku mukautettu käännöstä varten editorin "
-"asetuksissa."
+msgstr "Editorin asetuksissa on virheellinen Android SDK -polku."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12150,14 +12140,12 @@ msgstr "'platform-tools' hakemisto puuttuu!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
-msgstr ""
+msgstr "Android SDK platform-tools adb-komentoa ei löydy."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Virheellinen Android SDK -polku mukautettu käännöstä varten editorin "
-"asetuksissa."
+"Ole hyvä ja tarkista editorin asetuksissa määritelty Android SDK -hakemisto."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'build-tools' directory!"
@@ -12165,7 +12153,7 @@ msgstr "'build-tools' hakemisto puuttuu!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
-msgstr ""
+msgstr "Android SDK build-tools apksigner-komentoa ei löydy."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12639,27 +12627,23 @@ msgstr "ARVROrigin solmu tarvitsee ARVRCamera alisolmun."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Etsitään meshejä ja valoja"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Jäsentää geometriaa…"
+msgstr "Valmistellaan geometriaa (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Näytä ympäristö"
+msgstr "Valmistellaan ympäristöä"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Luodaan Lightmappeja"
+msgstr "Luodaan kaappausta"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Luodaan Lightmappeja"
+msgstr "Tallennetaan lightmappeja"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13067,6 +13051,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"Näytteistysportti on yhdistetty mutta ei käytössä. Harkitse lähteen "
+"vaihtamista 'SamplerPort' asetukseen."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 33 - 39
editor/translations/fr.po

@@ -69,7 +69,7 @@
 # Sofiane <[email protected]>, 2019.
 # Camille Mohr-Daurat <[email protected]>, 2019.
 # Pierre Stempin <[email protected]>, 2019.
-# Pierre Caye <[email protected]>, 2020.
+# Pierre Caye <[email protected]>, 2020, 2021.
 # Kevin Bouancheau <[email protected]>, 2020.
 # LaurentOngaro <[email protected]>, 2020.
 # Julien Humbert <[email protected]>, 2020.
@@ -82,8 +82,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-01-01 10:30+0000\n"
-"Last-Translator: TechnoPorg <[email protected]>\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
+"Last-Translator: Pierre Caye <[email protected]>\n"
 "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
 "godot/fr/>\n"
 "Language: fr\n"
@@ -91,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2473,7 +2473,7 @@ msgstr "Il n'y a pas de scène définie pour être lancée."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Enregistrer la scène avant de l'exécuter..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5267,15 +5267,12 @@ msgid "Assets ZIP File"
 msgstr "Fichier ZIP de données"
 
 #: 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 ""
-"Ne peut pas déterminer un chemin de sauvegarde pour les images lightmap.\n"
-"Sauvegarder votre scène (pour que les images soient sauvegardées dans le "
-"même répertoire), ou choisissez un répertoire de sauvegarde à partir des "
-"propriétés BakedLightmap."
+"Impossible de déterminer un chemin de sauvegarde pour les images lightmap.\n"
+"Enregistrez votre scène et réessayez."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5294,26 +5291,31 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Échec de la détermination de la taille de la lightmap. Taille maximale de "
+"lightmap trop petite ?"
 
 #: 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 ""
+"Un maillage n'est pas valide. Assurez-vous que les valeurs du canal UV2 sont "
+"contenues dans la région carrée [0.0,1.0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"L'éditeur Godot a été compilé sans support du ray tracing, les lightmaps ne "
+"peuvent pas être pré-calculées."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Précalculer les lightmaps"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Sélectionner le fichier de modèle"
+msgstr "Sélectionnez le fichier de pré-calcul de lightmap :"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -11723,36 +11725,31 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Commencer le pré-calcul"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Préparation des structures de données"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Générer AABB"
+msgstr "Générer des tampons"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Directions"
+msgstr "Éclairage direct"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Indenter vers la droite"
+msgstr "Éclairage indirect"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
 msgstr "Post-traitement"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Tracer les lumières :"
+msgstr "Tracer des lightmaps"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12299,11 +12296,10 @@ msgstr ""
 "d'exportation."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
 msgstr ""
-"Un chemin d'accès valide au SDK Android doit être défini dans les paramètres "
-"de l'éditeur."
+"Un chemin d'accès valide au SDK Android est requis dans les paramètres de "
+"l'éditeur."
 
 #: platform/android/export/export.cpp
 msgid "Invalid Android SDK path in Editor Settings."
@@ -12316,14 +12312,13 @@ msgstr "Dossier « platform-tools » manquant !"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
-msgstr ""
+msgstr "Impossible de trouver la commande adb du SDK Android platform-tools."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Chemin d'accès invalide au SDK Android pour le build custom dans les "
-"paramètres de l'éditeur."
+"Veuillez vérifier le répertoire du SDK Android spécifié dans les paramètres "
+"de l'éditeur."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'build-tools' directory!"
@@ -12332,6 +12327,7 @@ msgstr "Dossier « build-tools » manquant !"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
 msgstr ""
+"Impossible de trouver la commande apksigner du SDK Android build-tools."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12826,27 +12822,23 @@ msgstr "ARVROrigin requiert un nœud enfant ARVRCamera."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Recherche de maillages et de lumières"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Analyse de la géométrie..."
+msgstr "Préparation de la géométrie (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Voir environnement"
+msgstr "Préparation de l'environnement"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Génération des lightmaps"
+msgstr "Génération de capture"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Génération des lightmaps"
+msgstr "Enregistrement des lightmaps"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13263,6 +13255,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"Le port de l'échantillonneur est connecté mais n'est pas utilisé. Pensez à "
+"changer la source en 'SamplerPort'."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 6 - 6
editor/translations/hu.po

@@ -14,12 +14,13 @@
 # cefrebevalo <[email protected]>, 2020.
 # thekeymethod <[email protected]>, 2020.
 # Czmorek Dávid <[email protected]>, 2020.
+# Újvári Marcell <[email protected]>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-12-07 08:11+0000\n"
-"Last-Translator: Czmorek Dávid <czmdav.soft@gmail.com>\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
+"Last-Translator: Újvári Marcell <mmarci72@gmail.com>\n"
 "Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/"
 "godot/hu/>\n"
 "Language: hu\n"
@@ -27,7 +28,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.4-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -738,10 +739,9 @@ msgstr "Csak a kijelölés"
 #: editor/code_editor.cpp editor/plugins/script_text_editor.cpp
 #: editor/plugins/text_editor.cpp
 msgid "Standard"
-msgstr ""
+msgstr "Alapértelmezett"
 
 #: editor/code_editor.cpp editor/plugins/script_editor_plugin.cpp
-#, fuzzy
 msgid "Toggle Scripts Panel"
 msgstr "Szkript panel váltása"
 
@@ -7247,7 +7247,7 @@ msgstr ""
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid "Z-Axis Transform."
-msgstr ""
+msgstr "Z-Tengely transzformáció"
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid "View Plane Transform."

+ 70 - 107
editor/translations/it.po

@@ -36,7 +36,7 @@
 # Davide Giuliano <[email protected]>, 2019.
 # Stefano Merazzi <[email protected]>, 2019.
 # Sinapse X <[email protected]>, 2019.
-# Micila Micillotto <[email protected]>, 2019, 2020.
+# Micila Micillotto <[email protected]>, 2019, 2020, 2021.
 # Mirko Soppelsa <[email protected]>, 2019, 2020.
 # No <[email protected]>, 2019.
 # StarFang208 <[email protected]>, 2019.
@@ -59,8 +59,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-12-22 21:12+0000\n"
-"Last-Translator: Lorenzo Cerqua <lorenzocerqua@tutanota.com>\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
+"Last-Translator: Micila Micillotto <micillotto@gmail.com>\n"
 "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
 "godot/it/>\n"
 "Language: it\n"
@@ -68,7 +68,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -190,9 +190,8 @@ msgid "Anim Delete Keys"
 msgstr "Elimina delle chiavi d'animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Change Keyframe Time"
-msgstr "Cambia il tempo di un fotogramma chiave"
+msgstr "Cambia Intervallo Fotogramma Principale Animazione"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Change Transition"
@@ -203,49 +202,41 @@ msgid "Anim Change Transform"
 msgstr "Cambia la trasformazione di un'animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Change Keyframe Value"
-msgstr "Cambia il valore del fotogramma chiave di un'animazione"
+msgstr "Cambia Valore Fotogramma Principale Animazione"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Change Call"
 msgstr "Cambia la chiamata di un'animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Multi Change Keyframe Time"
-msgstr "Cambia il tempo di più fotogrammi chiave"
+msgstr "Cambia Multipli Intervalli Fotogramma Principale Animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Multi Change Transition"
-msgstr "Cambia la transizione di più animazioni"
+msgstr "Cambi Multipli Transizione Animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Multi Change Transform"
-msgstr "Cambia le trasformazioni di più animazioni"
+msgstr "Cambi Multipli Trasformazione Animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Multi Change Keyframe Value"
-msgstr "Cambia il valore di più fotogrammi chiave di un'Animazione"
+msgstr "Cambia Multipli Valori Fotogramma Principale Animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Multi Change Call"
-msgstr "Cambia la chiamata di metodo di più animazioni"
+msgstr "Cambi Multipli Chiamata Animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Change Animation Length"
-msgstr "Cambia la lunghezza di un'animazione"
+msgstr "Cambia Lunghezza Animazione"
 
 #: editor/animation_track_editor.cpp
 #: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
 msgid "Change Animation Loop"
-msgstr "Commuta ciclicità animazione"
+msgstr "Cambia Loop Animazione"
 
 #: editor/animation_track_editor.cpp
 msgid "Property Track"
@@ -317,9 +308,8 @@ msgid "Interpolation Mode"
 msgstr "Modalità d'interpolazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr "Modalità ciclo ad anello (interpola la fine con l'inizio del ciclo)"
+msgstr "Modalità Ciclo ad Anello (interpola la fine con l'inizio a ciclo)"
 
 #: editor/animation_track_editor.cpp
 msgid "Remove this track."
@@ -342,17 +332,14 @@ msgid "Discrete"
 msgstr "Discreta"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Trigger"
-msgstr "Attivazione"
+msgstr "Attivatore"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Capture"
 msgstr "Cattura"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Nearest"
 msgstr "Più vicino"
 
@@ -366,30 +353,25 @@ msgid "Cubic"
 msgstr "Cubica"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Clamp Loop Interp"
-msgstr "Blocca l'interpolazione d'un ciclo"
+msgstr "Blocca Interpolazione Ciclo"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Wrap Loop Interp"
-msgstr "Continua l'interpolazione d'un ciclo"
+msgstr "Avvolgi Interpolazione Ciclo"
 
 #: editor/animation_track_editor.cpp
 #: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
 msgid "Insert Key"
-msgstr "Inserisci un fotogramma chiave"
+msgstr "Inserisci Fotogramma Chiave"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Duplicate Key(s)"
-msgstr "Duplica i fotogrammi chiave selezionati"
+msgstr "Duplica Fotogrammi Chiave Selezionati"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Delete Key(s)"
-msgstr "Elimina i fotogrammi chiave selezionati"
+msgstr "Elimina Fotogrammi Chiave Selezionati"
 
 #: editor/animation_track_editor.cpp
 msgid "Change Animation Update Mode"
@@ -408,14 +390,12 @@ msgid "Remove Anim Track"
 msgstr "Rimuovi la traccia di un'animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Create NEW track for %s and insert key?"
-msgstr "Creare una NUOVA traccia per %s e inserirci il fotogramma chiave?"
+msgstr "Crea NUOVA traccia per %s ed inserire fotogramma chiave?"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Create %d NEW tracks and insert keys?"
-msgstr "Creare %d NUOVE tracce e inserirci i fotogrammi chiavi?"
+msgstr "Crea %d NUOVE tracce ed inserire fotogrammi chiave?"
 
 #: editor/animation_track_editor.cpp editor/create_dialog.cpp
 #: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp
@@ -434,24 +414,20 @@ msgid "Anim Insert"
 msgstr "Inserisci un'animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "AnimationPlayer can't animate itself, only other players."
-msgstr "AnimationPlayer non può animarsi, solo altri nodi."
+msgstr "AnimationPlayer può solo animare altri riproduttori, non se stesso."
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Create & Insert"
-msgstr "Crea un'animazione e inserisci un fotogramma chiave"
+msgstr "Crea & Inserisci Animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Insert Track & Key"
-msgstr "Inserisci un traccia con un fotogramma chiave in un'animazione"
+msgstr "Inserisci Traccia e Fotogramma Chiave Animazione"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Anim Insert Key"
-msgstr "Inserisci un fotogramma chiave in un'animazione"
+msgstr "Inserisci Fotogramma Chiave Animazione"
 
 #: editor/animation_track_editor.cpp
 msgid "Change Animation Step"
@@ -462,13 +438,12 @@ msgid "Rearrange Tracks"
 msgstr "Riordina delle tracce"
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Transform tracks only apply to Spatial-based nodes."
 msgstr ""
-"Le tracce di trasformazioni 3D si applicano solo a nodi di tipo Spatial."
+"Le tracce di trasformazione possono essere applicate soltanto ai nodi basati "
+"sul nodo Spatial."
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid ""
 "Audio tracks can only point to nodes of type:\n"
 "-AudioStreamPlayer\n"
@@ -487,12 +462,12 @@ msgstr ""
 "AnimationPlayer."
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "An animation player can't animate itself, only other players."
-msgstr "Un AnimationPlayer non può animare se stesso, solo altri riproduttori."
+msgstr ""
+"Un riproduttore di animazioni può solo animare altri riproduttori, non se "
+"stesso."
 
 #: editor/animation_track_editor.cpp
-#, fuzzy
 msgid "Not possible to add a new track without a root"
 msgstr "Non è possibile aggiungere una nuova traccia senza un nodo radice"
 
@@ -2470,7 +2445,7 @@ msgstr "Non c'è nessuna scena definita da eseguire."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Salva scena prima di eseguire..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -4002,19 +3977,16 @@ msgid "Searching..."
 msgstr "Ricerca..."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d match in %d file."
-msgstr "%d corrispondenza/e."
+msgstr "%d corrispondenza in %d file."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d matches in %d file."
-msgstr "%d corrispondenza/e."
+msgstr "%d corrispondenze in %d file."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d matches in %d files."
-msgstr "%d corrispondenza/e."
+msgstr "%d corrispondenze in %d file."
 
 #: editor/groups_editor.cpp
 msgid "Add to Group"
@@ -5256,15 +5228,13 @@ msgid "Assets ZIP File"
 msgstr "ZIP File degli Asset"
 
 #: 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 ""
-"Impossibile determinare un percorso di salvataggio per le immagini di "
+"Impossibile determinare un percorso di salvataggio per le immagini "
 "lightmap.\n"
-"Salva la scena (per salvare le immagini nella stessa directory), o scegli un "
-"percorso di salvataggio nelle proprietà di BackedLightmap."
+"Salva la scena e riprova."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5283,26 +5253,31 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Impossibile determinare la dimensione della lightmap. La dimensione massima "
+"(della lightmap) è troppo piccola?"
 
 #: 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 ""
+"Alcune mesh non sono valide. Sii sicuro che i valori dei canali UV2 siano "
+"all'interno nella regione [0.0,1.0] quadra."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Godot Editor è stato costruito senza il supporto per il ray tracing, quindi "
+"il baking delle lightmaps non è possibile."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Preprocessa Lightmaps"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Seleziona file template"
+msgstr "Seleziona il file bake della lightmap:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6408,9 +6383,8 @@ msgstr ""
 "ParticlesMaterial"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Converti in CPUParticles"
+msgstr "Converti in CPUParticles2D"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11701,36 +11675,31 @@ msgstr "Dai una risorsa MeshLibrary a questa GridMap per usare le sue mesh."
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Inizia il Baking"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Preparando le strutture dati"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Genera AABB"
+msgstr "Genera buffers"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Direzioni"
+msgstr "Luci dirette"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Indenta a destra"
+msgstr "Luci indirette"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
-msgstr "Post-Processo"
+msgstr "Post processing"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Stampando Luci:"
+msgstr "Stampando le lightmap"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12250,7 +12219,7 @@ msgstr "Seleziona il dispositivo dall'elenco"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find the 'apksigner' tool."
-msgstr ""
+msgstr "Impossibile trovare lo strumento 'apksigner'."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12271,18 +12240,13 @@ msgstr ""
 "Release keystore non configurato correttamente nel preset di esportazione."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
 msgstr ""
-"Percorso per Android SDK per build personalizzata nelle impostazioni "
-"dell'editor non è valido."
+"Un percorso valido per il SDK Android è richiesto nelle Impostazioni Editor."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
-"Percorso per Android SDK per build personalizzata nelle impostazioni "
-"dell'editor non è valido."
+msgstr "Un percorso invalido per il SDK Android nelle Impostazioni Editor."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12291,22 +12255,24 @@ msgstr "Cartella 'platform-tools' inesistente!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
 msgstr ""
+"Impossibile trovare il comando adb negli strumenti di piattaforma del SDK "
+"Android."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Percorso per Android SDK per build personalizzata nelle impostazioni "
-"dell'editor non è valido."
+"Per favore, controlla la directory specificata del SDK Android nelle "
+"Impostazioni Editor."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Missing 'build-tools' directory!"
-msgstr "Cartella 'platform-tools' inesistente!"
+msgstr "Cartella 'build-tools' inesistente!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
 msgstr ""
+"Impossibile trovare il comando apksigner negli strumenti di piattaforma del "
+"SDK Android."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12795,27 +12761,23 @@ msgstr "ARVROrigin richiede un nodo figlio di tipo ARVRCamera."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Cercando mesh e luci"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Elaborazione Geometria..."
+msgstr "Elaborazione Geometria (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Mostra Ambiente"
+msgstr "Preparazione Ambiente"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Generando Lightmap"
+msgstr "Generando cattura"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Generando Lightmap"
+msgstr "Salvando Lightmap"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13161,9 +13123,8 @@ msgid "Must use a valid extension."
 msgstr "È necessaria un'estensione valida."
 
 #: scene/gui/graph_edit.cpp
-#, fuzzy
 msgid "Enable grid minimap."
-msgstr "Abilita Snap"
+msgstr "Abilita mini-mappa griglia."
 
 #: scene/gui/popup.cpp
 msgid ""
@@ -13224,6 +13185,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"La porta del sampler è connessa ma mai usata. Considera cambiare la sorgente "
+"a 'SamplerPort'."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 15 - 13
editor/translations/ja.po

@@ -36,8 +36,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-01-06 18:29+0000\n"
-"Last-Translator: nitenook <[email protected]>\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
+"Last-Translator: Wataru Onuki <[email protected]>\n"
 "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
 "godot/ja/>\n"
 "Language: ja\n"
@@ -45,7 +45,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2410,7 +2410,7 @@ msgstr "実行するシーンが定義されていません。"
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "実行前にシーンを保存..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5168,14 +5168,12 @@ msgid "Assets ZIP File"
 msgstr "アセットのzipファイル"
 
 #: 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"
-"シーンを保存する (画像が同じディレクトリに保存される) か、BakedLightmapプロパ"
-"ティから保存パスを選択してください。"
+"シーンを保存してから再度行ってください。"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5194,26 +5192,31 @@ 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 ""
+"一部のメッシュが無効です。UV2チャンネルの値が [0.0,1.0] の正方形領域内にある"
+"ことを確認してください。"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Godotエディタがレイトレーシングに対応せずにビルドされており、ライトマップのベ"
+"イクができません。"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "ライトマップを焼き込む"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "テンプレートファイルを選択"
+msgstr "ライトマップベイクファイルを選択:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6307,9 +6310,8 @@ msgid "Can only set point into a ParticlesMaterial process material"
 msgstr "ParticlesMaterialプロセスマテリアルにのみ点を設定できます"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "CPUパーティクルに変換"
+msgstr "CPUParticles2D に変換"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11572,11 +11574,11 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "ベイク開始"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "データ構造の準備"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 #, fuzzy

+ 12 - 12
editor/translations/mk.po

@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2021-01-15 03:43+0000\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
 "Last-Translator: Kristijan Fremen Velkovski <[email protected]>\n"
 "Language-Team: Macedonian <https://hosted.weblate.org/projects/godot-engine/"
 "godot/mk/>\n"
@@ -138,11 +138,11 @@ msgstr "Избриши Клучеви"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Change Keyframe Time"
-msgstr ""
+msgstr "Анимација Промени Време на клучниот кадар"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Change Transition"
-msgstr ""
+msgstr "Анимација Промени Прелаз"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Change Transform"
@@ -150,11 +150,11 @@ msgstr ""
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Change Keyframe Value"
-msgstr ""
+msgstr "Анимација Промени Клучен Кадар Вредност"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Change Call"
-msgstr ""
+msgstr "Анимација Промени Позив"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Multi Change Keyframe Time"
@@ -162,7 +162,7 @@ msgstr ""
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Multi Change Transition"
-msgstr ""
+msgstr "Анимација Многукратно Променување на Прелози"
 
 #: editor/animation_track_editor.cpp
 msgid "Anim Multi Change Transform"
@@ -10914,27 +10914,27 @@ msgstr ""
 
 #: modules/gdnative/gdnative_library_singleton_editor.cpp
 msgid "Libraries: "
-msgstr ""
+msgstr "Библиотеки: "
 
 #: modules/gdnative/register_types.cpp
 msgid "GDNative"
-msgstr ""
+msgstr "GDNative(ГДДомороден)"
 
 #: modules/gdscript/gdscript_functions.cpp
 msgid "Step argument is zero!"
-msgstr ""
+msgstr "Корак аргумент е нула!"
 
 #: modules/gdscript/gdscript_functions.cpp
 msgid "Not a script with an instance"
-msgstr ""
+msgstr "Не е скрипта со инстанца"
 
 #: modules/gdscript/gdscript_functions.cpp
 msgid "Not based on a script"
-msgstr ""
+msgstr "Не е основано на скрипта"
 
 #: modules/gdscript/gdscript_functions.cpp
 msgid "Not based on a resource file"
-msgstr ""
+msgstr "Не е основано на ресурс фајл"
 
 #: modules/gdscript/gdscript_functions.cpp
 msgid "Invalid instance dictionary format (missing @path)"

+ 23 - 26
editor/translations/pl.po

@@ -45,12 +45,13 @@
 # Piotr Grodzki <[email protected]>, 2020.
 # Dzejkop <[email protected]>, 2020.
 # Mateusz Grzonka <[email protected]>, 2020.
+# gnu-ewm <[email protected]>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-01-12 13:32+0000\n"
-"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
+"PO-Revision-Date: 2021-01-26 03:28+0000\n"
+"Last-Translator: gnu-ewm <gnu.ewm@protonmail.com>\n"
 "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
 "godot/pl/>\n"
 "Language: pl\n"
@@ -59,7 +60,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -903,7 +904,7 @@ msgstr "Sygnał:"
 
 #: editor/connections_dialog.cpp
 msgid "Connect '%s' to '%s'"
-msgstr "Połącz \"%s\" z \"%s\""
+msgstr "Połącz '%s' z '%s'"
 
 #: editor/connections_dialog.cpp
 msgid "Disconnect '%s' from '%s'"
@@ -2416,7 +2417,7 @@ msgstr "Nie ma zdefiniowanej sceny do uruchomienia."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Zapisz scenę przed uruchomieniem..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5180,14 +5181,12 @@ msgid "Assets ZIP File"
 msgstr "Plik ZIP assetów"
 
 #: 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 ""
-"Nie można określić ścieżki zapisu dla lightmapy obrazu.\n"
-"Zapisz scenę (obrazy będą zapisane w tym samym katalogu), lub przepisz "
-"ścieżkę zapisu z właściwości BakedLightmap."
+"Nie można określić ścieżki zapisu dla obrazów mapy światła.\n"
+"Zapisz scenę i spróbuj ponownie."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5206,26 +5205,31 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Nie udało się określić rozmiaru mapy światła. Maksymalny rozmiar jest za "
+"mały?"
 
 #: 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 ""
+"Jakaś siatka jest nieprawidłowa. Upewnij się, że wartości kanału UV2 "
+"mieszczą się w kwadratowym obszarze [0.0, 1.0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Godot został zbudowany bez wsparcia ray tracingu, mapy światła nie mogą być "
+"wypalone."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Stwórz Lightmaps"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Wybierz plik szablonu"
+msgstr "Wybierz plik wypalenia mapy światła:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6322,9 +6326,8 @@ msgid "Can only set point into a ParticlesMaterial process material"
 msgstr "Punkt można wstawić tylko w materiał przetwarzania ParticlesMaterial"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Przekonwertuj na cząsteczki CPU"
+msgstr "Przekonwertuj na CPUParticles2D"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11597,36 +11600,31 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Zacznij wypalanie"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Przygotowywanie struktur danych"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Generuj AABB"
+msgstr "Generuj bufory"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Kierunki"
+msgstr "Oświetlenie bezpośrednie"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Wcięcie w prawo"
+msgstr "Oświetlenie pośrednie"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
 msgstr "Przetwarzanie końcowe"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Kreślenie świateł:"
+msgstr "Kreślenie map światła"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12139,9 +12137,8 @@ msgid "Select device from the list"
 msgstr "Wybierz urządzenie z listy"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "Nie udało się znaleźć narzędzia zipalign."
+msgstr "Nie udało się znaleźć narzędzia \"apksigner\"."
 
 #: platform/android/export/export.cpp
 msgid ""

+ 120 - 132
editor/translations/pt.po

@@ -6,7 +6,7 @@
 # Carlos Vieira <[email protected]>, 2017.
 # João <[email protected]>, 2018.
 # João Graça <[email protected]>, 2017.
-# João Lopes <[email protected]>, 2017-2018, 2019, 2020.
+# João Lopes <[email protected]>, 2017-2018, 2019, 2020, 2021.
 # Miguel Gomes <[email protected]>, 2017.
 # Paulo Caldeira <[email protected]>, 2018.
 # Pedro Gomes <[email protected]>, 2017.
@@ -22,7 +22,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-12-31 07:09+0000\n"
+"PO-Revision-Date: 2021-01-26 03:28+0000\n"
 "Last-Translator: João Lopes <[email protected]>\n"
 "Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/"
 "godot/pt/>\n"
@@ -31,7 +31,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -566,7 +566,7 @@ msgstr "Copiar Pistas"
 
 #: editor/animation_track_editor.cpp
 msgid "Scale Selection"
-msgstr "Escalar Selecção"
+msgstr "Escalar Seleção"
 
 #: editor/animation_track_editor.cpp
 msgid "Scale From Cursor"
@@ -622,7 +622,7 @@ msgstr "Máximo de Erros Angulares:"
 
 #: editor/animation_track_editor.cpp
 msgid "Max Optimizable Angle:"
-msgstr "Angulo Máximo Otimizável:"
+msgstr "Ângulo Máximo Otimizável:"
 
 #: editor/animation_track_editor.cpp
 msgid "Optimize"
@@ -630,7 +630,7 @@ msgstr "Otimizar"
 
 #: editor/animation_track_editor.cpp
 msgid "Remove invalid keys"
-msgstr "Remover Chaves inválidas"
+msgstr "Remover chaves inválidas"
 
 #: editor/animation_track_editor.cpp
 msgid "Remove unresolved and empty tracks"
@@ -1132,7 +1132,7 @@ msgstr "Agradecimentos da Comunidade Godot!"
 
 #: editor/editor_about.cpp
 msgid "Godot Engine contributors"
-msgstr "Contribuidores da engine Godot"
+msgstr "Contribuidores do Godot Engine"
 
 #: editor/editor_about.cpp
 msgid "Project Founders"
@@ -2268,7 +2268,7 @@ msgstr "A guardar Cena"
 
 #: editor/editor_node.cpp
 msgid "Analyzing"
-msgstr "A analizar"
+msgstr "A analisar"
 
 #: editor/editor_node.cpp
 msgid "Creating Thumbnail"
@@ -2397,7 +2397,7 @@ msgstr "Não existe cena definida para execução."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Guardar cena antes de executar..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -2756,7 +2756,7 @@ msgstr "Converter Para..."
 
 #: editor/editor_node.cpp
 msgid "MeshLibrary..."
-msgstr "Bib. de Meshes..."
+msgstr "MeshLibrary..."
 
 #: editor/editor_node.cpp
 msgid "TileSet..."
@@ -2886,7 +2886,7 @@ msgid ""
 "When this option is enabled, navigation meshes and polygons will be visible "
 "in the running project."
 msgstr ""
-"Com esta opção ativa, Meshes e Polígonos de navegação serão visíveis no "
+"Com esta opção ativa, malhas de navegação e polígonos serão visíveis no "
 "projeto em execução."
 
 #: editor/editor_node.cpp
@@ -2907,7 +2907,7 @@ msgstr ""
 
 #: editor/editor_node.cpp
 msgid "Synchronize Script Changes"
-msgstr "Sicronizar alterações de script"
+msgstr "Sincronizar Alterações de Script"
 
 #: editor/editor_node.cpp
 msgid ""
@@ -3192,7 +3192,7 @@ msgstr "Sub-recurso não encontrado."
 
 #: editor/editor_plugin.cpp
 msgid "Creating Mesh Previews"
-msgstr "A criar pré-visualizações de Malha"
+msgstr "A criar Pré-visualizações de Malha"
 
 #: editor/editor_plugin.cpp
 msgid "Thumbnail..."
@@ -3427,7 +3427,7 @@ msgstr "Não consegui executar o script:"
 
 #: editor/editor_run_script.cpp
 msgid "Did you forget the '_run' method?"
-msgstr "Esqueceu-se do médodo '_run'?"
+msgstr "Esqueceu-se do método '_run'?"
 
 #: editor/editor_spin_slider.cpp
 msgid "Hold Ctrl to round to integers. Hold Shift for more precise changes."
@@ -3721,7 +3721,7 @@ msgid ""
 "\n"
 "Do you wish to overwrite them?"
 msgstr ""
-"Os seguintes ficheiros ou pastas estão em conflito com os items na "
+"Os seguintes ficheiros ou pastas estão em conflito com os itens na "
 "localização '%s':\n"
 "\n"
 "%s\n"
@@ -4319,7 +4319,7 @@ msgid ""
 "Activate to enable playback, check node warnings if activation fails."
 msgstr ""
 "AnimationTree está inativa.\n"
-"Active-a para permitir a reprodução, verifique avisos do nó se a ativação "
+"Ative-a para permitir a reprodução, verifique avisos do nó se a ativação "
 "falhar."
 
 #: editor/plugins/animation_blend_space_1d_editor.cpp
@@ -5019,7 +5019,7 @@ msgstr "Tempo expirado."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Bad download hash, assuming file has been tampered with."
-msgstr "Mau hash na transferência, assume-se que o Ficheiro foi manipulado."
+msgstr "Mau hash na transferência, assume-se que o ficheiro foi manipulado."
 
 #: editor/plugins/asset_library_editor_plugin.cpp
 msgid "Expected:"
@@ -5163,21 +5163,19 @@ msgid "Assets ZIP File"
 msgstr "Ficheiro ZIP de Ativos"
 
 #: 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ão consigo determinar um caminho para guardar imagens lightmap.\n"
-"Guarde a sua cena (para as imagens serem guardadas na mesma diretoria), ou "
-"escolha um caminho nas propriedades BakedLightmap."
+"Guarde a sua cena e tente novamente."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
 "Light' flag is on."
 msgstr ""
-"Não há Meshes para consolidar. Assegure-se que contêm um canal UV2 e que a "
+"Não há malhas para consolidar. Assegure-se que contêm um canal UV2 e que a "
 "referência 'Bake Light' flag está on."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
@@ -5187,26 +5185,31 @@ msgstr "Falha ao criar imagens lightmap, assegure-se que o caminho é gravável.
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Falha na determinação do tamanho do lightmap. Tamanho máximo do lightmap "
+"demasiado pequeno?"
 
 #: 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 ""
+"Alguma malha é inválida. Certifique-se que os valores do canal UV2 estão "
+"contidos na região quadrada [0.0,1.0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Editor Godot foi compilado sem suporte para ray tracing, lightmaps não podem "
+"ser consolidados."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Consolidar Lightmaps"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Selecionar Ficheiro de Modelo"
+msgstr "Selecionar ficheiro de consolidação de lightmap:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -5319,7 +5322,7 @@ msgid ""
 "their parent."
 msgstr ""
 "As âncoras e margens de filhos de um contentores são sobrescritas pelo seu "
-"pai."
+"progenitor."
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
 msgid "Presets for the anchors and margins values of a Control node."
@@ -5419,8 +5422,8 @@ msgid ""
 "Game Camera Override\n"
 "Overrides game camera with editor viewport camera."
 msgstr ""
-"Sobreposição de Câmara de Jogo\n"
-"Sobrepõe câmara de jogo com câmara viewport do editor."
+"Sobreposição de Câmera de Jogo\n"
+"Sobrepõe câmara de jogo com câmera viewport do editor."
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -5428,7 +5431,7 @@ msgid ""
 "Game Camera Override\n"
 "No game instance running."
 msgstr ""
-"Sobreposição de Câmara de Jogo\n"
+"Sobreposição de Câmera de Jogo\n"
 "Nenhuma instância de jogo em execução."
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
@@ -5481,7 +5484,7 @@ msgid ""
 "by their parent."
 msgstr ""
 "Atenção: as crianças de um contentor obtêm a sua posição e tamanho "
-"determinados apenas pelos seus pais."
+"determinados apenas pelos seus progenitores."
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
 #: editor/plugins/texture_region_editor_plugin.cpp
@@ -5594,7 +5597,7 @@ msgstr "Configurar Ajuste..."
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
 msgid "Snap to Parent"
-msgstr "Ajustar ao Parente"
+msgstr "Ajustar ao Progenitor"
 
 #: editor/plugins/canvas_item_editor_plugin.cpp
 msgid "Snap to Node Anchor"
@@ -5982,7 +5985,7 @@ msgstr "Não consegui criar uma forma de colisão Trimesh."
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "Create Static Trimesh Body"
-msgstr "Criar corpo estático Trimesh"
+msgstr "Criar Corpo Estático Trimesh"
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "This doesn't work on scene root!"
@@ -6027,7 +6030,7 @@ msgstr "Malha contida não é do tipo ArrayMesh."
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "UV Unwrap failed, mesh may not be manifold?"
-msgstr "Falhou o desempacotamento UV, a Malha pode não ser múltipla?"
+msgstr "Falhou o desempacotamento UV, a malha pode não ser múltipla?"
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "No mesh to debug."
@@ -6047,7 +6050,7 @@ msgstr "A Malha não tem superfície para criar contornos!"
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!"
-msgstr "Tipo primitivo de Malha não é PRIMITIVE_TRIANGLES!"
+msgstr "Tipo primitivo de malha não é PRIMITIVE_TRIANGLES!"
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "Could not create outline!"
@@ -6063,7 +6066,7 @@ msgstr "Malha"
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "Create Trimesh Static Body"
-msgstr "Criar corpo estático Trimesh"
+msgstr "Criar Corpo Estático Trimesh"
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid ""
@@ -6149,7 +6152,7 @@ msgstr "Tamanho do contorno:"
 
 #: editor/plugins/mesh_instance_editor_plugin.cpp
 msgid "UV Channel Debug"
-msgstr "Debug Canal UV"
+msgstr "Depuração Canal UV"
 
 #: editor/plugins/mesh_library_editor_plugin.cpp
 msgid "Remove item %d?"
@@ -6165,7 +6168,7 @@ msgstr ""
 
 #: editor/plugins/mesh_library_editor_plugin.cpp
 msgid "Mesh Library"
-msgstr "Bib. de Meshes"
+msgstr "Bib. de Malhas"
 
 #: editor/plugins/mesh_library_editor_plugin.cpp
 #: editor/plugins/theme_editor_plugin.cpp
@@ -6186,11 +6189,11 @@ msgstr "Atualizar a partir da Cena"
 
 #: editor/plugins/multimesh_editor_plugin.cpp
 msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr "Fonte da Malha não especificada (nem MultiMesh no nó)."
+msgstr "Fonte da malha não especificada (nem MultiMesh definido no nó)."
 
 #: editor/plugins/multimesh_editor_plugin.cpp
 msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr "Fonte da Malha não especificada (e MultiMesh não contêm Malha)."
+msgstr "Fonte da malha não especificada (e MultiMesh não contêm Malha)."
 
 #: editor/plugins/multimesh_editor_plugin.cpp
 msgid "Mesh source is invalid (invalid path)."
@@ -6222,7 +6225,7 @@ msgstr "A fonte de superfície é inválida (sem faces)."
 
 #: editor/plugins/multimesh_editor_plugin.cpp
 msgid "Select a Source Mesh:"
-msgstr "Selecione uma fonte Malha:"
+msgstr "Selecione uma Fonte Malha:"
 
 #: editor/plugins/multimesh_editor_plugin.cpp
 msgid "Select a Target Surface:"
@@ -6299,9 +6302,8 @@ msgid "Can only set point into a ParticlesMaterial process material"
 msgstr "Só pode definir um Ponto num Material ParticlesMaterial"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Converter em CPUParticles"
+msgstr "Converter em CPUParticles2D"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -6521,7 +6523,7 @@ msgstr "Criar mapa UV"
 msgid ""
 "Polygon 2D has internal vertices, so it can no longer be edited in the "
 "viewport."
-msgstr "Polygon 2D tem vértices internos, não poder ser editado no viewport."
+msgstr "Polígono 2D tem vértices internos, não pode ser editado no viewport."
 
 #: editor/plugins/polygon_2d_editor_plugin.cpp
 msgid "Create Polygon & UV"
@@ -6561,7 +6563,7 @@ msgstr "Pintar pesos dos ossos"
 
 #: editor/plugins/polygon_2d_editor_plugin.cpp
 msgid "Open Polygon 2D UV editor."
-msgstr "Abrir editor UV de Polygon2D."
+msgstr "Abrir editor UV de Polígono 2D."
 
 #: editor/plugins/polygon_2d_editor_plugin.cpp
 msgid "Polygon 2D UV Editor"
@@ -6813,7 +6815,7 @@ msgstr "Não consigo obter o script para executar."
 
 #: editor/plugins/script_editor_plugin.cpp
 msgid "Script failed reloading, check console for errors."
-msgstr "Falhou a re-leitura do script, analise os erros na consola."
+msgstr "Falhou a releitura do script, analise os erros na consola."
 
 #: editor/plugins/script_editor_plugin.cpp
 msgid "Script is not in tool mode, will not be able to run."
@@ -7014,7 +7016,7 @@ msgstr "Recarregar"
 #: editor/plugins/script_editor_plugin.cpp
 #: editor/plugins/shader_editor_plugin.cpp
 msgid "Resave"
-msgstr "Reguardar"
+msgstr "Guardar novamente"
 
 #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
 msgid "Debugger"
@@ -7030,7 +7032,7 @@ msgstr "Limpar Scripts Recentes"
 
 #: editor/plugins/script_text_editor.cpp
 msgid "Connections to method:"
-msgstr "Coneões ao método:"
+msgstr "Conexões ao método:"
 
 #: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp
 msgid "Source"
@@ -7409,7 +7411,7 @@ msgstr "Alinhar Rotação com Vista"
 
 #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
 msgid "No parent to instance a child at."
-msgstr "Sem parente para criar instância de filho."
+msgstr "Sem progenitor para criar instância de filho."
 
 #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
 msgid "This operation requires a single selected node."
@@ -7429,7 +7431,7 @@ msgstr "Vista normal"
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid "Display Wireframe"
-msgstr "Vista wireframe"
+msgstr "Vista Wireframe"
 
 #: editor/plugins/spatial_editor_plugin.cpp
 msgid "Display Overdraw"
@@ -7981,7 +7983,7 @@ msgstr "TextureRegion"
 
 #: editor/plugins/theme_editor_plugin.cpp
 msgid "Add All Items"
-msgstr "Adicionar todos os itens"
+msgstr "Adicionar Todos os Itens"
 
 #: editor/plugins/theme_editor_plugin.cpp
 msgid "Add All"
@@ -7989,7 +7991,7 @@ msgstr "Adicionar tudo"
 
 #: editor/plugins/theme_editor_plugin.cpp
 msgid "Remove All Items"
-msgstr "Remover todos os itens"
+msgstr "Remover Todos os Itens"
 
 #: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
 msgid "Remove All"
@@ -8005,11 +8007,11 @@ msgstr "Menu edição de tema."
 
 #: editor/plugins/theme_editor_plugin.cpp
 msgid "Add Class Items"
-msgstr "Adicionar itens de classe"
+msgstr "Adicionar Itens de Classe"
 
 #: editor/plugins/theme_editor_plugin.cpp
 msgid "Remove Class Items"
-msgstr "Remover itens de classe"
+msgstr "Remover Itens de Classe"
 
 #: editor/plugins/theme_editor_plugin.cpp
 msgid "Create Empty Template"
@@ -8423,7 +8425,7 @@ msgstr ""
 
 #: editor/plugins/tile_set_editor_plugin.cpp
 msgid "Delete selected Rect."
-msgstr "Eliminar Rect seleccionado."
+msgstr "Eliminar Rect selecionado."
 
 #: editor/plugins/tile_set_editor_plugin.cpp
 msgid ""
@@ -9149,8 +9151,8 @@ msgstr ""
 "Função SmoothStep( escalar(limite0), escalar(limite1), escalar(x) ).\n"
 "\n"
 "Devolve 0.0 se 'x' for menor que 'limite0' e 1.0 se 'x' for maior que "
-"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 and 1.0 "
-"a usar polinomiais Hermite."
+"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 e 1.0 "
+"usando polinomiais Hermite."
 
 #: editor/plugins/visual_shader_editor_plugin.cpp
 msgid ""
@@ -9367,8 +9369,8 @@ msgstr ""
 "Função SmoothStep( vetor(limite0), vetor(limite1), vetor(x) ).\n"
 "\n"
 "Devolve 0.0 se 'x' for menor que 'limite0' e 1.0 se 'x' for maior que "
-"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 and 1.0 "
-"a usar polinomiais Hermite."
+"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 e 1.0 "
+"usando polinomiais Hermite."
 
 #: editor/plugins/visual_shader_editor_plugin.cpp
 msgid ""
@@ -9381,8 +9383,8 @@ msgstr ""
 "Função SmoothStep( escalar(limite0), escalar(limite1), vetor(x) ).\n"
 "\n"
 "Devolve 0.0 se 'x' for menor que 'limite0' e 1.0 se 'x' for maior que "
-"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 and 1.0 "
-"a usar polinomiais Hermite."
+"'limite1'. Caso contrário o valor devolvido é interpolado entre 0.0 e 1.0 "
+"usando polinomiais Hermite."
 
 #: editor/plugins/visual_shader_editor_plugin.cpp
 msgid ""
@@ -9449,7 +9451,7 @@ msgid ""
 "direction of camera (pass associated inputs to it)."
 msgstr ""
 "Devolve queda baseada no produto escalar da normal à superfície e da direção "
-"da câmara (passa entradas associadas)."
+"da câmera (passa entradas associadas)."
 
 #: editor/plugins/visual_shader_editor_plugin.cpp
 msgid ""
@@ -10471,7 +10473,7 @@ msgstr "Nome do nó"
 
 #: editor/rename_dialog.cpp
 msgid "Node's parent name, if available"
-msgstr "Nome do parente do nó, se disponível"
+msgstr "Nome do progenitor do nó, se disponível"
 
 #: editor/rename_dialog.cpp
 msgid "Node type"
@@ -10567,11 +10569,11 @@ msgstr "No carácter %s"
 
 #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
 msgid "Reparent Node"
-msgstr "Rer Nó"
+msgstr "Reassociar Nó"
 
 #: editor/reparent_dialog.cpp
 msgid "Reparent Location (Select new Parent):"
-msgstr "Repôr localização (selecionar novo Parente):"
+msgstr "Reassociar Localização (Selecionar novo Progenitor):"
 
 #: editor/reparent_dialog.cpp
 msgid "Keep Global Transform"
@@ -10579,7 +10581,7 @@ msgstr "Manter transformação global"
 
 #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
 msgid "Reparent"
-msgstr "Rer"
+msgstr "Reassociar"
 
 #: editor/run_settings_dialog.cpp
 msgid "Run Mode:"
@@ -10603,7 +10605,7 @@ msgstr "Configurações de Execução da Cena"
 
 #: editor/scene_tree_dock.cpp
 msgid "No parent to instance the scenes at."
-msgstr "Nenhum parente para instância das cenas."
+msgstr "Nenhum progenitor para instância das cenas."
 
 #: editor/scene_tree_dock.cpp
 msgid "Error loading scene from %s"
@@ -10639,11 +10641,11 @@ msgstr "Esta operação não pode ser feita na raiz da árvore."
 
 #: editor/scene_tree_dock.cpp
 msgid "Move Node In Parent"
-msgstr "Mover Nó no Parente"
+msgstr "Mover Nó no Progenitor"
 
 #: editor/scene_tree_dock.cpp
 msgid "Move Nodes In Parent"
-msgstr "Mover Nós no Parente"
+msgstr "Mover Nós no Progenitor"
 
 #: editor/scene_tree_dock.cpp
 msgid "Duplicate Node(s)"
@@ -10652,7 +10654,7 @@ msgstr "Duplicar Nó(s)"
 #: editor/scene_tree_dock.cpp
 msgid "Can't reparent nodes in inherited scenes, order of nodes can't change."
 msgstr ""
-"Não consigo mudar nó em cenas herdadas, a ordem dos nós não pode mudar."
+"Não consigo reassociar nós em cenas herdadas, a ordem dos nós não pode mudar."
 
 #: editor/scene_tree_dock.cpp
 msgid "Node must belong to the edited scene to become root."
@@ -10823,7 +10825,7 @@ msgstr "Mudar tipo"
 
 #: editor/scene_tree_dock.cpp
 msgid "Reparent to New Node"
-msgstr "Repôr o Novo Nó"
+msgstr "Reassociar a Novo Nó"
 
 #: editor/scene_tree_dock.cpp
 msgid "Make Scene Root"
@@ -11047,7 +11049,7 @@ msgstr "Nome de classe inválido."
 
 #: editor/script_create_dialog.cpp
 msgid "Invalid inherited parent name or path."
-msgstr "Nome ou caminho de parente herdado inválido."
+msgstr "Nome ou caminho herdado do progenitor inválido."
 
 #: editor/script_create_dialog.cpp
 msgid "Script path/name is valid."
@@ -11171,11 +11173,11 @@ msgstr "Empilhar Frames"
 
 #: editor/script_editor_debugger.cpp
 msgid "Profiler"
-msgstr "Profiler"
+msgstr "Analisador"
 
 #: editor/script_editor_debugger.cpp
 msgid "Network Profiler"
-msgstr "Traçador de Rede"
+msgstr "Analisador de Rede"
 
 #: editor/script_editor_debugger.cpp
 msgid "Monitor"
@@ -11279,11 +11281,11 @@ msgstr "Mudar ângulo de emissão de AudioStreamPlayer3D"
 
 #: editor/spatial_editor_gizmos.cpp
 msgid "Change Camera FOV"
-msgstr "Mudar FOV da câmara"
+msgstr "Mudar FOV da Câmera"
 
 #: editor/spatial_editor_gizmos.cpp
 msgid "Change Camera Size"
-msgstr "Mudar tamanho da câmara"
+msgstr "Mudar tamanho da Câmera"
 
 #: editor/spatial_editor_gizmos.cpp
 msgid "Change Notifier AABB"
@@ -11331,7 +11333,7 @@ msgstr "Mudar Raio do Cilindro"
 
 #: modules/csg/csg_gizmos.cpp
 msgid "Change Cylinder Height"
-msgstr "Mudar Altura do CIlindro"
+msgstr "Mudar Altura do Cilindro"
 
 #: modules/csg/csg_gizmos.cpp
 msgid "Change Torus Inner Radius"
@@ -11557,44 +11559,39 @@ msgstr "Distância de escolha:"
 
 #: modules/gridmap/grid_map_editor_plugin.cpp
 msgid "Filter meshes"
-msgstr "Meshes de filtro"
+msgstr "Filtrar malhas"
 
 #: modules/gridmap/grid_map_editor_plugin.cpp
 msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr "Dá um recurso MeshLibrary a este GridMap para usar os seus meshes."
+msgstr "Dê um recurso MeshLibrary a este GridMap para usar as suas malhas."
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Começar Consolidação"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "A preparar estruturas de dados"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Gerar AABB"
+msgstr "Gerar buffers"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Direções"
+msgstr "Iluminação direta"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Indentar à direita"
+msgstr "Iluminação indireta"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
 msgstr "Pós-processamento"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "A traçar Luzes:"
+msgstr "A Traçar lightmaps"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -11610,7 +11607,7 @@ msgstr "Consolidar NavMesh"
 
 #: modules/recast/navigation_mesh_editor_plugin.cpp
 msgid "Clear the navigation mesh."
-msgstr "Limpar a Malha de navegação."
+msgstr "Limpar a malha de navegação."
 
 #: modules/recast/navigation_mesh_generator.cpp
 msgid "Setting up Configuration..."
@@ -11634,7 +11631,7 @@ msgstr "A construir heightfield compacto..."
 
 #: modules/recast/navigation_mesh_generator.cpp
 msgid "Eroding walkable area..."
-msgstr "A corroer a Área caminhável..."
+msgstr "A corroer a área caminhável..."
 
 #: modules/recast/navigation_mesh_generator.cpp
 msgid "Partitioning..."
@@ -11650,11 +11647,11 @@ msgstr "A criar polymesh..."
 
 #: modules/recast/navigation_mesh_generator.cpp
 msgid "Converting to native navigation mesh..."
-msgstr "A converter para Malha de navegação nativa..."
+msgstr "A converter para malha de navegação nativa..."
 
 #: modules/recast/navigation_mesh_generator.cpp
 msgid "Navigation Mesh Generator Setup:"
-msgstr "Configuração do gerador da Malha de navegação:"
+msgstr "Configuração do Gerador da Malha de Navegação:"
 
 #: modules/recast/navigation_mesh_generator.cpp
 msgid "Parsing Geometry..."
@@ -12110,9 +12107,8 @@ msgid "Select device from the list"
 msgstr "Selecionar aparelho da lista"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "Incapaz de localizar a ferramenta zipalign."
+msgstr "Incapaz de localizar a ferramenta 'apksigner'."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12125,7 +12121,7 @@ msgstr ""
 #: platform/android/export/export.cpp
 msgid "Debug keystore not configured in the Editor Settings nor in the preset."
 msgstr ""
-"Depuração de keystore não configurada nas Configurações do Editor e nem na "
+"Keystore de depuração não configurada nas Configurações do Editor e nem na "
 "predefinição."
 
 #: platform/android/export/export.cpp
@@ -12134,18 +12130,13 @@ msgstr ""
 "Lançamento de keystore configurado incorretamente na predefinição exportada."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
 msgstr ""
-"Caminho inválido de Android SDK para compilação personalizada no Editor de "
-"Configurações."
+"É necessário um caminho válido para o Android SDK no Editor de Configurações."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
-"Caminho inválido de Android SDK para compilação personalizada no Editor de "
-"Configurações."
+msgstr "Caminho inválido para o Android SDK no Editor de Configurações."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12153,13 +12144,12 @@ msgstr "Diretoria 'platform-tools' em falta!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
-msgstr ""
+msgstr "Incapaz de encontrar o comando adb das ferramentas Android SDK."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Caminho inválido de Android SDK para compilação personalizada no Editor de "
+"Por favor confirme a pasta do Android SDK especificada no Editor de "
 "Configurações."
 
 #: platform/android/export/export.cpp
@@ -12168,7 +12158,7 @@ msgstr "Diretoria 'build-tools' em falta!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
-msgstr ""
+msgstr "Incapaz de encontrar o comando apksigner das ferramentas Android SDK."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12360,7 +12350,7 @@ msgstr "Cor de fundo inválida."
 
 #: platform/uwp/export/export.cpp
 msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr "Inválidas dimensões da imagem do logotipo do Store (deve ser 50x50)."
+msgstr "Dimensões inválidas da imagem do logotipo do Store (deve ser 50x50)."
 
 #: platform/uwp/export/export.cpp
 msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
@@ -12481,7 +12471,7 @@ msgstr "Nó B tem de ser um PhysicsBody2D"
 
 #: scene/2d/joints_2d.cpp
 msgid "Joint is not connected to two PhysicsBody2Ds"
-msgstr "Junção não está conetada a dois PhysicsBody2Ds"
+msgstr "Junção não está conectada a dois PhysicsBody2Ds"
 
 #: scene/2d/joints_2d.cpp
 msgid "Node A and Node B must be different PhysicsBody2Ds"
@@ -12582,7 +12572,7 @@ msgstr "Esta corrente de Bone2D deve terminar num nó Skeleton2D."
 
 #: scene/2d/skeleton_2d.cpp
 msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
-msgstr "Um Bone2D só funciona com um nó parente Skeleton2D ou Bone2D."
+msgstr "Um Bone2D só funciona com um nó progenitor Skeleton2D ou Bone2D."
 
 #: scene/2d/skeleton_2d.cpp
 msgid ""
@@ -12595,25 +12585,25 @@ msgid ""
 "to. Please use it as a child of Area2D, StaticBody2D, RigidBody2D, "
 "KinematicBody2D, etc. to give them a shape."
 msgstr ""
-"TileMap com Usar Parente ativo precisa de um parente CollisionObject2D para "
-"lhe dar formas. Use-o como um filho de Area2D, StaticBody2D, RigidBody2D, "
-"KinematicBody2D, etc. para lhes dar uma forma."
+"TileMap com Usar Progenitor ativo precisa de um progenitor CollisionObject2D "
+"para lhe dar formas. Use-o como um filho de Area2D, StaticBody2D, "
+"RigidBody2D, KinematicBody2D, etc. para lhes dar uma forma."
 
 #: scene/2d/visibility_notifier_2d.cpp
 msgid ""
 "VisibilityEnabler2D works best when used with the edited scene root directly "
 "as parent."
 msgstr ""
-"VisibilityEnabler2D funciona melhor quando usado diretamente como parente na "
-"cena raiz editada."
+"VisibilityEnabler2D funciona melhor quando usado diretamente como progenitor "
+"na cena raiz editada."
 
 #: scene/3d/arvr_nodes.cpp
 msgid "ARVRCamera must have an ARVROrigin node as its parent."
-msgstr "ARVRCamera precisa de um nó ARVROrigin como parente."
+msgstr "ARVRCamera precisa de um nó ARVROrigin como progenitor."
 
 #: scene/3d/arvr_nodes.cpp
 msgid "ARVRController must have an ARVROrigin node as its parent."
-msgstr "ARVRController precisa de um nó ARVROrigin como parente."
+msgstr "ARVRController precisa de um nó ARVROrigin como progenitor."
 
 #: scene/3d/arvr_nodes.cpp
 msgid ""
@@ -12625,7 +12615,7 @@ msgstr ""
 
 #: scene/3d/arvr_nodes.cpp
 msgid "ARVRAnchor must have an ARVROrigin node as its parent."
-msgstr "ARVRAnchor precisa de um nó ARVROrigin como parente."
+msgstr "ARVRAnchor precisa de um nó ARVROrigin como progenitor."
 
 #: scene/3d/arvr_nodes.cpp
 msgid ""
@@ -12641,27 +12631,23 @@ msgstr "ARVROrigin exige um nó filho ARVRCamera."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "A procurar malhas e luzes"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "A analisar geometria..."
+msgstr "A preparar geometria (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Ver ambiente"
+msgstr "A preparar ambiente"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "A gerar Lightmaps"
+msgstr "A gerar captura"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "A gerar Lightmaps"
+msgstr "A guardar lightmaps"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -12724,7 +12710,7 @@ msgstr "ConcavePolygonShape apenas suporta RigidBody no modo estático."
 
 #: scene/3d/cpu_particles.cpp
 msgid "Nothing is visible because no mesh has been assigned."
-msgstr "Nada é visível porque nenhuma Malha foi atribuída."
+msgstr "Nada é visível porque nenhuma malha foi atribuída."
 
 #: scene/3d/cpu_particles.cpp
 msgid ""
@@ -12736,7 +12722,7 @@ msgstr ""
 
 #: scene/3d/gi_probe.cpp
 msgid "Plotting Meshes"
-msgstr "A desenhar Meshes"
+msgstr "A Traçar Malhas"
 
 #: scene/3d/gi_probe.cpp
 msgid "Finishing Plot"
@@ -12753,7 +12739,7 @@ msgstr ""
 #: scene/3d/interpolated_camera.cpp
 msgid ""
 "InterpolatedCamera has been deprecated and will be removed in Godot 4.0."
-msgstr "A InterpolatedCamerda foi deprecada e será removida no Godot 4.0."
+msgstr "InterpolatedCamerda foi descontinuada e será removida no Godot 4.0."
 
 #: scene/3d/light.cpp
 msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
@@ -12787,7 +12773,7 @@ msgstr ""
 msgid ""
 "Nothing is visible because meshes have not been assigned to draw passes."
 msgstr ""
-"Nada é visível porque não foram atribuídas Meshes aos passos de desenho."
+"Nada é visível porque não foram atribuídas malhas aos passos de desenho."
 
 #: scene/3d/particles.cpp
 msgid ""
@@ -12807,7 +12793,7 @@ msgid ""
 "parent Path's Curve resource."
 msgstr ""
 "ROTATION_ORIENTED de PathFollow requer \"Up Vector\" ativado no recurso de "
-"Curva do Caminho do seu pai."
+"Curva do Caminho do seu progenitor."
 
 #: scene/3d/physics_body.cpp
 msgid ""
@@ -12833,7 +12819,7 @@ msgstr "Nó B tem de ser um PhysicsBody"
 
 #: scene/3d/physics_joint.cpp
 msgid "Joint is not connected to any PhysicsBodies"
-msgstr "Junção não está conetada a quaisquer PhysicsBodies"
+msgstr "Junção não está conectada a quaisquer PhysicsBodies"
 
 #: scene/3d/physics_joint.cpp
 msgid "Node A and Node B must be different PhysicsBodies"
@@ -12897,7 +12883,7 @@ 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 ""
-"Este WorldEnvironment ė ignorado. Pode adicionar uma Camera (para cenas 3D) "
+"Este WorldEnvironment é ignorado. Pode adicionar uma Câmera (para cenas 3D) "
 "ou definir o Modo Background deste ambiente como Canvas (para cenas 2D)."
 
 #: scene/animation/animation_blend_tree.cpp
@@ -13064,6 +13050,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"A porta coletora está conectada mas não é usada. Considere mudar a origem "
+"para 'SamplerPort'."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 33 - 29
editor/translations/pt_BR.po

@@ -106,12 +106,16 @@
 # ThiagoCTN <[email protected]>, 2020.
 # Alec Santos <[email protected]>, 2020.
 # Augusto Milão <[email protected]>, 2021.
+# Gabriel Gavazzi Felix <[email protected]>, 2021.
+# Lucas Dantas <[email protected]>, 2021.
+# Carlos Bonifacio <[email protected]>, 2021.
+# Lucas Castro <[email protected]>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2021-01-06 18:29+0000\n"
-"Last-Translator: Augusto Milão <augusto.milao01@gmail.com>\n"
+"PO-Revision-Date: 2021-01-26 03:28+0000\n"
+"Last-Translator: Lucas Castro <castroclucas@gmail.com>\n"
 "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
 "godot-engine/godot/pt_BR/>\n"
 "Language: pt_BR\n"
@@ -119,7 +123,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1856,7 +1860,7 @@ msgstr "Novo"
 #: editor/editor_feature_profile.cpp editor/editor_node.cpp
 #: editor/project_manager.cpp
 msgid "Import"
-msgstr "Import"
+msgstr "Importar"
 
 #: editor/editor_feature_profile.cpp editor/project_export.cpp
 msgid "Export"
@@ -2482,7 +2486,7 @@ msgstr "Não há cena definida para rodar."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Salvar a cena antes de executar..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -4010,19 +4014,16 @@ msgid "Searching..."
 msgstr "Procurando..."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d match in %d file."
-msgstr "%d correspondências."
+msgstr "%d correspondência em %d arquivo."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d matches in %d file."
-msgstr "%d correspondências."
+msgstr "%d correspondências em %d arquivo."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d matches in %d files."
-msgstr "%d correspondências."
+msgstr "%d correspondências em %d arquivos."
 
 #: editor/groups_editor.cpp
 msgid "Add to Group"
@@ -5263,14 +5264,12 @@ msgid "Assets ZIP File"
 msgstr "Arquivo ZIP de Assets"
 
 #: 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ão foi possível determinar um caminho para salvar as imagens do lightmap.\n"
-"Salve sua cena (para que as imagens sejam salvas no mesmo diretório), ou "
-"escolha um caminho nas propriedades do BakedLightmap."
+"Salve sua cena e tente novamente."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5289,26 +5288,31 @@ msgstr ""
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
 msgstr ""
+"Falha ao determinar o tamanho do lightmap. Tamanho máximo do lightmap é "
+"muito baixo?"
 
 #: 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 ""
+"Alguma malha é inválida. Certifique-se de que os valores do canal UV2 estão "
+"contidos na região quadrada [0.0,1.0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"O editor Godot foi construído sem suporte à ray tracing, os lightmaps não "
+"podem ser bakeados."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
-msgstr "Preparar Lightmaps"
+msgstr "Bake Lightmaps"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Selecionar o Arquivo de Modelo"
+msgstr "Selecione o arquivo de lightmap bake:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6404,9 +6408,8 @@ msgstr ""
 "Só é permitido colocar um ponto em um material processador ParticlesMaterial"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Converter para Particulas CPU"
+msgstr "Converter para CPUParticles2D"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -8858,9 +8861,8 @@ msgid "Visual Shader Input Type Changed"
 msgstr "Tipo de Entrada de Shader Visual Alterado"
 
 #: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
 msgid "UniformRef Name Changed"
-msgstr "Definir Nome Uniforme"
+msgstr "UniformRef Name foi altearado"
 
 #: editor/plugins/visual_shader_editor_plugin.cpp
 msgid "Vertex"
@@ -9575,7 +9577,6 @@ msgstr ""
 "uniformes e constantes."
 
 #: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
 msgid "A reference to an existing uniform."
 msgstr "Uma referência a um uniforme existente."
 
@@ -11683,17 +11684,15 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Preparando estruturas de dados"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Gerar AABB"
+msgstr "Gerar buffers"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Direções"
+msgstr "Direct lightning"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 #, fuzzy
@@ -12227,7 +12226,7 @@ msgstr "Selecione um dispositivo da lista"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find the 'apksigner' tool."
-msgstr ""
+msgstr "Não foi possível encontrar a ferramenta 'apksigner'."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12270,6 +12269,7 @@ msgstr "Diretório 'ferramentas-da-plataforma' ausente!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
 msgstr ""
+"Não foi possível encontrar o comando adb nas ferramentas do Android SDK."
 
 #: platform/android/export/export.cpp
 #, fuzzy
@@ -12286,6 +12286,8 @@ msgstr "Diretório 'ferramentas-da-plataforma' ausente!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
 msgstr ""
+"Não foi possível encontrar o comando apksigner nas ferramentas de build do "
+"Android SDK."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12755,7 +12757,7 @@ msgstr "ARVROrigin necessita um nó ARVRCamera como filho."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Encontrando malhas e luzes"
 
 #: scene/3d/baked_lightmap.cpp
 #, fuzzy
@@ -13184,6 +13186,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"A porta sampler está conectada mas não está sendo usada. Considere alterar a "
+"fonte para 'SamplerPort'."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 33 - 46
editor/translations/ru.po

@@ -95,7 +95,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-01-08 19:32+0000\n"
+"PO-Revision-Date: 2021-01-21 08:48+0000\n"
 "Last-Translator: Danil Alexeev <[email protected]>\n"
 "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
 "godot/ru/>\n"
@@ -105,7 +105,7 @@ 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 4.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2468,7 +2468,7 @@ msgstr "Нет открытой сцены для запуска."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Сохранение сцены перед запуском..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5232,14 +5232,12 @@ msgid "Assets ZIP File"
 msgstr "ZIP файл ассетов"
 
 #: 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 ""
-"Не удается определить путь для сохранения lightmap.\n"
-"Сохраните ваши сцены (чтобы изображения были сохранены в том же разделе), "
-"или выберите путь сохранения в свойствах BakedLightmap."
+"Не удалось определить путь для сохранения изображений карты освещения.\n"
+"Сохраните сцену и попробуйте ещё раз."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5257,26 +5255,31 @@ 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 ""
+"Некоторая полисетка некорректна. Убедитесь, что значения канала UV2 "
+"находятся в квадратной области [0.0,1.0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Редактор Godot был собран без поддержки трассировки лучей, карты освещения "
+"невозможно запечь."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Запекать карты освещения"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Выбрать файл шаблона"
+msgstr "Выберите файл запекания карты освещения:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6368,9 +6371,8 @@ msgid "Can only set point into a ParticlesMaterial process material"
 msgstr "Возможно установить точку только в ParticlesMaterial материал"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Преобразовать в CPUParticles"
+msgstr "Преобразовать в CPUParticles2D"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11646,36 +11648,31 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Начать запекание"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Подготовка структур данных"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Генерировать AABB"
+msgstr "Генерировать буфферы"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Направления"
+msgstr "Прямое освещение"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Отступ вправо"
+msgstr "Непрямое освещение"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
-msgstr "Пост-обработка"
+msgstr "Постобработка"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Построение света:"
+msgstr "Построение карт освещения"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12189,9 +12186,8 @@ msgid "Select device from the list"
 msgstr "Выберите устройство из списка"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "Не удалось найти инструмент zipalign."
+msgstr "Не удалось найти инструмент «apksigner»."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12212,18 +12208,13 @@ msgstr ""
 "Хранилище ключей не настроено ни в настройках редактора, ни в предустановках."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
 msgstr ""
-"Неправильный путь к Android SDK для пользовательской сборки в настройках "
-"редактора."
+"Требуется указать действительный путь к Android SDK в Настройках редактора."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
-"Неправильный путь к Android SDK для пользовательской сборки в настройках "
-"редактора."
+msgstr "Недействительный путь Android SDK в Настройках редактора."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12231,14 +12222,12 @@ msgstr "Директория «platform-tools» отсутствует!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
-msgstr ""
+msgstr "Не удалось найти команду adb в Android SDK platform-tools."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Неправильный путь к Android SDK для пользовательской сборки в настройках "
-"редактора."
+"Пожалуйста, проверьте каталог Android SDK, указанный в Настройках редактора."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'build-tools' directory!"
@@ -12246,7 +12235,7 @@ msgstr "Директория «build-tools» отсутствует!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
-msgstr ""
+msgstr "Не удалось найти команду apksigner в Android SDK build-tools."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12719,27 +12708,23 @@ msgstr "ARVROrigin требует дочерний узел ARVRCamera."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Поиск полисеток и источников света"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Анализ геометрии..."
+msgstr "Подготовка геометрии (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Окружение"
+msgstr "Подготовка окружения"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Создание карт освещения"
+msgstr "Создание захвата"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Создание карт освещения"
+msgstr "Сохранение карт освещения"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13143,6 +13128,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"Порт сэмплера подключен, но не используется. Рассмотрите возможность "
+"изменения источника на «SamplerPort»."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 39 - 52
editor/translations/tr.po

@@ -55,12 +55,13 @@
 # Yusuf Osman YILMAZ <[email protected]>, 2020.
 # furkan atalar <[email protected]>, 2020.
 # Suleyman Poyraz <[email protected]>, 2020.
+# Çağlar KOPARIR <[email protected]>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: Godot Engine editor\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-12-14 11:03+0000\n"
-"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
+"Last-Translator: Çağlar KOPARIR <ckoparir@gmail.com>\n"
 "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
 "godot/tr/>\n"
 "Language: tr\n"
@@ -68,7 +69,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.4-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2430,7 +2431,7 @@ msgstr "Çalıştırmak için herhangi bir sahne seçilmedi."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Çalıştırmadan önce sahneyi kaydedin..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -3951,19 +3952,16 @@ msgid "Searching..."
 msgstr "Aranıyor..."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d match in %d file."
-msgstr "%d eşleşme."
+msgstr "%d dosyada %d eşleşme."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d matches in %d file."
-msgstr "%d eşleşme."
+msgstr "%d dosyada %d eşleşme."
 
 #: editor/find_in_files.cpp
-#, fuzzy
 msgid "%d matches in %d files."
-msgstr "%d eşleşme."
+msgstr "%d dosyada %d eşleşme."
 
 #: editor/groups_editor.cpp
 msgid "Add to Group"
@@ -5201,14 +5199,12 @@ msgid "Assets ZIP File"
 msgstr "Varlıkların ZIP Dosyası"
 
 #: 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 ""
-"Lightmap resimleri için kaydetme yolu belirlenemiyor.\n"
-"Sahneni kaydet (resimler aynı klasöre kaydedilmeli), ya da BakedLightmap "
-"özelliklerinden bir kayıt yolu seçin."
+"Lightmap dosyaları için kaydetme yolu belirlenemiyor.\n"
+"Sahneyi kaydedip tekrar deneyin."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5226,27 +5222,30 @@ msgstr ""
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Failed determining lightmap size. Maximum lightmap size too small?"
-msgstr ""
+msgstr "Lightmap boyutu belirlenemedi. Lightmap boyutu mu çok küçuk?"
 
 #: 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 ""
+"Bazı örgüler geçersiz. [0.0,1.0] bölgesinin UV2 kanal değerlerini "
+"içerdiğinden emin olun."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Godot editör ışın yansıma desteği olmadan derlenmiş, ışık haritaları "
+"pişirilemez."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Işık-Haritalarını Pişir"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Şablon Dosyası Seç"
+msgstr "Işık Haritası pişirme dosyası seçiniz:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6338,9 +6337,8 @@ msgid "Can only set point into a ParticlesMaterial process material"
 msgstr "Nokta sadece ParçacıkMateryal işlem materyalinin içinde ayarlanabilir"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "CPUParçacıklar 'a dönüştür"
+msgstr "2BİşlemciPartikül'e dönüştür"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11603,36 +11601,31 @@ msgstr "Model olarak kullanması için bu GridMap'e MeshLibrary kaynağı atayı
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Pişirmeye Başla"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Veri yapıları hazırlanıyor"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "AABB Üret"
+msgstr "Arabellek Oluştur"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Yönler"
+msgstr "Doğrudan aydınlatma"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Sağa Girintile"
+msgstr "Dolaylı aydınlatma"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
-msgstr "Artçıl-İşlem"
+msgstr "Rötuş"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Örüntüler Haritalanıyor:"
+msgstr "Işık haritalarını çizme"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12144,9 +12137,8 @@ msgid "Select device from the list"
 msgstr "Listeden aygıt seç"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "Zipalign aracı bulunamıyor."
+msgstr "'apksigner' aracı bulunamıyor."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12168,14 +12160,12 @@ msgstr ""
 "serbest bırakın."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
-msgstr "Editör Ayarlarında özel derleme için geçersiz Android SDK yolu."
+msgstr "Editör Ayarlarında geçerli bir Android SDK yolu gerekli."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr "Editör Ayarlarında özel derleme için geçersiz Android SDK yolu."
+msgstr "Editör Ayarlarında geçersiz Android SDK yolu."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12183,12 +12173,12 @@ msgstr "Eksik 'platform araçları' dizini!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
-msgstr ""
+msgstr "Android SDK platform-tools'un adb komutu bulunamıyor."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
-msgstr "Editör Ayarlarında özel derleme için geçersiz Android SDK yolu."
+msgstr ""
+"Lütfen Editör Ayarlarında girilen Android SDK klasörünü kontrol ediniz."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'build-tools' directory!"
@@ -12196,7 +12186,7 @@ msgstr "Eksik 'inşa-araçları' dizini!"
 
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
-msgstr ""
+msgstr "Android SDK platform-tools'un apksigner komutu bulunamıyor."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12668,27 +12658,23 @@ msgstr "ARVROrigin bir ARVRCamera alt düğümü gerektirir."
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Örgü ve ışıkları bulmak"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Geometri Ayrıştırılıyor..."
+msgstr "Geometri hazırlanıyor (%d/%d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Ortamı Göster"
+msgstr "Ortam hazırlanıyor"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Işık-haritaları Üretiliyor"
+msgstr "Yakalama oluşturuluyor"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Işık-haritaları Üretiliyor"
+msgstr "Işık-haritaları kaydediliyor"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13037,9 +13023,8 @@ msgid "Must use a valid extension."
 msgstr "Geçerli bir uzantı kullanılmalı."
 
 #: scene/gui/graph_edit.cpp
-#, fuzzy
 msgid "Enable grid minimap."
-msgstr "Yapışmayı Enkinleştir"
+msgstr "Izgara mini haritasını etkinleştir."
 
 #: scene/gui/popup.cpp
 msgid ""
@@ -13099,6 +13084,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"Örnekleyici bağlantı noktası bağlandı ama kullanılmadı. Kaynağı "
+"'ÖrnekleyiciBağlantıNoktası' olarak değiştirmeyi düşünün."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 33 - 43
editor/translations/uk.po

@@ -3,7 +3,7 @@
 # Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
 # This file is distributed under the same license as the Godot source code.
 # Aleksandr <[email protected]>, 2017.
-# Yuri Chornoivan <[email protected]>, 2018, 2019, 2020.
+# Yuri Chornoivan <[email protected]>, 2018, 2019, 2020, 2021.
 # Андрій Бандура <[email protected]>, 2018.
 # Гидеон Теон <[email protected]>, 2017.
 # Максим Якимчук <[email protected]>, 2018, 2019.
@@ -20,7 +20,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ukrainian (Godot Engine)\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-12-29 21:52+0000\n"
+"PO-Revision-Date: 2021-01-16 01:29+0000\n"
 "Last-Translator: Yuri Chornoivan <[email protected]>\n"
 "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
 "godot/uk/>\n"
@@ -30,7 +30,7 @@ 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 4.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2401,7 +2401,7 @@ msgstr "Немає визначеної сцени для виконання."
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "Зберегти сцену перед запуском…"
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5178,14 +5178,12 @@ msgid "Assets ZIP File"
 msgstr "ZIP файл ресурсів"
 
 #: 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"
-"Збережіть вашу сцену (щоб зображення були збережені в одній теці), або "
-"виберіть шлях зберігання у властивостях BakedLightmap."
+"Збережіть вашу сцену і повторіть спробу."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
@@ -5204,26 +5202,31 @@ 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 ""
+"Частина сітки є некоректною. Переконайтеся, що значення каналів UV2 "
+"потрапляють до квадратної області [0.0,1.0]."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid ""
 "Godot editor was built without ray tracing support, lightmaps can't be baked."
 msgstr ""
+"Редактор Godot було зібрано без підтримки трасування променів. Карти "
+"освітлення не вдасться побудувати."
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
 msgid "Bake Lightmaps"
 msgstr "Запікати карти освітлення"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "Виберіть файл шаблону"
+msgstr "Виберіть файл приготування карти освітлення:"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -6318,9 +6321,8 @@ msgstr ""
 "Поставити точку можна тільки в процедурному матеріалі ParticlesMaterial"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
 msgid "Convert to CPUParticles2D"
-msgstr "Перетворити на CPUParticles"
+msgstr "Перетворити на CPUParticles2D"
 
 #: editor/plugins/particles_2d_editor_plugin.cpp
 #: editor/plugins/particles_editor_plugin.cpp
@@ -11605,36 +11607,31 @@ msgstr ""
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Begin Bake"
-msgstr ""
+msgstr "Почати обробку"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
 msgid "Preparing data structures"
-msgstr ""
+msgstr "Готуємо структури даних"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Generate buffers"
-msgstr "Генерувати AABB"
+msgstr "Створити буфери"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Direct lighting"
-msgstr "Напрямки"
+msgstr "Безпосереднє освітлення"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Indirect lighting"
-msgstr "Збільшити відступ"
+msgstr "Опосередковане освітлення"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Post processing"
 msgstr "Пост-обробка"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "Побудова світла:"
+msgstr "Креслення карт освітлення"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"
@@ -12150,9 +12147,8 @@ msgid "Select device from the list"
 msgstr "Вибрати пристрій зі списку"
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Unable to find the 'apksigner' tool."
-msgstr "Не вдалося знайти програму zipalign."
+msgstr "Не вдалося знайти програму apksigner."
 
 #: platform/android/export/export.cpp
 msgid ""
@@ -12174,18 +12170,13 @@ msgstr ""
 "У шаблоні експортування неправильно налаштовано сховище ключів випуску."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "A valid Android SDK path is required in Editor Settings."
 msgstr ""
-"Некоректний шлях до SDK для Android для нетипового збирання у параметрах "
-"редактора."
+"У параметрах редактора має бути вказано коректний шлях до SDK для Android."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Invalid Android SDK path in Editor Settings."
-msgstr ""
-"Некоректний шлях до SDK для Android для нетипового збирання у параметрах "
-"редактора."
+msgstr "Некоректний шлях до SDK для Android у параметрах редактора."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'platform-tools' directory!"
@@ -12194,13 +12185,13 @@ msgstr "Не знайдено каталогу «platform-tools»!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK platform-tools' adb command."
 msgstr ""
+"Не вдалося знайти програми adb із інструментів платформи SDK для Android."
 
 #: platform/android/export/export.cpp
-#, fuzzy
 msgid "Please check in the Android SDK directory specified in Editor Settings."
 msgstr ""
-"Некоректний шлях до SDK для Android для нетипового збирання у параметрах "
-"редактора."
+"Будь ласка, перевірте, чи правильно вказано каталог SDK для Android у "
+"параметрах редактора."
 
 #: platform/android/export/export.cpp
 msgid "Missing 'build-tools' directory!"
@@ -12209,6 +12200,7 @@ msgstr "Не знайдено каталогу «build-tools»!"
 #: platform/android/export/export.cpp
 msgid "Unable to find Android SDK build-tools' apksigner command."
 msgstr ""
+"Не вдалося знайти програми apksigner з інструментів збирання SDK для Android."
 
 #: platform/android/export/export.cpp
 msgid "Invalid public key for APK expansion."
@@ -12696,27 +12688,23 @@ msgstr "ARVROrigin повинен мати дочірній вузол ARVRCamer
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Finding meshes and lights"
-msgstr ""
+msgstr "Пошук сіток та джерел світла"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing geometry (%d/%d)"
-msgstr "Аналіз геометрії..."
+msgstr "Приготування геометрії (%d з %d)"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Preparing environment"
-msgstr "Перегляд середовища"
+msgstr "Приготування середовища"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Generating capture"
-msgstr "Створення карт освітлення"
+msgstr "Створення захоплення"
 
 #: scene/3d/baked_lightmap.cpp
-#, fuzzy
 msgid "Saving lightmaps"
-msgstr "Створення карт освітлення"
+msgstr "Збереження карт освітлення"
 
 #: scene/3d/baked_lightmap.cpp
 msgid "Done"
@@ -13128,6 +13116,8 @@ msgid ""
 "The sampler port is connected but not used. Consider changing the source to "
 "'SamplerPort'."
 msgstr ""
+"Порт засобу семплювання з'єднано, але не використано. Вам варто змінити "
+"джерело на «SamplerPort»."
 
 #: scene/resources/visual_shader_nodes.cpp
 msgid "Invalid source for preview."

+ 7 - 8
editor/translations/zh_CN.po

@@ -73,12 +73,13 @@
 # godhidden <[email protected]>, 2020.
 # BinotaLIU <[email protected]>, 2020.
 # TakWolf <[email protected]>, 2020.
+# twoBornottwoB <[email protected]>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
 "POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2020-12-31 07:09+0000\n"
-"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
+"PO-Revision-Date: 2021-01-22 10:21+0000\n"
+"Last-Translator: twoBornottwoB <305766341@qq.com>\n"
 "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
 "godot-engine/godot/zh_Hans/>\n"
 "Language: zh_CN\n"
@@ -86,7 +87,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.4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
 
 #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
 #: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2410,7 +2411,7 @@ msgstr "没有设置要运行的场景。"
 
 #: editor/editor_node.cpp
 msgid "Save scene before running..."
-msgstr ""
+msgstr "运行前保存场景..."
 
 #: editor/editor_node.cpp
 msgid "Could not start subprocess!"
@@ -5157,9 +5158,8 @@ msgid "Bake Lightmaps"
 msgstr "烘焙光照贴图"
 
 #: editor/plugins/baked_lightmap_editor_plugin.cpp
-#, fuzzy
 msgid "Select lightmap bake file:"
-msgstr "选择模板文件"
+msgstr "选择模板文件"
 
 #: editor/plugins/camera_editor_plugin.cpp
 #: editor/plugins/spatial_editor_plugin.cpp
@@ -11452,9 +11452,8 @@ msgid "Post processing"
 msgstr "后期处理"
 
 #: modules/lightmapper_cpu/lightmapper_cpu.cpp
-#, fuzzy
 msgid "Plotting lightmaps"
-msgstr "正在绘制灯光"
+msgstr "正在绘制灯光"
 
 #: modules/mono/csharp_script.cpp
 msgid "Class name can't be a reserved keyword"

+ 18 - 4
misc/dist/osx_template.app/Contents/Info.plist

@@ -74,25 +74,39 @@ else
     against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
 fi
 
+# To get consistent formatting, we recommend contributors to use the same
+# clang-format version as CI.
+RECOMMENDED_CLANG_FORMAT_MAJOR="11"
+
 if [ ! -x "$CLANG_FORMAT" ] ; then
+	message="Error: clang-format executable not found. Please install clang-format $RECOMMENDED_CLANG_FORMAT_MAJOR.x.x."
+
     if [ ! -t 1 ] ; then
         if [ -x "$ZENITY" ] ; then
-            $ZENITY --error --title="Error" --text="Error: clang-format executable not found."
+            $ZENITY --error --title="Error" --text="$message"
             exit 1
         elif [ -x "$XMSG" ] ; then
-            $XMSG -center -title "Error" "Error: clang-format executable not found."
+            $XMSG -center -title "Error" "$message"
             exit 1
         elif [ \( \( "$OSTYPE" = "msys" \) -o \( "$OSTYPE" = "win32" \) \) -a \( -x "$PWSH" \) ]; then
             winmessage="$(canonicalize_filename "./.git/hooks/winmessage.ps1")"
-            $PWSH -noprofile -executionpolicy bypass -file "$winmessage" -center -title "Error" --text "Error: clang-format executable not found."
+            $PWSH -noprofile -executionpolicy bypass -file "$winmessage" -center -title "Error" --text "$message"
             exit 1
         fi
     fi
-    printf "Error: clang-format executable not found.\n"
+    printf "$message\n"
     printf "Set the correct path in $(canonicalize_filename "$0").\n"
     exit 1
 fi
 
+CLANG_FORMAT_VERSION="$(clang-format --version | cut -d' ' -f3)"
+CLANG_FORMAT_MAJOR="$(echo "$CLANG_FORMAT_VERSION" | cut -d'.' -f1)"
+
+if [ "$CLANG_FORMAT_MAJOR" != "$RECOMMENDED_CLANG_FORMAT_MAJOR" ]; then
+    echo "Warning: Your clang-format binary is the wrong version ($CLANG_FORMAT_VERSION, expected $CLANG_FORMAT_MAJOR.x.x)."
+    echo "         Consider upgrading or downgrading clang-format as formatting may not be applied correctly."
+fi
+
 # create a random filename to store our generated patch
 prefix="pre-commit-clang-format"
 suffix="$(date +%s)"

+ 6 - 0
misc/hooks/winmessage.ps1

@@ -1528,6 +1528,12 @@ void NativeScriptLanguage::unregister_script(NativeScript *script) {
 		S->get().erase(script);
 		if (S->get().size() == 0) {
 			library_script_users.erase(S);
+
+			Map<String, Ref<GDNative> >::Element *G = library_gdnatives.find(script->lib_path);
+			if (G) {
+				G->get()->terminate();
+				library_gdnatives.erase(G);
+			}
 		}
 	}
 #ifndef NO_THREADS

+ 11 - 4
modules/mbedtls/SCsub

@@ -877,7 +877,7 @@ Variant mono_object_to_variant_impl(MonoObject *p_obj, const ManagedType &p_type
 			if (GDMonoUtils::Marshal::type_is_system_generic_list(reftype)) {
 				MonoReflectionType *elem_reftype = nullptr;
 				GDMonoUtils::Marshal::array_get_element_type(reftype, &elem_reftype);
-				return system_generic_list_to_Array(p_obj, p_type.type_class, elem_reftype);
+				return system_generic_list_to_Array_variant(p_obj, p_type.type_class, elem_reftype);
 			}
 		} break;
 	}
@@ -1001,15 +1001,22 @@ MonoObject *Array_to_system_generic_list(const Array &p_array, GDMonoClass *p_cl
 	return mono_object;
 }
 
-Array system_generic_list_to_Array(MonoObject *p_obj, GDMonoClass *p_class, [[maybe_unused]] MonoReflectionType *p_elem_reftype) {
+Variant system_generic_list_to_Array_variant(MonoObject *p_obj, GDMonoClass *p_class, [[maybe_unused]] MonoReflectionType *p_elem_reftype) {
 	GDMonoMethod *to_array = p_class->get_method("ToArray", 0);
 	CRASH_COND(to_array == nullptr);
 
 	MonoException *exc = nullptr;
-	MonoArray *mono_array = (MonoArray *)to_array->invoke_raw(p_obj, nullptr, &exc);
+	MonoObject *array = to_array->invoke_raw(p_obj, nullptr, &exc);
 	UNHANDLED_EXCEPTION(exc);
 
-	return mono_array_to_Array(mono_array);
+	ERR_FAIL_NULL_V(array, Variant());
+
+	ManagedType type = ManagedType::from_class(mono_object_get_class(array));
+
+	bool result_is_array = type.type_encoding != MONO_TYPE_SZARRAY && type.type_encoding != MONO_TYPE_ARRAY;
+	ERR_FAIL_COND_V(result_is_array, Variant());
+
+	return mono_object_to_variant(array, type);
 }
 
 MonoArray *Array_to_mono_array(const Array &p_array) {

+ 1 - 1
modules/mono/mono_gd/gd_mono_marshal.h

@@ -128,7 +128,7 @@ MonoObject *Dictionary_to_system_generic_dict(const Dictionary &p_dict, GDMonoCl
 Dictionary system_generic_dict_to_Dictionary(MonoObject *p_obj, GDMonoClass *p_class, MonoReflectionType *p_key_reftype, MonoReflectionType *p_value_reftype);
 
 MonoObject *Array_to_system_generic_list(const Array &p_array, GDMonoClass *p_class, MonoReflectionType *p_elem_reftype);
-Array system_generic_list_to_Array(MonoObject *p_obj, GDMonoClass *p_class, MonoReflectionType *p_elem_reftype);
+Variant system_generic_list_to_Array_variant(MonoObject *p_obj, GDMonoClass *p_class, MonoReflectionType *p_elem_reftype);
 
 // Array
 

+ 5 - 10
modules/mono/mono_gd/support/android_support.h

@@ -1230,16 +1230,11 @@ Error EditorExportPlatformIOS::_export_ios_plugins(const Ref<EditorExportPreset>
 		PluginConfigIOS plugin = enabled_plugins[i];
 
 		// Export plugin binary.
-		if (!plugin.supports_targets) {
-			err = _copy_asset(dest_dir, plugin.binary, nullptr, true, true, r_exported_assets);
-		} else {
-			String plugin_binary_dir = plugin.binary.get_base_dir();
-			String plugin_name_prefix = plugin.binary.get_basename().get_file();
-			String plugin_file = plugin_name_prefix + "." + (p_debug ? "debug" : "release") + ".a";
-			String result_file_name = plugin.binary.get_file();
-
-			err = _copy_asset(dest_dir, plugin_binary_dir.plus_file(plugin_file), &result_file_name, true, true, r_exported_assets);
-		}
+		String plugin_main_binary = get_plugin_main_binary(plugin, p_debug);
+		String plugin_binary_result_file = plugin.binary.get_file();
+		// We shouldn't embed .xcframework that contains static libraries.
+		// Static libraries are not embedded anyway.
+		err = _copy_asset(dest_dir, plugin_main_binary, &plugin_binary_result_file, true, false, r_exported_assets);
 
 		ERR_FAIL_COND_V(err, err);
 

+ 24 - 0
platform/iphone/godot_app_delegate.h

@@ -31,6 +31,7 @@
 #import <UIKit/UIKit.h>
 
 typedef NSObject<UIApplicationDelegate> ApplicationDelegateService;
+typedef void (^APNSNotification)(UIBackgroundFetchResult);
 
 @interface GodotApplicalitionDelegate : NSObject <UIApplicationDelegate>
 
@@ -38,4 +39,27 @@ typedef NSObject<UIApplicationDelegate> ApplicationDelegateService;
 
 + (void)addService:(ApplicationDelegateService *)service;
 
+- (void)godot:(UIApplication *)application receivedNotificationToken:(NSData *)deviceToken;
+- (void)godot:(UIApplication *)application receivedNotificationError:(NSError *)error;
+- (void)godot:(UIApplication *)application receivedNotification:(NSDictionary *)userInfo completion:(APNSNotification)completionHandler;
+
 @end
+
+#define GODOT_ENABLE_PUSH_NOTIFICATIONS                                                                                                \
+	@interface GodotApplicalitionDelegate (PushNotifications)                                                                          \
+	@end                                                                                                                               \
+	@implementation GodotApplicalitionDelegate (PushNotifications)                                                                     \
+	-(void)application : (UIApplication *)application                                                                                  \
+								 didRegisterForRemoteNotificationsWithDeviceToken : (NSData *)deviceToken {                            \
+		[self godot:application receivedNotificationToken:deviceToken];                                                                \
+	}                                                                                                                                  \
+	-(void)application : (UIApplication *)application                                                                                  \
+								 didFailToRegisterForRemoteNotificationsWithError : (NSError *)error {                                 \
+		[self godot:application receivedNotificationError:error];                                                                      \
+	}                                                                                                                                  \
+	-(void)application : (UIApplication *)application                                                                                  \
+								 didReceiveRemoteNotification : (NSDictionary *)userInfo                                               \
+																		fetchCompletionHandler : (APNSNotification)completionHandler { \
+		[self godot:application receivedNotification:userInfo completion:completionHandler];                                           \
+	}                                                                                                                                  \
+	@end

+ 3 - 3
platform/iphone/godot_app_delegate.m

@@ -302,7 +302,7 @@ static NSMutableArray<ApplicationDelegateService *> *services = nil;
 
 // MARK: Remote Notification
 
-- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
+- (void)godot:(UIApplication *)application receivedNotificationToken:(NSData *)deviceToken {
 	for (ApplicationDelegateService *service in services) {
 		if (![service respondsToSelector:_cmd]) {
 			continue;
@@ -312,7 +312,7 @@ static NSMutableArray<ApplicationDelegateService *> *services = nil;
 	}
 }
 
-- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
+- (void)godot:(UIApplication *)application receivedNotificationError:(NSError *)error {
 	for (ApplicationDelegateService *service in services) {
 		if (![service respondsToSelector:_cmd]) {
 			continue;
@@ -322,7 +322,7 @@ static NSMutableArray<ApplicationDelegateService *> *services = nil;
 	}
 }
 
-- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
+- (void)godot:(UIApplication *)application receivedNotification:(NSDictionary *)userInfo completion:(APNSNotification)completionHandler {
 	for (ApplicationDelegateService *service in services) {
 		if (![service respondsToSelector:_cmd]) {
 			continue;

+ 27 - 5
platform/iphone/plugin/godot_plugin_config.h

@@ -185,16 +185,25 @@ static inline bool validate_plugin(PluginConfigIOS &plugin_config) {
 
 	bool fields_value = valid_name && valid_binary_name && valid_initialize && valid_deinitialize;
 
-	if (fields_value && FileAccess::exists(plugin_config.binary)) {
+	if (!fields_value) {
+		return false;
+	}
+
+	String plugin_extension = plugin_config.binary.get_extension().to_lower();
+
+	if ((plugin_extension == "a" && FileAccess::exists(plugin_config.binary)) ||
+			(plugin_extension == "xcframework" && DirAccess::exists(plugin_config.binary))) {
 		plugin_config.valid_config = true;
 		plugin_config.supports_targets = false;
-	} else if (fields_value) {
+	} else {
 		String file_path = plugin_config.binary.get_base_dir();
 		String file_name = plugin_config.binary.get_basename().get_file();
-		String release_file_name = file_path.plus_file(file_name + ".release.a");
-		String debug_file_name = file_path.plus_file(file_name + ".debug.a");
+		String file_extension = plugin_config.binary.get_extension();
+		String release_file_name = file_path.plus_file(file_name + ".release." + file_extension);
+		String debug_file_name = file_path.plus_file(file_name + ".debug." + file_extension);
 
-		if (FileAccess::exists(release_file_name) && FileAccess::exists(debug_file_name)) {
+		if ((plugin_extension == "a" && FileAccess::exists(release_file_name) && FileAccess::exists(debug_file_name)) ||
+				(plugin_extension == "xcframework" && DirAccess::exists(release_file_name) && DirAccess::exists(debug_file_name))) {
 			plugin_config.valid_config = true;
 			plugin_config.supports_targets = true;
 		}
@@ -203,6 +212,19 @@ static inline bool validate_plugin(PluginConfigIOS &plugin_config) {
 	return plugin_config.valid_config;
 }
 
+static inline String get_plugin_main_binary(PluginConfigIOS &plugin_config, bool p_debug) {
+	if (!plugin_config.supports_targets) {
+		return plugin_config.binary;
+	}
+
+	String plugin_binary_dir = plugin_config.binary.get_base_dir();
+	String plugin_name_prefix = plugin_config.binary.get_basename().get_file();
+	String plugin_extension = plugin_config.binary.get_extension();
+	String plugin_file = plugin_name_prefix + "." + (p_debug ? "debug" : "release") + "." + plugin_extension;
+
+	return plugin_binary_dir.plus_file(plugin_file);
+}
+
 static inline uint64_t get_plugin_modification_time(const PluginConfigIOS &plugin_config, const String &config_path) {
 	uint64_t last_updated = FileAccess::get_modified_time(config_path);
 

+ 0 - 1
scene/3d/mesh_instance.cpp

@@ -115,7 +115,6 @@ void MeshInstance::set_mesh(const Ref<Mesh> &p_mesh) {
 
 	if (mesh.is_valid()) {
 		mesh->disconnect(CoreStringNames::get_singleton()->changed, this, SceneStringNames::get_singleton()->_mesh_changed);
-		materials.clear();
 	}
 
 	if (skin_ref.is_valid() && mesh.is_valid() && _is_software_skinning_enabled() && is_visible_in_tree()) {

+ 8 - 0
scene/3d/physics_body.cpp

@@ -1889,6 +1889,10 @@ bool PhysicalBone::SixDOFJointData::_set(const StringName &p_name, const Variant
 
 	String path = p_name;
 
+	if (!path.begins_with("joint_constraints/")) {
+		return false;
+	}
+
 	Vector3::Axis axis;
 	{
 		const String axis_s = path.get_slicec('/', 1);
@@ -2024,6 +2028,10 @@ bool PhysicalBone::SixDOFJointData::_get(const StringName &p_name, Variant &r_re
 
 	String path = p_name;
 
+	if (!path.begins_with("joint_constraints/")) {
+		return false;
+	}
+
 	int axis;
 	{
 		const String axis_s = path.get_slicec('/', 1);

+ 3 - 1
scene/gui/control.cpp

@@ -754,7 +754,7 @@ bool Control::can_drop_data(const Point2 &p_point, const Variant &p_data) const
 			return ret;
 	}
 
-	return Variant();
+	return false;
 }
 void Control::drop_data(const Point2 &p_point, const Variant &p_data) {
 
@@ -2865,6 +2865,8 @@ void Control::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("has_focus"), &Control::has_focus);
 	ClassDB::bind_method(D_METHOD("grab_focus"), &Control::grab_focus);
 	ClassDB::bind_method(D_METHOD("release_focus"), &Control::release_focus);
+	ClassDB::bind_method(D_METHOD("find_prev_valid_focus"), &Control::find_prev_valid_focus);
+	ClassDB::bind_method(D_METHOD("find_next_valid_focus"), &Control::find_next_valid_focus);
 	ClassDB::bind_method(D_METHOD("get_focus_owner"), &Control::get_focus_owner);
 
 	ClassDB::bind_method(D_METHOD("set_h_size_flags", "flags"), &Control::set_h_size_flags);

+ 7 - 0
scene/gui/line_edit.cpp

@@ -611,11 +611,18 @@ Variant LineEdit::get_drag_data(const Point2 &p_point) {
 
 	return Variant();
 }
+
 bool LineEdit::can_drop_data(const Point2 &p_point, const Variant &p_data) const {
+	bool drop_override = Control::can_drop_data(p_point, p_data); // In case user wants to drop custom data.
+	if (drop_override) {
+		return drop_override;
+	}
 
 	return p_data.get_type() == Variant::STRING;
 }
+
 void LineEdit::drop_data(const Point2 &p_point, const Variant &p_data) {
+	Control::drop_data(p_point, p_data);
 
 	if (p_data.get_type() == Variant::STRING) {
 		set_cursor_at_pixel_pos(p_point.x);

+ 4 - 2
scene/gui/range.cpp

@@ -170,8 +170,10 @@ void Range::set_as_ratio(double p_value) {
 	set_value(v);
 }
 double Range::get_as_ratio() const {
-
-	ERR_FAIL_COND_V_MSG(Math::is_equal_approx(get_max(), get_min()), 0.0, "Cannot get ratio when minimum and maximum value are equal.");
+	if (Math::is_equal_approx(get_max(), get_min())) {
+		// Avoid division by zero.
+		return 1.0;
+	}
 
 	if (shared->exp_ratio && get_min() >= 0) {
 

+ 7 - 7
scene/resources/default_theme/default_theme.cpp

@@ -44,7 +44,7 @@ static TexCacheMap *tex_cache;
 static float scale = 1;
 
 template <class T>
-static Ref<StyleBoxTexture> make_stylebox(T p_src, float p_left, float p_top, float p_right, float p_botton, float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_botton = -1, bool p_draw_center = true) {
+static Ref<StyleBoxTexture> make_stylebox(T p_src, float p_left, float p_top, float p_right, float p_bottom, float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_bottom = -1, bool p_draw_center = true) {
 
 	Ref<ImageTexture> texture;
 
@@ -77,11 +77,11 @@ static Ref<StyleBoxTexture> make_stylebox(T p_src, float p_left, float p_top, fl
 	style->set_texture(texture);
 	style->set_margin_size(MARGIN_LEFT, p_left * scale);
 	style->set_margin_size(MARGIN_RIGHT, p_right * scale);
-	style->set_margin_size(MARGIN_BOTTOM, p_botton * scale);
+	style->set_margin_size(MARGIN_BOTTOM, p_bottom * scale);
 	style->set_margin_size(MARGIN_TOP, p_top * scale);
 	style->set_default_margin(MARGIN_LEFT, p_margin_left * scale);
 	style->set_default_margin(MARGIN_RIGHT, p_margin_right * scale);
-	style->set_default_margin(MARGIN_BOTTOM, p_margin_botton * scale);
+	style->set_default_margin(MARGIN_BOTTOM, p_margin_bottom * scale);
 	style->set_default_margin(MARGIN_TOP, p_margin_top * scale);
 	style->set_draw_center(p_draw_center);
 
@@ -99,12 +99,12 @@ static Ref<StyleBoxFlat> make_flat_stylebox(Color p_color, float p_margin_left =
 	return style;
 }
 
-static Ref<StyleBoxTexture> sb_expand(Ref<StyleBoxTexture> p_sbox, float p_left, float p_top, float p_right, float p_botton) {
+static Ref<StyleBoxTexture> sb_expand(Ref<StyleBoxTexture> p_sbox, float p_left, float p_top, float p_right, float p_bottom) {
 
 	p_sbox->set_expand_margin_size(MARGIN_LEFT, p_left * scale);
 	p_sbox->set_expand_margin_size(MARGIN_TOP, p_top * scale);
 	p_sbox->set_expand_margin_size(MARGIN_RIGHT, p_right * scale);
-	p_sbox->set_expand_margin_size(MARGIN_BOTTOM, p_botton * scale);
+	p_sbox->set_expand_margin_size(MARGIN_BOTTOM, p_bottom * scale);
 	return p_sbox;
 }
 
@@ -188,13 +188,13 @@ static Ref<BitmapFont> make_font(int p_height, int p_ascent, int p_charcount, co
 	return font;
 }
 
-static Ref<StyleBox> make_empty_stylebox(float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_botton = -1) {
+static Ref<StyleBox> make_empty_stylebox(float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_bottom = -1) {
 
 	Ref<StyleBox> style(memnew(StyleBoxEmpty));
 
 	style->set_default_margin(MARGIN_LEFT, p_margin_left * scale);
 	style->set_default_margin(MARGIN_RIGHT, p_margin_right * scale);
-	style->set_default_margin(MARGIN_BOTTOM, p_margin_botton * scale);
+	style->set_default_margin(MARGIN_BOTTOM, p_margin_bottom * scale);
 	style->set_default_margin(MARGIN_TOP, p_margin_top * scale);
 
 	return style;

+ 0 - 2
scene/resources/default_theme/xpmfix.sh

@@ -1,2 +0,0 @@
-#!/bin/sh
-sed -i 's/static char/static const char/g' *.xpm

+ 2 - 2
scene/resources/style_box.cpp

@@ -440,10 +440,10 @@ void StyleBoxFlat::set_corner_radius_all(int radius) {
 
 	emit_changed();
 }
-void StyleBoxFlat::set_corner_radius_individual(const int radius_top_left, const int radius_top_right, const int radius_botton_right, const int radius_bottom_left) {
+void StyleBoxFlat::set_corner_radius_individual(const int radius_top_left, const int radius_top_right, const int radius_bottom_right, const int radius_bottom_left) {
 	corner_radius[0] = radius_top_left;
 	corner_radius[1] = radius_top_right;
-	corner_radius[2] = radius_botton_right;
+	corner_radius[2] = radius_bottom_right;
 	corner_radius[3] = radius_bottom_left;
 
 	emit_changed();

+ 1 - 1
scene/resources/style_box.h

@@ -191,7 +191,7 @@ public:
 
 	//CORNER
 	void set_corner_radius_all(int radius);
-	void set_corner_radius_individual(const int radius_top_left, const int radius_top_right, const int radius_botton_right, const int radius_bottom_left);
+	void set_corner_radius_individual(const int radius_top_left, const int radius_top_right, const int radius_bottom_right, const int radius_bottom_left);
 	int get_corner_radius_min() const;
 
 	void set_corner_radius(Corner p_corner, const int radius);

+ 12 - 7
servers/audio_server.cpp

@@ -71,15 +71,20 @@ void AudioDriver::update_mix_time(int p_frames) {
 		_last_mix_time = OS::get_singleton()->get_ticks_usec();
 }
 
-double AudioDriver::get_time_since_last_mix() const {
-
-	return (OS::get_singleton()->get_ticks_usec() - _last_mix_time) / 1000000.0;
+double AudioDriver::get_time_since_last_mix() {
+	lock();
+	uint64_t last_mix_time = _last_mix_time;
+	unlock();
+	return (OS::get_singleton()->get_ticks_usec() - last_mix_time) / 1000000.0;
 }
 
-double AudioDriver::get_time_to_next_mix() const {
-
-	double total = (OS::get_singleton()->get_ticks_usec() - _last_mix_time) / 1000000.0;
-	double mix_buffer = _last_mix_frames / (double)get_mix_rate();
+double AudioDriver::get_time_to_next_mix() {
+	lock();
+	uint64_t last_mix_time = _last_mix_time;
+	uint64_t last_mix_frames = _last_mix_frames;
+	unlock();
+	double total = (OS::get_singleton()->get_ticks_usec() - last_mix_time) / 1000000.0;
+	double mix_buffer = last_mix_frames / (double)get_mix_rate();
 	return mix_buffer - total;
 }
 

+ 2 - 2
servers/audio_server.h

@@ -71,8 +71,8 @@ protected:
 #endif
 
 public:
-	double get_time_since_last_mix() const; //useful for video -> audio sync
-	double get_time_to_next_mix() const;
+	double get_time_since_last_mix(); //useful for video -> audio sync
+	double get_time_to_next_mix();
 
 	enum SpeakerMode {
 		SPEAKER_MODE_STEREO,

+ 0 - 353
thirdparty/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp

@@ -1,353 +0,0 @@
-#!/usr/bin/perl
-# Copyright (C) 2002-2013 Xiph.org Foundation
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# - Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-my $bigend;  # little/big endian
-my $nxstack;
-my $apple = 0;
-my $symprefix = "";
-
-$nxstack = 0;
-
-eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
-    if $running_under_some_shell;
-
-while ($ARGV[0] =~ /^-/) {
-    $_ = shift;
-  last if /^--$/;
-    if (/^-n$/) {
-    $nflag++;
-    next;
-    }
-    if (/^--apple$/) {
-        $apple = 1;
-        $symprefix = "_";
-        next;
-    }
-    die "I don't recognize this switch: $_\\n";
-}
-$printit++ unless $nflag;
-
-$\ = "\n";      # automatically add newline on print
-$n=0;
-
-$thumb = 0;     # ARM mode by default, not Thumb.
-@proc_stack = ();
-
-printf ("    .syntax unified\n");
-
-LINE:
-while (<>) {
-
-    # For ADRLs we need to add a new line after the substituted one.
-    $addPadding = 0;
-
-    # First, we do not dare to touch *anything* inside double quotes, do we?
-    # Second, if you want a dollar character in the string,
-    # insert two of them -- that's how ARM C and assembler treat strings.
-    s/^([A-Za-z_]\w*)[ \t]+DCB[ \t]*\"/$1:   .ascii \"/   && do { s/\$\$/\$/g; next };
-    s/\bDCB\b[ \t]*\"/.ascii \"/                          && do { s/\$\$/\$/g; next };
-    s/^(\S+)\s+RN\s+(\S+)/$1 .req r$2/                    && do { s/\$\$/\$/g; next };
-    # If there's nothing on a line but a comment, don't try to apply any further
-    #  substitutions (this is a cheap hack to avoid mucking up the license header)
-    s/^([ \t]*);/$1@/                                     && do { s/\$\$/\$/g; next };
-    # If substituted -- leave immediately !
-
-    s/@/,:/;
-    s/;/@/;
-    while ( /@.*'/ ) {
-      s/(@.*)'/$1/g;
-    }
-    s/\{FALSE\}/0/g;
-    s/\{TRUE\}/1/g;
-    s/\{(\w\w\w\w+)\}/$1/g;
-    s/\bINCLUDE[ \t]*([^ \t\n]+)/.include \"$1\"/;
-    s/\bGET[ \t]*([^ \t\n]+)/.include \"${ my $x=$1; $x =~ s|\.s|-gnu.S|; \$x }\"/;
-    s/\bIMPORT\b/.extern/;
-    s/\bEXPORT\b\s*/.global $symprefix/;
-    s/^(\s+)\[/$1IF/;
-    s/^(\s+)\|/$1ELSE/;
-    s/^(\s+)\]/$1ENDIF/;
-    s/IF *:DEF:/ .ifdef/;
-    s/IF *:LNOT: *:DEF:/ .ifndef/;
-    s/ELSE/ .else/;
-    s/ENDIF/ .endif/;
-
-    if( /\bIF\b/ ) {
-      s/\bIF\b/ .if/;
-      s/=/==/;
-    }
-    if ( $n == 2) {
-        s/\$/\\/g;
-    }
-    if ($n == 1) {
-        s/\$//g;
-        s/label//g;
-    $n = 2;
-      }
-    if ( /MACRO/ ) {
-      s/MACRO *\n/.macro/;
-      $n=1;
-    }
-    if ( /\bMEND\b/ ) {
-      s/\bMEND\b/.endm/;
-      $n=0;
-    }
-
-    # ".rdata" doesn't work in 'as' version 2.13.2, as it is ".rodata" there.
-    #
-    if ( /\bAREA\b/ ) {
-        my $align;
-        $align = "2";
-        if ( /ALIGN=(\d+)/ ) {
-            $align = $1;
-        }
-        if ( /CODE/ ) {
-            $nxstack = 1;
-        }
-        s/^(.+)CODE(.+)READONLY(.*)/    .text/;
-        s/^(.+)DATA(.+)READONLY(.*)/    .section .rdata/;
-        s/^(.+)\|\|\.data\|\|(.+)/    .data/;
-        s/^(.+)\|\|\.bss\|\|(.+)/    .bss/;
-        s/$/;   .p2align $align/;
-        # Enable NEON instructions but don't produce a binary that requires
-        # ARMv7. RVCT does not have equivalent directives, so we just do this
-        # for all CODE areas.
-        if ( /.text/ ) {
-            # Separating .arch, .fpu, etc., by semicolons does not work (gas
-            # thinks the semicolon is part of the arch name, even when there's
-            # whitespace separating them). Sadly this means our line numbers
-            # won't match the original source file (we could use the .line
-            # directive, which is documented to be obsolete, but then gdb will
-            # show the wrong line in the translated source file).
-            s/$/;   .arch armv7-a\n   .fpu neon\n   .object_arch armv4t/ unless ($apple);
-        }
-    }
-
-    s/\|\|\.constdata\$(\d+)\|\|/.L_CONST$1/;       # ||.constdata$3||
-    s/\|\|\.bss\$(\d+)\|\|/.L_BSS$1/;               # ||.bss$2||
-    s/\|\|\.data\$(\d+)\|\|/.L_DATA$1/;             # ||.data$2||
-    s/\|\|([a-zA-Z0-9_]+)\@([a-zA-Z0-9_]+)\|\|/@ $&/;
-    s/^(\s+)\%(\s)/    .space $1/;
-
-    s/\|(.+)\.(\d+)\|/\.$1_$2/;                     # |L80.123| -> .L80_123
-    s/\bCODE32\b/.code 32/ && do {$thumb = 0};
-    s/\bCODE16\b/.code 16/ && do {$thumb = 1};
-    if (/\bPROC\b/)
-    {
-        my $prefix;
-        my $proc;
-        /^([A-Za-z_\.]\w+)\b/;
-        $proc = $1;
-        $prefix = "";
-        if ($proc)
-        {
-            $prefix = $prefix.sprintf("\t.type\t%s, %%function; ",$proc) unless ($apple);
-            # Make sure we $prefix isn't empty here (for the $apple case).
-            # We handle mangling the label here, make sure it doesn't match
-            # the label handling below (if $prefix would be empty).
-            $prefix = "; ";
-            push(@proc_stack, $proc);
-            s/^[A-Za-z_\.]\w+/$symprefix$&:/;
-        }
-        $prefix = $prefix."\t.thumb_func; " if ($thumb);
-        s/\bPROC\b/@ $&/;
-        $_ = $prefix.$_;
-    }
-    s/^(\s*)(S|Q|SH|U|UQ|UH)ASX\b/$1$2ADDSUBX/;
-    s/^(\s*)(S|Q|SH|U|UQ|UH)SAX\b/$1$2SUBADDX/;
-    if (/\bENDP\b/)
-    {
-        my $proc;
-        s/\bENDP\b/@ $&/;
-        $proc = pop(@proc_stack);
-        $_ = "\t.size $proc, .-$proc".$_ if ($proc && !$apple);
-    }
-    s/\bSUBT\b/@ $&/;
-    s/\bDATA\b/@ $&/;   # DATA directive is deprecated -- Asm guide, p.7-25
-    s/\bKEEP\b/@ $&/;
-    s/\bEXPORTAS\b/@ $&/;
-    s/\|\|(.)+\bEQU\b/@ $&/;
-    s/\|\|([\w\$]+)\|\|/$1/;
-    s/\bENTRY\b/@ $&/;
-    s/\bASSERT\b/@ $&/;
-    s/\bGBLL\b/@ $&/;
-    s/\bGBLA\b/@ $&/;
-    s/^\W+OPT\b/@ $&/;
-    s/:OR:/|/g;
-    s/:SHL:/<</g;
-    s/:SHR:/>>/g;
-    s/:AND:/&/g;
-    s/:LAND:/&&/g;
-    s/CPSR/cpsr/;
-    s/SPSR/spsr/;
-    s/ALIGN$/.balign 4/;
-    s/ALIGN\s+([0-9x]+)$/.balign $1/;
-    s/psr_cxsf/psr_all/;
-    s/LTORG/.ltorg/;
-    s/^([A-Za-z_]\w*)[ \t]+EQU/ .set $1,/;
-    s/^([A-Za-z_]\w*)[ \t]+SETL/ .set $1,/;
-    s/^([A-Za-z_]\w*)[ \t]+SETA/ .set $1,/;
-    s/^([A-Za-z_]\w*)[ \t]+\*/ .set $1,/;
-
-    #  {PC} + 0xdeadfeed  -->  . + 0xdeadfeed
-    s/\{PC\} \+/ \. +/;
-
-    # Single hex constant on the line !
-    #
-    # >>> NOTE <<<
-    #   Double-precision floats in gcc are always mixed-endian, which means
-    #   bytes in two words are little-endian, but words are big-endian.
-    #   So, 0x0000deadfeed0000 would be stored as 0x0000dead at low address
-    #   and 0xfeed0000 at high address.
-    #
-    s/\bDCFD\b[ \t]+0x([a-fA-F0-9]{8})([a-fA-F0-9]{8})/.long 0x$1, 0x$2/;
-    # Only decimal constants on the line, no hex !
-    s/\bDCFD\b[ \t]+([0-9\.\-]+)/.double $1/;
-
-    # Single hex constant on the line !
-#    s/\bDCFS\b[ \t]+0x([a-f0-9]{8})([a-f0-9]{8})/.long 0x$1, 0x$2/;
-    # Only decimal constants on the line, no hex !
-#    s/\bDCFS\b[ \t]+([0-9\.\-]+)/.double $1/;
-    s/\bDCFS[ \t]+0x/.word 0x/;
-    s/\bDCFS\b/.float/;
-
-    s/^([A-Za-z_]\w*)[ \t]+DCD/$1 .word/;
-    s/\bDCD\b/.word/;
-    s/^([A-Za-z_]\w*)[ \t]+DCW/$1 .short/;
-    s/\bDCW\b/.short/;
-    s/^([A-Za-z_]\w*)[ \t]+DCB/$1 .byte/;
-    s/\bDCB\b/.byte/;
-    s/^([A-Za-z_]\w*)[ \t]+\%/.comm $1,/;
-    s/^[A-Za-z_\.]\w+/$&:/;
-    s/^(\d+)/$1:/;
-    s/\%(\d+)/$1b_or_f/;
-    s/\%[Bb](\d+)/$1b/;
-    s/\%[Ff](\d+)/$1f/;
-    s/\%[Ff][Tt](\d+)/$1f/;
-    s/&([\dA-Fa-f]+)/0x$1/;
-    if ( /\b2_[01]+\b/ ) {
-      s/\b2_([01]+)\b/conv$1&&&&/g;
-      while ( /[01][01][01][01]&&&&/ ) {
-        s/0000&&&&/&&&&0/g;
-        s/0001&&&&/&&&&1/g;
-        s/0010&&&&/&&&&2/g;
-        s/0011&&&&/&&&&3/g;
-        s/0100&&&&/&&&&4/g;
-        s/0101&&&&/&&&&5/g;
-        s/0110&&&&/&&&&6/g;
-        s/0111&&&&/&&&&7/g;
-        s/1000&&&&/&&&&8/g;
-        s/1001&&&&/&&&&9/g;
-        s/1010&&&&/&&&&A/g;
-        s/1011&&&&/&&&&B/g;
-        s/1100&&&&/&&&&C/g;
-        s/1101&&&&/&&&&D/g;
-        s/1110&&&&/&&&&E/g;
-        s/1111&&&&/&&&&F/g;
-      }
-      s/000&&&&/&&&&0/g;
-      s/001&&&&/&&&&1/g;
-      s/010&&&&/&&&&2/g;
-      s/011&&&&/&&&&3/g;
-      s/100&&&&/&&&&4/g;
-      s/101&&&&/&&&&5/g;
-      s/110&&&&/&&&&6/g;
-      s/111&&&&/&&&&7/g;
-      s/00&&&&/&&&&0/g;
-      s/01&&&&/&&&&1/g;
-      s/10&&&&/&&&&2/g;
-      s/11&&&&/&&&&3/g;
-      s/0&&&&/&&&&0/g;
-      s/1&&&&/&&&&1/g;
-      s/conv&&&&/0x/g;
-    }
-
-    if ( /commandline/)
-    {
-        if( /-bigend/)
-        {
-            $bigend=1;
-        }
-    }
-
-    if ( /\bDCDU\b/ )
-    {
-        my $cmd=$_;
-        my $value;
-        my $prefix;
-        my $w1;
-        my $w2;
-        my $w3;
-        my $w4;
-
-        s/\s+DCDU\b/@ $&/;
-
-        $cmd =~ /\bDCDU\b\s+0x(\d+)/;
-        $value = $1;
-        $value =~ /(\w\w)(\w\w)(\w\w)(\w\w)/;
-        $w1 = $1;
-        $w2 = $2;
-        $w3 = $3;
-        $w4 = $4;
-
-        if( $bigend ne "")
-        {
-            # big endian
-            $prefix = "\t.byte\t0x".$w1.";".
-                      "\t.byte\t0x".$w2.";".
-                      "\t.byte\t0x".$w3.";".
-                      "\t.byte\t0x".$w4."; ";
-        }
-        else
-        {
-            # little endian
-            $prefix = "\t.byte\t0x".$w4.";".
-                      "\t.byte\t0x".$w3.";".
-                      "\t.byte\t0x".$w2.";".
-                      "\t.byte\t0x".$w1."; ";
-        }
-        $_=$prefix.$_;
-    }
-
-    if ( /\badrl\b/i )
-    {
-        s/\badrl\s+(\w+)\s*,\s*(\w+)/ldr $1,=$2/i;
-        $addPadding = 1;
-    }
-    s/\bEND\b/@ END/;
-} continue {
-    printf ("%s", $_) if $printit;
-    if ($addPadding != 0)
-    {
-        printf ("   mov r0,r0\n");
-        $addPadding = 0;
-    }
-}
-#If we had a code section, mark that this object doesn't need an executable
-# stack.
-if ($nxstack && !$apple) {
-    printf ("    .section\t.note.GNU-stack,\"\",\%\%progbits\n");
-}

Some files were not shown because too many files changed in this diff