diff options
199 files changed, 6413 insertions, 2949 deletions
diff --git a/.clang-format b/.clang-format index 3a2c39a174..237fd9ce30 100644 --- a/.clang-format +++ b/.clang-format @@ -116,6 +116,7 @@ Standard: Cpp03 --- ### ObjC specific config ### Language: ObjC +Standard: Cpp03 ObjCBlockIndentWidth: 4 # ObjCSpaceAfterProperty: false # ObjCSpaceBeforeProtocolList: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a0310f904..b111eca07d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,251 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). +## [Unreleased] + +### Added + +- OpenGL ES 2.0 renderer. +- [Visual shader editor.](https://godotengine.org/article/visual-shader-editor-back) + - New PBR output nodes. + - Conversion between Vector3 and scalar types is now automatic. + - Ability to create custom nodes via scripting. + - Ports can now be previewed. +- [3D soft body physics.](https://godotengine.org/article/soft-body) +- [3D ragdoll system.](https://godotengine.org/article/godot-ragdoll-system) +- [Constructive solid geometry in 3D.](https://godotengine.org/article/godot-gets-csg-support) +- [2D meshes and skeletal deformation.](https://godotengine.org/article/godot-gets-2d-skeletal-deform) +- [Various improvements to KinematicBody2D.](https://godotengine.org/article/godot-31-will-get-many-improvements-kinematicbody) + - Support for snapping the body to the floor. + - Support for RayCast shapes in kinematic bodies. + - Support for synchronizing kinematic movement to physics, avoiding an one-frame delay. +- WebSockets support using [libwebsockets](https://libwebsockets.org/). +- [Revamped inspector.](https://godotengine.org/article/godot-gets-new-inspector) + - Improved visualization and editing of numeric properties. + - Vector and matrix types can now be edited directly (no pop-ups). + - Subresources can now be edited directly within the same inspector. + - Layer names can now be displayed in the inspector. + - Proper editing of arrays and dictionaries. + - Ability to reset any property to its default value. +- [Improved animation editor.](https://godotengine.org/article/godot-gets-brand-new-animation-editor-cinematic-support) + - Simpler, less cluttered layout. + - New Bezier, Audio and Animation tracks. + - Several key types can be previewed directly in the track editor. + - Tracks can now be grouped and filtered on a per-node basis. + - Copying and pasting tracks between animations is now possible. + - New Capture mode to blend from a node's current value to the first key in a track. +- [Improved animation tree and new state machine.](https://godotengine.org/article/godot-gets-new-animation-tree-state-machine) + - More visual feedback in the blend tree editor. + - 1D and 2D blend spaces are now supported. + - Ability to write custom blending logic. + - Support for root motion. +- [New FileSystem dock.](https://godotengine.org/article/godot-gets-new-filesystem-dock-3-1) + - Unified view of folders and files in the same panel. + - Files can now be marked as favorites, not only folders. + - Files now have icons representing their type, or thumbnail previews when relevant. + - New search field to filter entries in the tree. +- [OpenSimplexNoise and NoiseTexture resources.](https://godotengine.org/article/simplex-noise-lands-godot-31) +- [Optional static typing in GDScript.](https://godotengine.org/article/optional-typing-gdscript) + - Does not currently improve performance, but helps write more robust code. +- Warning system in GDScript. + - Reports potential code issues such as: + - unused variables, + - standalone expressions, + - discarded return values from functions, + - unreachable code after a `return` statement, + - … + - Warnings can be disabled in the Project Settings or by writing special comments. +- [GDScript keyword `class_name` to register scripts as classes.](http://docs.godotengine.org/en/latest/getting_started/step_by_step/scripting_continued.html#register-scripts-as-classes) +- Simple expression language independent from GDScript, used by inspector boxes that accept numeric values. + - Can also be used in projects. +- C# projects can now be exported for Windows, Linux, and macOS targets. +- The `server` platform is back as it was in Godot 2.1. + - It is now again possible to run a headless Godot instance on Linux. +- Support for BPTC texture compression on desktop platforms. +- New properties for SpatialMaterial. + - Dithering-based distance fade, for fading materials without making them transparent. + - Disable ambient light on a per-material basis. +- Option to link Mono statically on Windows. +- Unified class and reference search in the editor. +- Revamped TileSet editor with support for undo/redo operations. +- Various quality-of-life improvements to the Polygon2D and TextureRegion editors. +- RandomNumberGenerator class that allows for multiple instances at once. +- Array methods `min()` and `max()` to return the smallest and largest value respectively. +- Dictionary method `get(key[, default])` where `default` is returned if the key does not exist. +- Node method `print_tree_pretty()` to print a graphical view of the scene tree. +- String methods `trim_prefix()`, `trim_suffix()`, `lstrip()`, `rstrip()`. +- OS methods: + - `get_system_time_msecs()`: Return the system time with milliseconds. + - `get_audio_driver_name()` and `get_audio_driver_count()` to query audio driver information. + - `get_video_driver_count()` and `get_video_driver_name()` to query renderer information. + - `center_window()`: Center the window on the screen. + - `move_window_to_foreground()`: Move the window to the foreground. +- StreamPeerTCP method `set_no_delay()` to enable the `TCP_NODELAY` option. +- EditorPlugin method `remove_control_from_container()`. +- Ability to set Godot windows as "always on top". +- Ability to create windows with per-pixel transparency. +- New GLSL built-in functions in the shader language: + - `radians()` + - `degrees()` + - `asinh()` + - `acosh()` + - `atanh()` + - `exp2()` + - `log2()` + - `roundEven()` +- New command-line options: + - `--build-solutions`: Build C# solutions without starting the editor. + - `--print-fps`: Display frames per second to standard output. + - `--quit`: Quit the engine after the first main loop iteration. +- Debugger button to copy error messages. +- Support for `.escn` scenes has been added for use with the new Blender exporter. +- It is now possible to scale an OBJ mesh when importing. +- `popup_closed` signal for `ColorPickerButton`. +- Methods that are deprecated can now print warnings. +- Input actions can now provide an analog value. +- Input actions can now be mapped to either a specific device or all devices. +- DNS resolution for high-level networking. +- Servers can now kick/disconnect peers in high-level networking. +- Servers can now access IP and port information of peers in high-level networking. +- High-level multiplayer API decoupled from SceneTree (see `SceneTree.multiplayer_api`/`SceneTree.custom_multiplayer_api`), can now be extended. +- `Input.set_default_cursor_shape()` to change the default shape in the viewport. +- Custom cursors can now be as large as 256×256 (needed to be exactly 32×32 before). +- Support for radio-looking items with icon in `PopupMenu`s. +- Drag and drop to rearrange Editor docks. +- TileSet's `TileMode` is now exposed to GDScript. +- `OS.get_ticks_usec()` is now exposed to GDScript. +- Normals can now be flipped when generated via `SurfaceTool`. +- TextureProgress bars can now be bilinear (extending in both directions). +- The character used for masking secrets in LineEdit can now be changed. +- Improved DynamicFont: + - DynamicFonts can now use high-quality outlines generated by FreeType. + - DynamicFonts can now have their anti-aliasing disabled. + - DynamicFonts can now have their hinting tweaked ("Normal", "Light" or "None"). + - Colored glyphs such as emoji are now supported. +- Universal translation of touch input to mouse input. +- AudioStreamPlayer, AudioStreamPlayer2D, and AudioStreamPlayer3D now have a pitch scale property. +- Support for MIDI input. +- `GROW_DIRECTION_BOTH` for Controls. +- Selected tiles can be moved in the tile map editor. +- The editor can now be configured to display the project window on the previous or next monitor (relative to the editor). + - If either end is reached, then the project will start on the last or first monitor (respectively). +- Signal in VideoPlayer to notify when the video finished playing. +- `Image.bumpmap_to_normalmap()` to convert bump maps to normal maps. +- `File.get_path()` and `File.get_path_absolute()`. +- Unselected tabs in the editor now have a subtle background for easier identification. +- The depth fog's end distance is now configurable independently of the far plane distance. +- The alpha component of the fog color can now be used to control fog density. +- The 3D editor's information panel now displays the camera's coordinates. +- New options to hide the origin and viewport in the 2D editor. +- Improved 3D editor grid: + - The grid size and number of subdivisions can now be configured. + - Its primary and secondary colors can now also be changed. +- <kbd>Ctrl</kbd> now toggles snapping in the 3D viewport. +- Find & replace in files (<kbd>Ctrl + Shift + F</kbd> by default). +- Batch node renaming tool (<kbd>Ctrl + F2</kbd> by default). +- More editor scaling options to support HiDPI displays. +- Type icons can now be enabled in the editor again. +- Buttons in the editor to open common directories in the OS file manager: + - project data directory, + - user data directory, + - user settings directory. +- Projects can now be sorted by name or modification date in the project manager. +- Projects can now be imported from ZIP archives in the project manager. +- Improved autocompletion. + - Keywords are now present in autocompletion results. +- `editor` and `standalone` feature tags to check whether the project is running from an editor or non-editor binary. +- `android_add_asset_dir("...")` method to Android module Gradle build configuration. +- **iOS:** Support for exporting to the iPhone X. +- **iOS:** Readded support for in-app purchases. + +### Changed + +- [Built-in vector types now use copy-on-write mode as originally intended](https://godotengine.org/article/why-we-broke-your-pr), resulting in increased engine performance. +- The [mbedtls](https://tls.mbed.org/) library is now used instead of OpenSSL. +- SSL certificates are now bundled in exported projects unless a custom bundle is specified. +- Improved buffer writing performance on Windows and Linux. +- Removed many debugging prints in the console. +- Export templates now display an error dialog if no project was found when starting. +- DynamicFont oversampling is now enabled by default. +- Nodes' internal logic now consistently use internal physics processing. +- Allow attaching and clearing scripts on multiple nodes at once. +- Default values are no longer saved in scene and resource files. +- The selection rectangle of 2D nodes is now hidden when not pertinent (no more rectangle for collision shapes). +- SSE2 is now enabled in libsquish, resulting in improved S3TC encoding performance. +- Tangent and binormal coordinates are now more consistent across mesh types (primitive/imported), resulting in more predictable normal map and depth map appearance. +- Better defaults for 3D scenes. + - The default procedural sky now has a more neutral blue tone. + - The default SpatialMaterial now has a roughness value of 1 and metallic value of 0. + - The fallback material now uses the same values as the default SpatialMaterial. +- Text editor themes are now sorted alphabetically in the selection dropdown. +- The 3D manipulator gizmo now has a smoother, more detailed appearance. +- The 3D viewport menu button now has a background to make it easier to read. +- Controls inside containers are no longer movable or resizable but can still be selected. +- The `is` GDScript keyword can now be used to compare a value against built-in types. +- Named enums in GDScript no longer create script constants. + - This means `enum Name { VALUE }` must now be accessed with `Name.VALUE` instead of `VALUE`. +- Shadowing variables from parent scopes is no longer allowed in GDScript. +- Function parameters' default values can no longer depend on other parameters in GDScript. +- Indentation guides are now displayed in a more subtle way in the script editor. + - Indentation guides are now displayed when indenting using spaces. +- Multi-line strings are now highlighted as strings rather than as comments in the script editor. + - This is because GDScript does not officially support multiline comments. +- Increased the script editor's line spacing (4 pixels → 6 pixels). +- Increased the caret width in the script editor (1 pixel → 2 pixels). +- The project manager window is now resized to match the editor scale. +- The asset library now makes use of threading, making loading more responsive. +- Line spacing in the script editor, underlines and caret widths are now resized to match the editor scale. +- Replaced editor icons for checkboxes and radio buttons with simpler designs. +- Tweaked the editor's success, error, and warning text colors for better readability and consistency. +- **Android:** Custom permissions are now stored in an array and their amount is no longer limited to 20. + - Custom permissions will have to be redefined in projects imported from older versions. +- **Android:** Provide error details when an in-app purchase fails. +- **Linux:** `OS.alert()` now uses Zenity or KDialog if available instead of xmessage. +- **Mono:** Display stack traces for inner exceptions. +- **Mono:** Bundle `mscorlib.dll` with Godot to improve portability. + +### Removed + +- **macOS:** Support for 32-bit and fat binaries. + +### Fixed + +- [`move_and_slide()` now behaves differently at low velocities](https://github.com/godotengine/godot/issues/21683), which makes it function as originally intended. +- AnimatedSprite2D's `animation_finished` signal is now triggered at the end of the animation, instead of as soon as the last frame displays. +- Audio buses can now be removed in the editor while they are used by AudioStreamPlayer2D/3D nodes. +- Do not show the project manager unless no project was found at all. +- The animation editor time offset indicator no longer "walks" when resizing the editor. +- Allow creation of a built-in GDScript file even if the filename suggested already exists. +- Show tooltips in the editor when physics object picking is disabled. +- Fix a serialization bug that could cause TSCN files to grow very large. +- Gizmos are now properly hidden on scene load if the object they control is hidden. +- Camera gizmos in the 3D viewport no longer look twice as wide as they actually are. +- Copy/pasting from the editor on X11 will now work more reliably. +- `libgcc_s` and `libstdc++` are now linked statically for better Linux binary portability. +- The FPS cap set by `force_fps` in the Project Settings is no longer applied to the editor. + - Low FPS caps no longer cause the editor to feel sluggish. +- hiDPI is now detected and used if needed in the project manager. +- The Visual Studio Code external editor option now recognizes more binary names such as `code-oss`, making detection more reliable. +- The `-ffast-math` flag is no longer used when compiling Godot, resulting in increased floating-point determinism. +- Fix spelling of `apply_torque_impulse()` and deprecate the misspelled method. +- Remove spurious errors when using a PanoramaSky without textures. +- The lightmap baker will now use all available cores on Windows. +- Bullet physics now correctly calculates effective gravity on KinematicBodies. +- Setting the color `v` member now correctly sets the `s` member. +- RichTextLabels now correctly determine the baseline for all fonts. +- SpinBoxes now correctly calculate their initial size. +- OGG streams now correctly signal the end of playback. +- Android exporter no longer writes unnecessary permissions to the exported APK. +- Debugger "focus stealing" now works more reliably. +- Subresources are now always saved when saving a scene. +- Many fixes related to importers (glTF, Collada, audio), physics (Bullet), Mono/C#, GDNative, Android/iOS. +- **Mono:** Many fixes and improvements to C# support (including a `[Signal]` attribute). +- **WebAssembly:** Supply proper CORS headers. + +### Security + +- Fixed a security issue relating to deserializing Variants. + ## [3.0] - 2018-01-29 ### Added @@ -137,4 +382,5 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - HTML5 export using asm.js. - Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly. +[Unreleased]: https://github.com/godotengine/godot/compare/3.0-stable...HEAD [3.0]: https://github.com/godotengine/godot/compare/2.1-stable...3.0-stable @@ -17,7 +17,6 @@ generous deed immortalized in the next stable release of Godot Engine. ## Gold sponsors Gamblify <https://www.gamblify.com> - GameDev.TV <https://gdev.tv/godot> Image Campus <https://www.imagecampus.edu.ar> ## Mini sponsors @@ -30,6 +29,7 @@ generous deed immortalized in the next stable release of Godot Engine. Christoph Woinke Edward Flick GameDev.net + GameDev.tv Hein-Pieter van Braam Jamal Alyafei Javary Games @@ -37,6 +37,8 @@ generous deed immortalized in the next stable release of Godot Engine. Justin Arnold Kyle Szklenski Leona Eden + Leonard Meagher + Ludosity AB Matthieu Huvé Maxim Karsten Mike King @@ -56,30 +58,34 @@ generous deed immortalized in the next stable release of Godot Engine. ## Gold donors Asdf + Brandon Waite cheese65536 David Gehrig Edward E + Florian Krick K9Kraken Manuele Finocchiaro Nathanael Beisiegel Officine Pixel S.n.c. Retro Village - Valorware Zashi Zaven Muradyan 13MHz Allen Schade Andreas Schüle + Asher Glick Austen McRae + Daniel James Daniel Lynn David Giardi Florian Breisch Gary Oberbrunner Gero Jay Horton - Johannes Wuensch + Jon Smith Jon Woodward + Jorge Bernal Joshua Lesperance Justo Delgado Baudà Krzysztof Dluzniewski @@ -89,8 +95,10 @@ generous deed immortalized in the next stable release of Godot Engine. paul gruenbacher Paul LaMotte Rob Messick + Scott Wadden Sergey Svenne Krap + Tom Langwaldt William Wold Wyatt Goodin Xananax @@ -107,10 +115,11 @@ generous deed immortalized in the next stable release of Godot Engine. Joan Fons John Krzysztof Jankowski - Laurence Bannister Lucas Ferreira Franca Markus Wiesner Nathan Lundquist + Pascal Grüter + Petr Malac Rami Robert Willes Robin Arys @@ -123,10 +132,8 @@ generous deed immortalized in the next stable release of Godot Engine. Alessandra Pereyra Alexey Dyadchenko - Amanda Haldy Benjamin W Flint Chau Siu Hung - Chris Brown Chris Goddard Chris Petrich Christian Leth Jeppesen @@ -139,13 +146,15 @@ generous deed immortalized in the next stable release of Godot Engine. Eric Monson Ethan Bennis Eugenio Hugo Salgüero Jáñez - Eulogio Enamorado Pallares flesk + gavlig GGGames.org + Giles Montgomery Giovanni Solimeno Guilherme Felipe de C. G. da Silva Heath Hayes Hysteria + Jalal Chaabane Jeppe Zapp Jose Malheiro Juan T Chen @@ -156,6 +165,7 @@ generous deed immortalized in the next stable release of Godot Engine. Marius Kamm Martin Eigel Marvin + Matt Eunson Max R.R. Collada Nick Nikitin Oliver Dick @@ -166,26 +176,28 @@ generous deed immortalized in the next stable release of Godot Engine. Ruben Soares Luis Samuel Judd Sofox + spilldata Stoned Xander Tobias Bocanegra WytRabbit Xavier Fumado Beltran - Zachariah Gibbons ## Silver donors 1D_Inc - 2drealms Adam Brunnmeier Adam Carr + Adam Nakonieczny Adam Smeltzer Adisibio Alder Stefano Alessandro Senese Alexander Gillberg Alexander Koppe + Alice Robinson Andreas Krampitz Anthony Bongiovanni + Arbor Interactive Arthur S. Muszynski Artur Barichello Aubrey Falconer @@ -200,19 +212,25 @@ generous deed immortalized in the next stable release of Godot Engine. Bryan Stevenson Carl Winder Carwyn Edwards + Chris Brown Chris Chapin Christian Baune Christian Winter + Christoffer Sundbom + Chris Wilson Collin Shooltz + Connor Hill Daniel Johnson - Daniel Kaplan DanielMaximiano + Daniel Reed David Cravens David May Dominik Wetzel DOXA Edward Herbert + Egon Elbre Elmeri '- Duy Kevin Nguyen + Emanuel Kotzayan Eric Martini Eric McCarthy Eric Williams @@ -232,11 +250,13 @@ generous deed immortalized in the next stable release of Godot Engine. Igor Buzatovic Jaime Ruiz-Borau Vizárraga Jako Danar + James A F Manley Jeff Hungerford Jeremy Kahn + Jesse Dubay Joao Senerchia Joel Fivat - Johan Lindberg + Johannes Wuensch Jonas Rudlang Jonas Yamazaki Jonathan G @@ -250,11 +270,11 @@ generous deed immortalized in the next stable release of Godot Engine. Juan Negrier Judd Julian Murgia - Justin Luk KC Chan Kevin Boyer - Kevin van Rooijen + Kiyohiro Kawamura (kyorohiro) Klagsam + KR McGinley KsyTek Games Kuan Cheang kycho @@ -269,7 +289,6 @@ generous deed immortalized in the next stable release of Godot Engine. Matt Welke Maxwell Mertcan Mermerkaya - mhilbrunner Michael Dürwald Michael Gringauz Michael Labbe @@ -284,9 +303,7 @@ generous deed immortalized in the next stable release of Godot Engine. Niclas Eriksen Nicolás Montaña Nicolas SAN AGUSTIN - nitenook Pan Ip - Pascal Grüter Patrick Nafarrete Paul Gieske Paul Mason @@ -298,37 +315,42 @@ generous deed immortalized in the next stable release of Godot Engine. Prokhorenko Leonid Psyagnostic Rafael - rayos Rémi Verschelde Ricardo Alcantara Richman Stewart + Robert Farr (Larington) Roger Burgess Roger Smith Roland RzÄ…sa Roman Tinkov + Ryan Cheung + Ryan Hentz Sasori Olkof Sebastian Michailidis Shane Spoor + Simon Wenner Sootstone Theo Cranmore Théo Hay Thibault Barbaroux Thomas Bell Thomas Holmes + Thomas Kelly Thomas Kurz tiansheng li Tim Tim Drumheller Tom Larrow - Troy Austin + Torsten Crass Tryggve Sollid Tyler Stafos UltyX Vaiktorg Victor Viktor Ferenczi - Vladimir Soukup waka nya + Wayne Haak + werner mendizabal William Gervasio William Hogben Wout Standaert diff --git a/SConstruct b/SConstruct index 57fa305a15..2c79665465 100644 --- a/SConstruct +++ b/SConstruct @@ -2,11 +2,13 @@ EnsureSConsVersion(0, 98, 1) -import string -import os -import os.path +# System import glob +import os +import string import sys + +# Local import methods import gles_builders from platform_methods import run_in_subprocess @@ -27,7 +29,7 @@ for x in sorted(glob.glob("platform/*")): continue tmppath = "./" + x - sys.path.append(tmppath) + sys.path.insert(0, tmppath) import detect if (os.path.exists(x + "/export/export.cpp")): @@ -86,13 +88,6 @@ env_base.split_modules = False env_base.module_version_string = "" env_base.msvc = False -# To decide whether to rebuild a file, use the MD5 sum only if the timestamp has changed. -# http://scons.org/doc/production/HTML/scons-user/ch06.html#idm139837621851792 -env_base.Decider('MD5-timestamp') -# Use cached implicit dependencies by default. Can be overridden by specifying `--implicit-deps-changed` in the command line. -# http://scons.org/doc/production/HTML/scons-user/ch06s04.html -env_base.SetOption('implicit_cache', 1) - env_base.__class__.android_add_maven_repository = methods.android_add_maven_repository env_base.__class__.android_add_flat_dir = methods.android_add_flat_dir env_base.__class__.android_add_dependency = methods.android_add_dependency @@ -130,7 +125,6 @@ customs = ['custom.py'] profile = ARGUMENTS.get("profile", False) if profile: - import os.path if os.path.isfile(profile): customs.append(profile) elif os.path.isfile(profile + ".py"): @@ -210,7 +204,7 @@ for k in platform_opts.keys(): for x in module_list: module_enabled = True tmppath = "./modules/" + x - sys.path.append(tmppath) + sys.path.insert(0, tmppath) import config enabled_attr = getattr(config, "is_enabled", None) if (callable(enabled_attr) and not config.is_enabled()): @@ -233,6 +227,16 @@ env_base.platform_apis = platform_apis if (env_base['target'] == 'debug'): env_base.Append(CPPDEFINES=['DEBUG_MEMORY_ALLOC','DISABLE_FORCED_INLINE']) + # The two options below speed up incremental builds, but reduce the certainty that all files + # will properly be rebuilt. As such, we only enable them for debug (dev) builds, not release. + + # To decide whether to rebuild a file, use the MD5 sum only if the timestamp has changed. + # http://scons.org/doc/production/HTML/scons-user/ch06.html#idm139837621851792 + env_base.Decider('MD5-timestamp') + # Use cached implicit dependencies by default. Can be overridden by specifying `--implicit-deps-changed` in the command line. + # http://scons.org/doc/production/HTML/scons-user/ch06s04.html + env_base.SetOption('implicit_cache', 1) + if (env_base['no_editor_splash']): env_base.Append(CPPDEFINES=['NO_EDITOR_SPLASH']) @@ -250,8 +254,8 @@ elif env_base['p'] != "": env_base["platform"] = selected_platform if selected_platform in platform_list: - - sys.path.append("./platform/" + selected_platform) + tmppath = "./platform/" + selected_platform + sys.path.insert(0, tmppath) import detect if "create" in dir(detect): env = detect.create(env_base) @@ -377,7 +381,7 @@ if selected_platform in platform_list: suffix += env.extra_suffix - sys.path.remove("./platform/" + selected_platform) + sys.path.remove(tmppath) sys.modules.pop('detect') env.module_list = [] @@ -387,7 +391,7 @@ if selected_platform in platform_list: if not env['module_' + x + '_enabled']: continue tmppath = "./modules/" + x - sys.path.append(tmppath) + sys.path.insert(0, tmppath) env.current_module = x import config # can_build changed number of arguments between 3.0 (1) and 3.1 (2), diff --git a/core/image.cpp b/core/image.cpp index 91c3d05a29..3d48db872c 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -1789,7 +1789,7 @@ Error Image::decompress() { _image_decompress_pvrtc(this); else if (format == FORMAT_ETC && _image_decompress_etc1) _image_decompress_etc1(this); - else if (format >= FORMAT_ETC2_R11 && format <= FORMAT_ETC2_RGB8A1 && _image_decompress_etc1) + else if (format >= FORMAT_ETC2_R11 && format <= FORMAT_ETC2_RGB8A1 && _image_decompress_etc2) _image_decompress_etc2(this); else return ERR_UNAVAILABLE; diff --git a/core/math/matrix3.cpp b/core/math/basis.cpp index 0aa67078fb..8e4eacd9a6 100644 --- a/core/math/matrix3.cpp +++ b/core/math/basis.cpp @@ -1,5 +1,5 @@ /*************************************************************************/ -/* matrix3.cpp */ +/* basis.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ @@ -28,7 +28,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "matrix3.h" +#include "basis.h" #include "core/math/math_funcs.h" #include "core/os/copymem.h" diff --git a/core/math/matrix3.h b/core/math/basis.h index e7d6ab4522..128e56b494 100644 --- a/core/math/matrix3.h +++ b/core/math/basis.h @@ -1,5 +1,5 @@ /*************************************************************************/ -/* matrix3.h */ +/* basis.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ @@ -31,8 +31,8 @@ // Circular dependency between Vector3 and Basis :/ #include "core/math/vector3.h" -#ifndef MATRIX3_H -#define MATRIX3_H +#ifndef BASIS_H +#define BASIS_H #include "core/math/quat.h" @@ -341,4 +341,4 @@ real_t Basis::determinant() const { elements[1][0] * (elements[0][1] * elements[2][2] - elements[2][1] * elements[0][2]) + elements[2][0] * (elements[0][1] * elements[1][2] - elements[1][1] * elements[0][2]); } -#endif +#endif // BASIS_H diff --git a/core/math/quat.cpp b/core/math/quat.cpp index c1e45f36f0..6833d5de55 100644 --- a/core/math/quat.cpp +++ b/core/math/quat.cpp @@ -30,7 +30,7 @@ #include "quat.h" -#include "core/math/matrix3.h" +#include "core/math/basis.h" #include "core/print_string.h" // set_euler_xyz expects a vector containing the Euler angles in the format diff --git a/core/math/transform.h b/core/math/transform.h index 9b323a6f0f..2f43f6b035 100644 --- a/core/math/transform.h +++ b/core/math/transform.h @@ -32,7 +32,7 @@ #define TRANSFORM_H #include "core/math/aabb.h" -#include "core/math/matrix3.h" +#include "core/math/basis.h" #include "core/math/plane.h" /** diff --git a/core/math/vector3.cpp b/core/math/vector3.cpp index b2e89ac7b8..1c28934422 100644 --- a/core/math/vector3.cpp +++ b/core/math/vector3.cpp @@ -30,7 +30,7 @@ #include "vector3.h" -#include "core/math/matrix3.h" +#include "core/math/basis.h" void Vector3::rotate(const Vector3 &p_axis, real_t p_phi) { diff --git a/core/math/vector3.h b/core/math/vector3.h index b0eef35635..8d6e093c4c 100644 --- a/core/math/vector3.h +++ b/core/math/vector3.h @@ -151,7 +151,7 @@ struct Vector3 { }; // Should be included after class definition, otherwise we get circular refs -#include "core/math/matrix3.h" +#include "core/math/basis.h" Vector3 Vector3::cross(const Vector3 &p_b) const { diff --git a/core/object.cpp b/core/object.cpp index 682586a7ab..05e661baab 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -1924,6 +1924,11 @@ void *Object::get_script_instance_binding(int p_script_language_index) { return _script_instance_bindings[p_script_language_index]; } +bool Object::has_script_instance_binding(int p_script_language_index) { + + return _script_instance_bindings[p_script_language_index] != NULL; +} + Object::Object() { _class_ptr = NULL; diff --git a/core/object.h b/core/object.h index a5bb6dea5d..5bfef8a439 100644 --- a/core/object.h +++ b/core/object.h @@ -729,6 +729,7 @@ public: //used by script languages to store binding data void *get_script_instance_binding(int p_script_language_index); + bool has_script_instance_binding(int p_script_language_index); void clear_internal_resource_paths(); diff --git a/core/os/os.h b/core/os/os.h index a08bdcb608..396555970a 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -45,12 +45,6 @@ @author Juan Linietsky <reduzio@gmail.com> */ -enum VideoDriver { - VIDEO_DRIVER_GLES3, - VIDEO_DRIVER_GLES2, - VIDEO_DRIVER_MAX, -}; - class OS { static OS *singleton; @@ -184,9 +178,16 @@ public: virtual VideoMode get_video_mode(int p_screen = 0) const = 0; virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen = 0) const = 0; + enum VideoDriver { + VIDEO_DRIVER_GLES3, + VIDEO_DRIVER_GLES2, + VIDEO_DRIVER_MAX, + }; + virtual int get_video_driver_count() const; virtual const char *get_video_driver_name(int p_driver) const; virtual int get_current_video_driver() const = 0; + virtual int get_audio_driver_count() const; virtual const char *get_audio_driver_name(int p_driver) const; @@ -266,6 +267,7 @@ public: virtual bool has_environment(const String &p_var) const = 0; virtual String get_environment(const String &p_var) const = 0; + virtual bool set_environment(const String &p_var, const String &p_value) const = 0; virtual String get_name() = 0; virtual List<String> get_cmdline_args() const { return _cmdline; } diff --git a/core/pair.h b/core/pair.h index cb661160b5..9afaa726cb 100644 --- a/core/pair.h +++ b/core/pair.h @@ -37,7 +37,11 @@ struct Pair { F first; S second; - Pair() {} + Pair() : + first(), + second() { + } + Pair(F p_first, const S &p_second) : first(p_first), second(p_second) { diff --git a/core/variant.cpp b/core/variant.cpp index 56b272cccf..2ee2e8e293 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -2816,27 +2816,37 @@ uint32_t Variant::hash() const { const PoolVector<uint8_t> &arr = *reinterpret_cast<const PoolVector<uint8_t> *>(_data._mem); int len = arr.size(); - PoolVector<uint8_t>::Read r = arr.read(); - - return hash_djb2_buffer((uint8_t *)&r[0], len); + if (likely(len)) { + PoolVector<uint8_t>::Read r = arr.read(); + return hash_djb2_buffer((uint8_t *)&r[0], len); + } else { + return hash_djb2_one_64(0); + } } break; case POOL_INT_ARRAY: { const PoolVector<int> &arr = *reinterpret_cast<const PoolVector<int> *>(_data._mem); int len = arr.size(); - PoolVector<int>::Read r = arr.read(); - - return hash_djb2_buffer((uint8_t *)&r[0], len * sizeof(int)); + if (likely(len)) { + PoolVector<int>::Read r = arr.read(); + return hash_djb2_buffer((uint8_t *)&r[0], len * sizeof(int)); + } else { + return hash_djb2_one_64(0); + } } break; case POOL_REAL_ARRAY: { const PoolVector<real_t> &arr = *reinterpret_cast<const PoolVector<real_t> *>(_data._mem); int len = arr.size(); - PoolVector<real_t>::Read r = arr.read(); - return hash_djb2_buffer((uint8_t *)&r[0], len * sizeof(real_t)); + if (likely(len)) { + PoolVector<real_t>::Read r = arr.read(); + return hash_djb2_buffer((uint8_t *)&r[0], len * sizeof(real_t)); + } else { + return hash_djb2_one_float(0.0); + } } break; case POOL_STRING_ARRAY: { @@ -2844,10 +2854,13 @@ uint32_t Variant::hash() const { uint32_t hash = 5831; const PoolVector<String> &arr = *reinterpret_cast<const PoolVector<String> *>(_data._mem); int len = arr.size(); - PoolVector<String>::Read r = arr.read(); - for (int i = 0; i < len; i++) { - hash = hash_djb2_one_32(r[i].hash(), hash); + if (likely(len)) { + PoolVector<String>::Read r = arr.read(); + + for (int i = 0; i < len; i++) { + hash = hash_djb2_one_32(r[i].hash(), hash); + } } return hash; @@ -2857,48 +2870,54 @@ uint32_t Variant::hash() const { uint32_t hash = 5831; const PoolVector<Vector2> &arr = *reinterpret_cast<const PoolVector<Vector2> *>(_data._mem); int len = arr.size(); - PoolVector<Vector2>::Read r = arr.read(); - for (int i = 0; i < len; i++) { - hash = hash_djb2_one_float(r[i].x, hash); - hash = hash_djb2_one_float(r[i].y, hash); + if (likely(len)) { + PoolVector<Vector2>::Read r = arr.read(); + + for (int i = 0; i < len; i++) { + hash = hash_djb2_one_float(r[i].x, hash); + hash = hash_djb2_one_float(r[i].y, hash); + } } return hash; - } break; case POOL_VECTOR3_ARRAY: { uint32_t hash = 5831; const PoolVector<Vector3> &arr = *reinterpret_cast<const PoolVector<Vector3> *>(_data._mem); int len = arr.size(); - PoolVector<Vector3>::Read r = arr.read(); - for (int i = 0; i < len; i++) { - hash = hash_djb2_one_float(r[i].x, hash); - hash = hash_djb2_one_float(r[i].y, hash); - hash = hash_djb2_one_float(r[i].z, hash); + if (likely(len)) { + PoolVector<Vector3>::Read r = arr.read(); + + for (int i = 0; i < len; i++) { + hash = hash_djb2_one_float(r[i].x, hash); + hash = hash_djb2_one_float(r[i].y, hash); + hash = hash_djb2_one_float(r[i].z, hash); + } } return hash; - } break; case POOL_COLOR_ARRAY: { uint32_t hash = 5831; const PoolVector<Color> &arr = *reinterpret_cast<const PoolVector<Color> *>(_data._mem); int len = arr.size(); - PoolVector<Color>::Read r = arr.read(); - for (int i = 0; i < len; i++) { - hash = hash_djb2_one_float(r[i].r, hash); - hash = hash_djb2_one_float(r[i].g, hash); - hash = hash_djb2_one_float(r[i].b, hash); - hash = hash_djb2_one_float(r[i].a, hash); + if (likely(len)) { + PoolVector<Color>::Read r = arr.read(); + + for (int i = 0; i < len; i++) { + hash = hash_djb2_one_float(r[i].r, hash); + hash = hash_djb2_one_float(r[i].g, hash); + hash = hash_djb2_one_float(r[i].b, hash); + hash = hash_djb2_one_float(r[i].a, hash); + } } return hash; - } break; default: {} } diff --git a/core/variant.h b/core/variant.h index 0377c78ea8..6ddaf17406 100644 --- a/core/variant.h +++ b/core/variant.h @@ -41,8 +41,8 @@ #include "core/dvector.h" #include "core/io/ip_address.h" #include "core/math/aabb.h" +#include "core/math/basis.h" #include "core/math/face3.h" -#include "core/math/matrix3.h" #include "core/math/plane.h" #include "core/math/quat.h" #include "core/math/transform.h" diff --git a/doc/classes/AudioEffectLimiter.xml b/doc/classes/AudioEffectLimiter.xml index 9e791f02d7..5c5c55d17b 100644 --- a/doc/classes/AudioEffectLimiter.xml +++ b/doc/classes/AudioEffectLimiter.xml @@ -4,7 +4,7 @@ Adds a soft clip Limiter audio effect to an Audio bus. </brief_description> <description> - A limiter is similar to a compressor, but it’s less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master Bus is always recommended to reduce the effects of clipping. + A limiter is similar to a compressor, but it's less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master Bus is always recommended to reduce the effects of clipping. Soft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded. </description> <tutorials> diff --git a/doc/classes/Camera.xml b/doc/classes/Camera.xml index f4b1bc1519..e56fb63dc5 100644 --- a/doc/classes/Camera.xml +++ b/doc/classes/Camera.xml @@ -35,6 +35,12 @@ <description> </description> </method> + <method name="get_frustum" qualifiers="const"> + <return type="Array"> + </return> + <description> + </description> + </method> <method name="is_position_behind" qualifiers="const"> <return type="bool"> </return> diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml index a9e2a38dcf..9c78853cfe 100644 --- a/doc/classes/Dictionary.xml +++ b/doc/classes/Dictionary.xml @@ -5,6 +5,7 @@ </brief_description> <description> Dictionary type. Associative container which contains values referenced by unique keys. Dictionaries are always passed by reference. + Erasing elements while iterating over them [b]is not supported[/b]. </description> <tutorials> </tutorials> @@ -38,7 +39,7 @@ <argument index="0" name="key" type="Variant"> </argument> <description> - Erase a dictionary key/value pair by key. + Erase a dictionary key/value pair by key. Do not erase elements while iterating over the dictionary. </description> </method> <method name="get"> diff --git a/doc/classes/Expression.xml b/doc/classes/Expression.xml index b0a21d7f82..78623b359e 100644 --- a/doc/classes/Expression.xml +++ b/doc/classes/Expression.xml @@ -39,6 +39,7 @@ </argument> <description> Executes the expression that was previously parsed by [method parse] and returns the result. Before you use the returned object, you should check if the method failed by calling [method has_execute_failed]. + If you defined input variables in [method parse], you can specify their values in the inputs array, in the same order. </description> </method> <method name="get_error_text" qualifiers="const"> @@ -64,6 +65,7 @@ </argument> <description> Parses the expression and returns a [enum @GlobalScope.Error]. + You can optionally specify names of variables that may appear in the expression with [code]input_names[/code], so that you can bind them when it gets executed. </description> </method> </methods> diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml index 8868dd778d..f165027d44 100644 --- a/doc/classes/Image.xml +++ b/doc/classes/Image.xml @@ -227,7 +227,7 @@ <return type="int" enum="Image.Format"> </return> <description> - Returns the image’s format. See [code]FORMAT_*[/code] constants. + Returns the image's format. See [code]FORMAT_*[/code] constants. </description> </method> <method name="get_height" qualifiers="const"> diff --git a/doc/classes/MultiMesh.xml b/doc/classes/MultiMesh.xml index 1908fdd684..7986461840 100644 --- a/doc/classes/MultiMesh.xml +++ b/doc/classes/MultiMesh.xml @@ -4,8 +4,8 @@ Provides high performance mesh instancing. </brief_description> <description> - MultiMesh provides low level mesh instancing. If the amount of [Mesh] instances needed goes from hundreds to thousands (and most need to be visible at close proximity) creating such a large amount of [MeshInstance] nodes may affect performance by using too much CPU or video memory. - For this case a MultiMesh becomes very useful, as it can draw thousands of instances with little API overhead. + MultiMesh provides low level mesh instancing. Drawing thousands of [MeshInstance] nodes can be slow because each object is submitted to the GPU to be drawn individually. + MultiMesh is much faster because it can draw thousands of instances with a single draw call, resulting in less API overhead. As a drawback, if the instances are too far away of each other, performance may be reduced as every single instance will always rendered (they are spatially indexed as one, for the whole object). Since instances may have any behavior, the AABB used for visibility must be provided by the user. </description> @@ -36,6 +36,7 @@ <argument index="0" name="instance" type="int"> </argument> <description> + Return the custom data that has been set for a specific instance. </description> </method> <method name="get_instance_transform" qualifiers="const"> @@ -66,6 +67,7 @@ <argument index="1" name="custom_data" type="Color"> </argument> <description> + Set custom data for a specific instance. Although [Color] is used, it is just a container for 4 numbers. </description> </method> <method name="set_instance_transform"> @@ -82,32 +84,45 @@ </methods> <members> <member name="color_format" type="int" setter="set_color_format" getter="get_color_format" enum="MultiMesh.ColorFormat"> + Format of colors in color array that gets passed to shader. </member> <member name="custom_data_format" type="int" setter="set_custom_data_format" getter="get_custom_data_format" enum="MultiMesh.CustomDataFormat"> + Format of custom data in custom data array that gets passed to shader. </member> <member name="instance_count" type="int" setter="set_instance_count" getter="get_instance_count"> + Number of instances that will get drawn. </member> <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh"> + Mesh to be drawn. </member> <member name="transform_format" type="int" setter="set_transform_format" getter="get_transform_format" enum="MultiMesh.TransformFormat"> + Format of transform used to transform mesh, either 2D or 3D. </member> </members> <constants> <constant name="TRANSFORM_2D" value="0" enum="TransformFormat"> + Use this when using 2D transforms. </constant> <constant name="TRANSFORM_3D" value="1" enum="TransformFormat"> + Use this when using 3D transforms. </constant> <constant name="COLOR_NONE" value="0" enum="ColorFormat"> + Use when you are not using per-instance [Color]s. </constant> <constant name="COLOR_8BIT" value="1" enum="ColorFormat"> + Compress [Color] data into 8 bits when passing to shader. This uses less memory and can be faster, but the [Color] loses precision. </constant> <constant name="COLOR_FLOAT" value="2" enum="ColorFormat"> + The [Color] passed into [method set_instance_color] will use 4 floats. Use this for highest precision [Color]. </constant> <constant name="CUSTOM_DATA_NONE" value="0" enum="CustomDataFormat"> + Use when you are not using per-instance custom data. </constant> <constant name="CUSTOM_DATA_8BIT" value="1" enum="CustomDataFormat"> + Compress custom_data into 8 bits when passing to shader. This uses less memory and can be faster, but loses precision. </constant> <constant name="CUSTOM_DATA_FLOAT" value="2" enum="CustomDataFormat"> + The [Color] passed into [method set_instance_custom_data] will use 4 floats. Use this for highest precision. </constant> </constants> </class> diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index 02a8ee8e75..e872fee1cc 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -269,6 +269,15 @@ <description> </description> </method> + <method name="get_node_or_null" qualifiers="const"> + <return type="Node"> + </return> + <argument index="0" name="path" type="NodePath"> + </argument> + <description> + Similar to [method get_node], but does not raise an error when [code]path[/code] does not point to a valid [code]Node[/code]. + </description> + </method> <method name="get_parent" qualifiers="const"> <return type="Node"> </return> diff --git a/doc/classes/PhysicsDirectBodyState.xml b/doc/classes/PhysicsDirectBodyState.xml index 2b4125aef4..cf718f06b2 100644 --- a/doc/classes/PhysicsDirectBodyState.xml +++ b/doc/classes/PhysicsDirectBodyState.xml @@ -57,7 +57,7 @@ <argument index="1" name="j" type="Vector3"> </argument> <description> - Apply a positioned impulse (which will be affected by the body mass and shape). This is the equivalent of hitting a billiard ball with a cue: a force that is applied once, and only once. Both the impulse and the position are in global coordinates, and the position is relative to the object's origin. + Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin. </description> </method> <method name="apply_torque_impulse"> diff --git a/doc/classes/PhysicsDirectSpaceState.xml b/doc/classes/PhysicsDirectSpaceState.xml index c4dc103b72..118010b3cf 100644 --- a/doc/classes/PhysicsDirectSpaceState.xml +++ b/doc/classes/PhysicsDirectSpaceState.xml @@ -21,7 +21,7 @@ </argument> <description> Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [code][1, 1][/code]. - If the shape can not move, the returned array will be [code][0, 0][/code]. + If the shape can not move, the returned array will be [code][0, 0][/code] under Bullet, and empty under GodotPhysics. </description> </method> <method name="collide_shape"> diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml index fe7dbe52b0..ea696e624a 100644 --- a/doc/classes/PopupMenu.xml +++ b/doc/classes/PopupMenu.xml @@ -378,7 +378,7 @@ <argument index="1" name="enable" type="bool"> </argument> <description> - Mark the item at index "idx" as a separator, which means that it would be displayed as a mere line. + Mark the item at index "idx" as a separator, which means that it would be displayed as a line. </description> </method> <method name="set_item_checked"> diff --git a/doc/classes/ResourcePreloader.xml b/doc/classes/ResourcePreloader.xml index 002bcd891a..18d6e04d8e 100644 --- a/doc/classes/ResourcePreloader.xml +++ b/doc/classes/ResourcePreloader.xml @@ -4,7 +4,7 @@ Resource Preloader Node. </brief_description> <description> - Resource Preloader Node. This node is used to preload sub-resources inside a scene, so when the scene is loaded all the resources are ready to use and be retrieved from here. + This node is used to preload sub-resources inside a scene, so when the scene is loaded, all the resources are ready to use and can be retrieved from the preloader. </description> <tutorials> </tutorials> @@ -19,6 +19,7 @@ <argument index="1" name="resource" type="Resource"> </argument> <description> + Adds a resource to the preloader with the given [code]name[/code]. If a resource with the given [code]name[/code] already exists, the new resource will be renamed to "[code]name[/code] N" where N is an incrementing number starting from 2. </description> </method> <method name="get_resource" qualifiers="const"> @@ -27,14 +28,14 @@ <argument index="0" name="name" type="String"> </argument> <description> - Return the resource given a text-id. + Returns the resource associated to [code]name[/code]. </description> </method> <method name="get_resource_list" qualifiers="const"> <return type="PoolStringArray"> </return> <description> - Return the list of resources inside the preloader. + Returns the list of resources inside the preloader. </description> </method> <method name="has_resource" qualifiers="const"> @@ -43,7 +44,7 @@ <argument index="0" name="name" type="String"> </argument> <description> - Return true if the preloader has a given resource. + Returns true if the preloader contains a resource associated to [code]name[/code]. </description> </method> <method name="remove_resource"> @@ -52,7 +53,7 @@ <argument index="0" name="name" type="String"> </argument> <description> - Remove a resource from the preloader by text id. + Removes the resource associated to [code]name[/code] from the preloader. </description> </method> <method name="rename_resource"> @@ -63,7 +64,7 @@ <argument index="1" name="newname" type="String"> </argument> <description> - Rename a resource inside the preloader, from a text-id to a new text-id. + Renames a resource inside the preloader from [code]name[/code] to [code]newname[/code]. </description> </method> </methods> diff --git a/doc/classes/RigidBody.xml b/doc/classes/RigidBody.xml index 3f28156915..3c253c3bea 100644 --- a/doc/classes/RigidBody.xml +++ b/doc/classes/RigidBody.xml @@ -72,7 +72,7 @@ <argument index="1" name="impulse" type="Vector3"> </argument> <description> - Applies a positioned impulse which will be affected by the body mass and shape. This is the equivalent of hitting a billiard ball with a cue: a force that is applied once, and only once. Both the impulse and the position are in global coordinates, and the position is relative to the object's origin. + Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin. </description> </method> <method name="apply_torque_impulse"> diff --git a/doc/classes/RigidBody2D.xml b/doc/classes/RigidBody2D.xml index 68e78ba5d4..9b74dbedb4 100644 --- a/doc/classes/RigidBody2D.xml +++ b/doc/classes/RigidBody2D.xml @@ -69,7 +69,7 @@ <argument index="1" name="impulse" type="Vector2"> </argument> <description> - Applies a positioned impulse to the body (which will be affected by the body mass and shape). This is the equivalent of hitting a billiard ball with a cue: a force that is applied instantaneously. Both the impulse and the offset from the body origin are in global coordinates. + Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts (use the "_force" functions otherwise). The position uses the rotation of the global coordinate system, but is centered at the object's origin. </description> </method> <method name="apply_torque_impulse"> diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp index 2c52895bda..cc9084dceb 100644 --- a/drivers/gles2/rasterizer_scene_gles2.cpp +++ b/drivers/gles2/rasterizer_scene_gles2.cpp @@ -1564,6 +1564,8 @@ void RasterizerSceneGLES2::_render_geometry(RenderList::Element *p_element) { } else { glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 3, buffer + color_ofs); } + } else { + glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 3, 1.0, 1.0, 1.0, 1.0); } if (multi_mesh->custom_data_floats) { @@ -3041,7 +3043,9 @@ void RasterizerSceneGLES2::render_shadow(RID p_light, RID p_shadow_atlas, int p_ } } - glViewport(0, 0, storage->frame.current_rt->width, storage->frame.current_rt->height); + if (storage->frame.current_rt) { + glViewport(0, 0, storage->frame.current_rt->width, storage->frame.current_rt->height); + } glColorMask(1, 1, 1, 1); } diff --git a/drivers/gles2/shader_compiler_gles2.cpp b/drivers/gles2/shader_compiler_gles2.cpp index fa1242ceed..d6e8edc421 100644 --- a/drivers/gles2/shader_compiler_gles2.cpp +++ b/drivers/gles2/shader_compiler_gles2.cpp @@ -318,7 +318,7 @@ String ShaderCompilerGLES2::_dump_node_code(SL::Node *p_node, int p_level, Gener uniform_code += "uniform "; - uniform_code += _prestr(E->get().precission); + uniform_code += _prestr(E->get().precision); uniform_code += _typestr(E->get().type); uniform_code += " "; uniform_code += _mkid(E->key()); @@ -344,7 +344,7 @@ String ShaderCompilerGLES2::_dump_node_code(SL::Node *p_node, int p_level, Gener StringBuffer<> varying_code; varying_code += "varying "; - varying_code += _prestr(E->get().precission); + varying_code += _prestr(E->get().precision); varying_code += _typestr(E->get().type); varying_code += " "; varying_code += _mkid(E->key()); diff --git a/drivers/gles2/shaders/canvas.glsl b/drivers/gles2/shaders/canvas.glsl index c4a8c8b990..643b6a5cc9 100644 --- a/drivers/gles2/shaders/canvas.glsl +++ b/drivers/gles2/shaders/canvas.glsl @@ -316,9 +316,35 @@ FRAGMENT_SHADER_GLOBALS /* clang-format on */ +void light_compute( + inout vec4 light, + inout vec2 light_vec, + inout float light_height, + inout vec4 light_color, + vec2 light_uv, + inout vec4 shadow_color, + vec3 normal, + vec2 uv, +#if defined(SCREEN_UV_USED) + vec2 screen_uv, +#endif + vec4 color) { + +#if defined(USE_LIGHT_SHADER_CODE) + + /* clang-format off */ + +LIGHT_SHADER_CODE + + /* clang-format on */ + +#endif +} + void main() { vec4 color = color_interp; + vec2 uv = uv_interp; #if !defined(COLOR_USED) //default behavior, texture by color @@ -414,7 +440,6 @@ FRAGMENT_SHADER_CODE color *= light; #ifdef USE_SHADOWS - light_vec = light_uv_interp.zw; //for shadows float angle_to_light = -atan(light_vec.x, light_vec.y); float PI = 3.14159265358979323846264; /*int i = int(mod(floor((angle_to_light+7.0*PI/6.0)/(4.0*PI/6.0))+1.0, 3.0)); // +1 pq os indices estao em ordem 2,0,1 nos arrays diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index 966466d9bc..31f42493a3 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -2343,6 +2343,10 @@ void RasterizerSceneGLES3::_add_geometry_with_material(RasterizerStorageGLES3::G state.used_screen_texture = true; } + if (p_material->shader->spatial.uses_depth_texture) { + state.used_depth_texture = true; + } + if (p_depth_pass) { if (has_blend_alpha || p_material->shader->spatial.uses_depth_texture || (has_base_alpha && p_material->shader->spatial.depth_draw_mode != RasterizerStorageGLES3::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS)) @@ -3159,6 +3163,7 @@ void RasterizerSceneGLES3::_fill_render_list(InstanceBase **p_cull_result, int p current_material_index = 0; state.used_sss = false; state.used_screen_texture = false; + state.used_depth_texture = false; //fill list for (int i = 0; i < p_cull_count; i++) { @@ -4169,7 +4174,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const glColorMask(1, 1, 1, 1); - if (state.used_contact_shadows) { + if (state.used_contact_shadows || state.used_depth_texture) { glBindFramebuffer(GL_READ_FRAMEBUFFER, storage->frame.current_rt->buffers.fbo); glReadBuffer(GL_COLOR_ATTACHMENT0); diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index 325617745a..fbafc59b48 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -204,6 +204,7 @@ public: bool cull_disabled; bool used_sss; bool used_screen_texture; + bool used_depth_texture; bool using_contact_shadows; VS::ViewportDebugDraw debug_draw; diff --git a/drivers/gles3/shader_compiler_gles3.cpp b/drivers/gles3/shader_compiler_gles3.cpp index 4d6f37e093..da54f7a2af 100644 --- a/drivers/gles3/shader_compiler_gles3.cpp +++ b/drivers/gles3/shader_compiler_gles3.cpp @@ -373,7 +373,7 @@ String ShaderCompilerGLES3::_dump_node_code(SL::Node *p_node, int p_level, Gener ucode = "uniform "; } - ucode += _prestr(E->get().precission); + ucode += _prestr(E->get().precision); ucode += _typestr(E->get().type); ucode += " " + _mkid(E->key()); ucode += ";\n"; @@ -464,7 +464,7 @@ String ShaderCompilerGLES3::_dump_node_code(SL::Node *p_node, int p_level, Gener String vcode; String interp_mode = _interpstr(E->get().interpolation); - vcode += _prestr(E->get().precission); + vcode += _prestr(E->get().precision); vcode += _typestr(E->get().type); vcode += " " + _mkid(E->key()); vcode += ";\n"; diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl index 974eff86f3..90775c841f 100644 --- a/drivers/gles3/shaders/canvas.glsl +++ b/drivers/gles3/shaders/canvas.glsl @@ -549,7 +549,6 @@ FRAGMENT_SHADER_CODE color *= light; #ifdef USE_SHADOWS - light_vec = light_uv_interp.zw; //for shadows float angle_to_light = -atan(light_vec.x, light_vec.y); float PI = 3.14159265358979323846264; /*int i = int(mod(floor((angle_to_light+7.0*PI/6.0)/(4.0*PI/6.0))+1.0, 3.0)); // +1 pq os indices estao em ordem 2,0,1 nos arrays diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp index ce1c183242..e3e2e10e82 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -469,6 +469,11 @@ String OS_Unix::get_environment(const String &p_var) const { return ""; } +bool OS_Unix::set_environment(const String &p_var, const String &p_value) const { + + return setenv(p_var.utf8().get_data(), p_value.utf8().get_data(), /* overwrite: */ true) == 0; +} + int OS_Unix::get_processor_count() const { return sysconf(_SC_NPROCESSORS_CONF); diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h index 2a23da6f28..09ab4aa1d8 100644 --- a/drivers/unix/os_unix.h +++ b/drivers/unix/os_unix.h @@ -95,6 +95,7 @@ public: virtual bool has_environment(const String &p_var) const; virtual String get_environment(const String &p_var) const; + virtual bool set_environment(const String &p_var, const String &p_value) const; virtual String get_locale() const; virtual int get_processor_count() const; diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 4ab9a72694..1e5a2897a7 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -31,6 +31,7 @@ #include "code_editor.h" #include "core/os/keyboard.h" +#include "core/string_builder.h" #include "editor/editor_scale.h" #include "editor_node.h" #include "editor_settings.h" @@ -98,9 +99,6 @@ void FindReplaceBar::_notification(int p_what) { } else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { set_process_unhandled_input(is_visible_in_tree()); - if (is_visible_in_tree()) { - _update_size(); - } } else if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { find_prev->set_icon(get_icon("MoveUp", "EditorIcons")); @@ -389,7 +387,6 @@ void FindReplaceBar::_show_search() { search_text->set_cursor_position(search_text->get_text().length()); search_current(); } - call_deferred("_update_size"); } void FindReplaceBar::popup_search() { @@ -482,11 +479,6 @@ void FindReplaceBar::set_text_edit(TextEdit *p_text_edit) { text_edit->connect("text_changed", this, "_editor_text_changed"); } -void FindReplaceBar::_update_size() { - - container->set_size(Size2(hbc->get_size().width, 1)); -} - void FindReplaceBar::_bind_methods() { ClassDB::bind_method("_unhandled_input", &FindReplaceBar::_unhandled_input); @@ -502,7 +494,6 @@ void FindReplaceBar::_bind_methods() { ClassDB::bind_method("_replace_all_pressed", &FindReplaceBar::_replace_all); ClassDB::bind_method("_search_options_changed", &FindReplaceBar::_search_options_changed); ClassDB::bind_method("_hide_pressed", &FindReplaceBar::_hide_bar); - ClassDB::bind_method("_update_size", &FindReplaceBar::_update_size); ADD_SIGNAL(MethodInfo("search")); ADD_SIGNAL(MethodInfo("error")); @@ -510,26 +501,16 @@ void FindReplaceBar::_bind_methods() { FindReplaceBar::FindReplaceBar() { - container = memnew(MarginContainer); - container->add_constant_override("margin_bottom", 5 * EDSCALE); - add_child(container); - container->set_clip_contents(true); - container->set_h_size_flags(SIZE_EXPAND_FILL); - replace_all_mode = false; preserve_cursor = false; - hbc = memnew(HBoxContainer); - container->add_child(hbc); - hbc->set_anchor_and_margin(MARGIN_RIGHT, 1, 0); - vbc_lineedit = memnew(VBoxContainer); - hbc->add_child(vbc_lineedit); + add_child(vbc_lineedit); vbc_lineedit->set_h_size_flags(SIZE_EXPAND_FILL); VBoxContainer *vbc_button = memnew(VBoxContainer); - hbc->add_child(vbc_button); + add_child(vbc_button); VBoxContainer *vbc_option = memnew(VBoxContainer); - hbc->add_child(vbc_option); + add_child(vbc_option); HBoxContainer *hbc_button_search = memnew(HBoxContainer); vbc_button->add_child(hbc_button_search); @@ -673,18 +654,14 @@ void CodeTextEditor::_reset_zoom() { if (font.is_valid()) { EditorSettings::get_singleton()->set("interface/editor/code_font_size", 14); font->set_size(14); - font_size_nb->set_text("14 (100%)"); } } void CodeTextEditor::_line_col_changed() { - line_nb->set_text(itos(text_editor->cursor_get_line() + 1)); - String line = text_editor->get_line(text_editor->cursor_get_line()); int positional_column = 0; - for (int i = 0; i < text_editor->cursor_get_column(); i++) { if (line[i] == '\t') { positional_column += text_editor->get_indent_size(); //tab size @@ -693,7 +670,14 @@ void CodeTextEditor::_line_col_changed() { } } - col_nb->set_text(itos(positional_column + 1)); + StringBuilder *sb = memnew(StringBuilder); + sb->append("("); + sb->append(itos(text_editor->cursor_get_line() + 1).lpad(3)); + sb->append(","); + sb->append(itos(positional_column + 1).lpad(3)); + sb->append(")"); + + line_and_col_txt->set_text(sb->as_string()); } void CodeTextEditor::_text_changed() { @@ -747,8 +731,6 @@ bool CodeTextEditor::_add_font_size(int p_delta) { if (font.is_valid()) { int new_size = CLAMP(font->get_size() + p_delta, 8 * EDSCALE, 96 * EDSCALE); - font_size_nb->set_text(itos(new_size) + " (" + itos(100 * new_size / (14 * EDSCALE)) + "%)"); - if (new_size != font->get_size()) { EditorSettings::get_singleton()->set("interface/editor/code_font_size", new_size / EDSCALE); font->set_size(new_size); @@ -1167,7 +1149,6 @@ void CodeTextEditor::_on_settings_change() { _update_font(); font_size = EditorSettings::get_singleton()->get("interface/editor/code_font_size"); - font_size_nb->set_text(itos(font_size) + " (" + itos(100 * font_size / (14 * EDSCALE)) + "%)"); // AUTO BRACE COMPLETION text_editor->set_auto_brace_completion( @@ -1188,17 +1169,49 @@ void CodeTextEditor::_text_changed_idle_timeout() { emit_signal("validate_script"); } -void CodeTextEditor::_notification(int p_what) { +void CodeTextEditor::_warning_label_gui_input(const Ref<InputEvent> &p_event) { + Ref<InputEventMouseButton> mb = p_event; + if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { + _warning_button_pressed(); + } +} - if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { - _load_theme_settings(); - emit_signal("load_theme_settings"); +void CodeTextEditor::_warning_button_pressed() { + emit_signal("warning_pressed"); +} + +void CodeTextEditor::_error_pressed(const Ref<InputEvent> &p_event) { + Ref<InputEventMouseButton> mb = p_event; + if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { + emit_signal("error_pressed"); } - if (p_what == NOTIFICATION_THEME_CHANGED) { - _update_font(); +} + +void CodeTextEditor::_notification(int p_what) { + + switch (p_what) { + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { + _load_theme_settings(); + emit_signal("load_theme_settings"); + } break; + case NOTIFICATION_THEME_CHANGED: { + _update_font(); + } break; + case NOTIFICATION_ENTER_TREE: { + warning_button->set_icon(get_icon("NodeWarning", "EditorIcons")); + add_constant_override("separation", 4 * EDSCALE); + } break; + default: + break; } } +void CodeTextEditor::set_warning_nb(int p_warning_nb) { + warning_count_label->set_text(itos(p_warning_nb)); + warning_count_label->set_visible(p_warning_nb > 0); + warning_button->set_visible(p_warning_nb > 0); +} + void CodeTextEditor::_bind_methods() { ClassDB::bind_method("_text_editor_gui_input", &CodeTextEditor::_text_editor_gui_input); @@ -1209,9 +1222,14 @@ void CodeTextEditor::_bind_methods() { ClassDB::bind_method("_code_complete_timer_timeout", &CodeTextEditor::_code_complete_timer_timeout); ClassDB::bind_method("_complete_request", &CodeTextEditor::_complete_request); ClassDB::bind_method("_font_resize_timeout", &CodeTextEditor::_font_resize_timeout); + ClassDB::bind_method("_error_pressed", &CodeTextEditor::_error_pressed); + ClassDB::bind_method("_warning_button_pressed", &CodeTextEditor::_warning_button_pressed); + ClassDB::bind_method("_warning_label_gui_input", &CodeTextEditor::_warning_label_gui_input); ADD_SIGNAL(MethodInfo("validate_script")); ADD_SIGNAL(MethodInfo("load_theme_settings")); + ADD_SIGNAL(MethodInfo("warning_pressed")); + ADD_SIGNAL(MethodInfo("error_pressed")); } void CodeTextEditor::set_code_complete_func(CodeTextEditorCodeCompleteFunc p_code_complete_func, void *p_ud) { @@ -1226,15 +1244,16 @@ CodeTextEditor::CodeTextEditor() { ED_SHORTCUT("script_editor/zoom_out", TTR("Zoom Out"), KEY_MASK_CMD | KEY_MINUS); ED_SHORTCUT("script_editor/reset_zoom", TTR("Reset Zoom"), KEY_MASK_CMD | KEY_0); + text_editor = memnew(TextEdit); + add_child(text_editor); + text_editor->set_v_size_flags(SIZE_EXPAND_FILL); + + // Added second so it opens at the bottom, so it won't shift the entire text editor when opening. find_replace_bar = memnew(FindReplaceBar); add_child(find_replace_bar); find_replace_bar->set_h_size_flags(SIZE_EXPAND_FILL); find_replace_bar->hide(); - text_editor = memnew(TextEdit); - add_child(text_editor); - text_editor->set_v_size_flags(SIZE_EXPAND_FILL); - find_replace_bar->set_text_edit(text_editor); text_editor->set_show_line_numbers(true); @@ -1244,6 +1263,7 @@ CodeTextEditor::CodeTextEditor() { status_bar = memnew(HBoxContainer); add_child(status_bar); status_bar->set_h_size_flags(SIZE_EXPAND_FILL); + status_bar->set_custom_minimum_size(Size2(0, 24 * EDSCALE)); // Adjust for the height of the warning icon. idle = memnew(Timer); add_child(idle); @@ -1258,95 +1278,50 @@ CodeTextEditor::CodeTextEditor() { error_line = 0; error_column = 0; + // Error + ScrollContainer *scroll = memnew(ScrollContainer); + scroll->set_h_size_flags(SIZE_EXPAND_FILL); + scroll->set_v_size_flags(SIZE_EXPAND_FILL); + scroll->set_enable_v_scroll(false); + status_bar->add_child(scroll); + error = memnew(Label); - status_bar->add_child(error); - error->set_autowrap(true); - error->set_valign(Label::VALIGN_CENTER); - error->set_h_size_flags(SIZE_EXPAND_FILL); //required for it to display, given now it's clipping contents, do not touch + scroll->add_child(error); + error->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER); error->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("error_color", "Editor")); error->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); error->set_mouse_filter(MOUSE_FILTER_STOP); + error->connect("gui_input", this, "_error_pressed"); find_replace_bar->connect("error", error, "set_text"); - status_bar->add_child(memnew(Label)); //to keep the height if the other labels are not visible - - warning_label = memnew(Label); - status_bar->add_child(warning_label); - warning_label->set_align(Label::ALIGN_RIGHT); - warning_label->set_valign(Label::VALIGN_CENTER); - warning_label->set_v_size_flags(SIZE_FILL); - warning_label->set_default_cursor_shape(CURSOR_POINTING_HAND); - warning_label->set_mouse_filter(MOUSE_FILTER_STOP); - warning_label->set_text(TTR("Warnings:")); - warning_label->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); + // Warnings + warning_button = memnew(ToolButton); + status_bar->add_child(warning_button); + warning_button->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER); + warning_button->set_default_cursor_shape(CURSOR_POINTING_HAND); + warning_button->connect("pressed", this, "_warning_button_pressed"); + warning_button->set_tooltip(TTR("Warnings")); warning_count_label = memnew(Label); status_bar->add_child(warning_count_label); - warning_count_label->set_valign(Label::VALIGN_CENTER); - warning_count_label->set_v_size_flags(SIZE_FILL); - warning_count_label->set_autowrap(true); // workaround to prevent resizing the label on each change, do not touch - warning_count_label->set_clip_text(true); // workaround to prevent resizing the label on each change, do not touch - warning_count_label->set_custom_minimum_size(Size2(40, 1) * EDSCALE); + warning_count_label->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER); warning_count_label->set_align(Label::ALIGN_RIGHT); warning_count_label->set_default_cursor_shape(CURSOR_POINTING_HAND); warning_count_label->set_mouse_filter(MOUSE_FILTER_STOP); + warning_count_label->set_tooltip(TTR("Warnings")); + warning_count_label->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("warning_color", "Editor")); warning_count_label->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - warning_count_label->set_text("0"); - - Label *font_size_txt = memnew(Label); - status_bar->add_child(font_size_txt); - font_size_txt->set_align(Label::ALIGN_RIGHT); - font_size_txt->set_valign(Label::VALIGN_CENTER); - font_size_txt->set_v_size_flags(SIZE_FILL); - font_size_txt->set_text(TTR("Font Size:")); - font_size_txt->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - - font_size_nb = memnew(Label); - status_bar->add_child(font_size_nb); - font_size_nb->set_valign(Label::VALIGN_CENTER); - font_size_nb->set_v_size_flags(SIZE_FILL); - font_size_nb->set_autowrap(true); // workaround to prevent resizing the label on each change, do not touch - font_size_nb->set_clip_text(true); // workaround to prevent resizing the label on each change, do not touch - font_size_nb->set_custom_minimum_size(Size2(100, 1) * EDSCALE); - font_size_nb->set_align(Label::ALIGN_RIGHT); - font_size_nb->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - - Label *line_txt = memnew(Label); - status_bar->add_child(line_txt); - line_txt->set_align(Label::ALIGN_RIGHT); - line_txt->set_valign(Label::VALIGN_CENTER); - line_txt->set_v_size_flags(SIZE_FILL); - line_txt->set_text(TTR("Line:")); - line_txt->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - - line_nb = memnew(Label); - status_bar->add_child(line_nb); - line_nb->set_valign(Label::VALIGN_CENTER); - line_nb->set_v_size_flags(SIZE_FILL); - line_nb->set_autowrap(true); // workaround to prevent resizing the label on each change, do not touch - line_nb->set_clip_text(true); // workaround to prevent resizing the label on each change, do not touch - line_nb->set_custom_minimum_size(Size2(40, 1) * EDSCALE); - line_nb->set_align(Label::ALIGN_RIGHT); - line_nb->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - - Label *col_txt = memnew(Label); - status_bar->add_child(col_txt); - col_txt->set_align(Label::ALIGN_RIGHT); - col_txt->set_valign(Label::VALIGN_CENTER); - col_txt->set_v_size_flags(SIZE_FILL); - col_txt->set_text(TTR("Col:")); - col_txt->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - - col_nb = memnew(Label); - status_bar->add_child(col_nb); - col_nb->set_valign(Label::VALIGN_CENTER); - col_nb->set_v_size_flags(SIZE_FILL); - col_nb->set_autowrap(true); // workaround to prevent resizing the label on each change, do not touch - col_nb->set_clip_text(true); // workaround to prevent resizing the label on each change, do not touch - col_nb->set_custom_minimum_size(Size2(40, 1) * EDSCALE); - col_nb->set_align(Label::ALIGN_RIGHT); - col_nb->set("custom_constants/margin_right", 0); - col_nb->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); + warning_count_label->connect("gui_input", this, "_warning_label_gui_input"); + + set_warning_nb(0); + + // Line and column + line_and_col_txt = memnew(Label); + status_bar->add_child(line_and_col_txt); + line_and_col_txt->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER); + line_and_col_txt->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); + line_and_col_txt->set_tooltip(TTR("Line and column numbers.")); + line_and_col_txt->set_mouse_filter(MOUSE_FILTER_STOP); text_editor->connect("gui_input", this, "_text_editor_gui_input"); text_editor->connect("cursor_changed", this, "_line_col_changed"); @@ -1365,7 +1340,6 @@ CodeTextEditor::CodeTextEditor() { font_resize_val = 0; font_size = EditorSettings::get_singleton()->get("interface/editor/code_font_size"); - font_size_nb->set_text(itos(font_size) + " (" + itos(100 * font_size / (14 * EDSCALE)) + "%)"); font_resize_timer = memnew(Timer); add_child(font_resize_timer); font_resize_timer->set_one_shot(true); diff --git a/editor/code_editor.h b/editor/code_editor.h index 96fc5b79e5..e801b5a17c 100644 --- a/editor/code_editor.h +++ b/editor/code_editor.h @@ -63,7 +63,6 @@ class FindReplaceBar : public HBoxContainer { GDCLASS(FindReplaceBar, HBoxContainer); - MarginContainer *container; LineEdit *search_text; ToolButton *find_prev; ToolButton *find_next; @@ -76,7 +75,6 @@ class FindReplaceBar : public HBoxContainer { Button *replace_all; CheckBox *selection_only; - HBoxContainer *hbc; VBoxContainer *vbc_lineedit; HBoxContainer *hbc_button_replace; HBoxContainer *hbc_option_replace; @@ -142,12 +140,12 @@ class CodeTextEditor : public VBoxContainer { TextEdit *text_editor; FindReplaceBar *find_replace_bar; HBoxContainer *status_bar; - Label *warning_label; + + ToolButton *warning_button; Label *warning_count_label; - Label *line_nb; - Label *col_nb; - Label *font_size_nb; + Label *line_and_col_txt; + Label *info; Timer *idle; Timer *code_complete_timer; @@ -176,6 +174,10 @@ class CodeTextEditor : public VBoxContainer { CodeTextEditorCodeCompleteFunc code_complete_func; void *code_complete_ud; + void _warning_label_gui_input(const Ref<InputEvent> &p_event); + void _warning_button_pressed(); + void _error_pressed(const Ref<InputEvent> &p_event); + protected: virtual void _load_theme_settings() {} virtual void _validate_script() {} @@ -212,15 +214,14 @@ public: Variant get_edit_state(); void set_edit_state(const Variant &p_state); + void set_warning_nb(int p_warning_nb); + void update_editor_settings(); void set_error(const String &p_error); void set_error_pos(int p_line, int p_column); void update_line_and_column() { _line_col_changed(); } TextEdit *get_text_edit() { return text_editor; } FindReplaceBar *get_find_replace_bar() { return find_replace_bar; } - Label *get_error_label() const { return error; } - Label *get_warning_label() const { return warning_label; } - Label *get_warning_count_label() const { return warning_count_label; } virtual void apply_code() {} void goto_error(); diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index f9f1e455f5..f5a60f2553 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -475,7 +475,6 @@ void DependencyRemoveDialog::show(const Vector<String> &p_folders, const Vector< Vector<RemovedDependency> removed_deps; _find_all_removed_dependencies(EditorFileSystem::get_singleton()->get_filesystem(), removed_deps); removed_deps.sort(); - if (removed_deps.empty()) { owners->hide(); text->set_text(TTR("Remove selected files from the project? (no undo)")); @@ -486,6 +485,7 @@ void DependencyRemoveDialog::show(const Vector<String> &p_folders, const Vector< text->set_text(TTR("The files being removed are required by other resources in order for them to work.\nRemove them anyway? (no undo)")); popup_centered_minsize(Size2(500, 350)); } + EditorFileSystem::get_singleton()->scan_changes(); } void DependencyRemoveDialog::ok_pressed() { diff --git a/editor/editor_folding.cpp b/editor/editor_folding.cpp index 6ab41c641d..6b13d19d33 100644 --- a/editor/editor_folding.cpp +++ b/editor/editor_folding.cpp @@ -173,7 +173,7 @@ void EditorFolding::load_scene_folding(Node *p_scene, const String &p_path) { for (int i = 0; i < unfolds.size(); i += 2) { NodePath path = unfolds[i]; PoolVector<String> un = unfolds[i + 1]; - Node *node = p_scene->get_node(path); + Node *node = p_scene->get_node_or_null(path); if (!node) { continue; } diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index f8cee6883b..564148ae4e 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -1423,10 +1423,6 @@ EditorHelp::EditorHelp() { EDITOR_DEF("text_editor/help/sort_functions_alphabetically", true); - find_bar = memnew(FindBar); - add_child(find_bar); - find_bar->hide(); - class_desc = memnew(RichTextLabel); add_child(class_desc); class_desc->set_v_size_flags(SIZE_EXPAND_FILL); @@ -1434,13 +1430,16 @@ EditorHelp::EditorHelp() { class_desc->connect("meta_clicked", this, "_class_desc_select"); class_desc->connect("gui_input", this, "_class_desc_input"); + // Added second so it opens at the bottom so it won't offset the entire widget. + find_bar = memnew(FindBar); + add_child(find_bar); + find_bar->hide(); find_bar->set_rich_text_label(class_desc); class_desc->set_selection_enabled(true); scroll_locked = false; select_locked = false; - //set_process_unhandled_key_input(true); class_desc->hide(); } @@ -1509,47 +1508,32 @@ EditorHelpBit::EditorHelpBit() { rich_text = memnew(RichTextLabel); add_child(rich_text); - //rich_text->set_anchors_and_margins_preset(Control::PRESET_WIDE); rich_text->connect("meta_clicked", this, "_meta_clicked"); rich_text->add_color_override("selection_color", EditorSettings::get_singleton()->get("text_editor/theme/selection_color")); rich_text->set_override_selected_font_color(false); - set_custom_minimum_size(Size2(0, 70 * EDSCALE)); } FindBar::FindBar() { - container = memnew(Control); - add_child(container); - - container->set_clip_contents(true); - container->set_h_size_flags(SIZE_EXPAND_FILL); - - hbc = memnew(HBoxContainer); - container->add_child(hbc); - - vbc_search_text = memnew(VBoxContainer); - hbc->add_child(vbc_search_text); - vbc_search_text->set_h_size_flags(SIZE_EXPAND_FILL); - hbc->set_anchor_and_margin(MARGIN_RIGHT, 1, 0); - search_text = memnew(LineEdit); - vbc_search_text->add_child(search_text); + add_child(search_text); search_text->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); + search_text->set_h_size_flags(SIZE_EXPAND_FILL); search_text->connect("text_changed", this, "_search_text_changed"); search_text->connect("text_entered", this, "_search_text_entered"); find_prev = memnew(ToolButton); - hbc->add_child(find_prev); + add_child(find_prev); find_prev->set_focus_mode(FOCUS_NONE); find_prev->connect("pressed", this, "_search_prev"); find_next = memnew(ToolButton); - hbc->add_child(find_next); + add_child(find_next); find_next->set_focus_mode(FOCUS_NONE); find_next->connect("pressed", this, "_search_next"); error_label = memnew(Label); - hbc->add_child(error_label); + add_child(error_label); error_label->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("error_color", "Editor")); hide_button = memnew(TextureButton); @@ -1576,13 +1560,6 @@ void FindBar::popup_search() { _search(); } } - - call_deferred("_update_size"); -} - -void FindBar::_update_size() { - - container->set_custom_minimum_size(Size2(0, hbc->get_size().height)); } void FindBar::_notification(int p_what) { @@ -1618,7 +1595,6 @@ void FindBar::_bind_methods() { ClassDB::bind_method("_search_next", &FindBar::search_next); ClassDB::bind_method("_search_prev", &FindBar::search_prev); ClassDB::bind_method("_hide_pressed", &FindBar::_hide_bar); - ClassDB::bind_method("_update_size", &FindBar::_update_size); ADD_SIGNAL(MethodInfo("search")); } @@ -1677,7 +1653,7 @@ void FindBar::_unhandled_input(const Ref<InputEvent> &p_event) { Ref<InputEventKey> k = p_event; if (k.is_valid()) { - if (k->is_pressed() && (rich_text_label->has_focus() || hbc->is_a_parent_of(get_focus_owner()))) { + if (k->is_pressed() && (rich_text_label->has_focus() || is_a_parent_of(get_focus_owner()))) { bool accepted = true; diff --git a/editor/editor_help.h b/editor/editor_help.h index 133d98f81f..3b17580a63 100644 --- a/editor/editor_help.h +++ b/editor/editor_help.h @@ -34,6 +34,7 @@ #include "editor/code_editor.h" #include "editor/doc/doc_data.h" #include "editor/editor_plugin.h" +#include "scene/gui/margin_container.h" #include "scene/gui/menu_button.h" #include "scene/gui/panel_container.h" #include "scene/gui/rich_text_label.h" @@ -52,10 +53,6 @@ class FindBar : public HBoxContainer { TextureButton *hide_button; String prev_search; - Control *container; - HBoxContainer *hbc; - VBoxContainer *vbc_search_text; - RichTextLabel *rich_text_label; void _show_search(); @@ -191,9 +188,9 @@ public: ~EditorHelp(); }; -class EditorHelpBit : public PanelContainer { +class EditorHelpBit : public MarginContainer { - GDCLASS(EditorHelpBit, PanelContainer); + GDCLASS(EditorHelpBit, MarginContainer); RichTextLabel *rich_text; void _go_to_help(String p_what); diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp index 803d7e10f7..aaca47622d 100644 --- a/editor/editor_log.cpp +++ b/editor/editor_log.cpp @@ -65,7 +65,6 @@ void EditorLog::_notification(int p_what) { } else if (p_what == NOTIFICATION_THEME_CHANGED) { Ref<DynamicFont> df_output_code = get_font("output_source", "EditorFonts"); if (df_output_code.is_valid()) { - df_output_code->set_size(int(EDITOR_DEF("run/output/font_size", 13)) * EDSCALE); if (log != NULL) { log->add_font_override("normal_font", get_font("output_source", "EditorFonts")); } @@ -132,7 +131,6 @@ void EditorLog::_bind_methods() { EditorLog::EditorLog() { VBoxContainer *vb = this; - add_constant_override("separation", get_constant("separation", "VBoxContainer")); HBoxContainer *hb = memnew(HBoxContainer); vb->add_child(hb); @@ -163,6 +161,8 @@ EditorLog::EditorLog() { current = Thread::get_caller_id(); + add_constant_override("separation", get_constant("separation", "VBoxContainer")); + EditorNode::get_undo_redo()->set_commit_notify_callback(_undo_redo_cbk, this); } diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index c8e00b0586..18858ae2aa 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -326,7 +326,6 @@ void EditorNode::_notification(int p_what) { gui_base->set_theme(theme); gui_base->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles")); - play_button_panel->add_style_override("panel", gui_base->get_stylebox("PlayButtonPanel", "EditorStyles")); scene_root_parent->add_style_override("panel", gui_base->get_stylebox("Content", "EditorStyles")); bottom_panel->add_style_override("panel", gui_base->get_stylebox("panel", "TabContainer")); scene_tabs->add_style_override("tab_fg", gui_base->get_stylebox("SceneTabFG", "EditorStyles")); @@ -2972,6 +2971,7 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b prev_scene->set_disabled(previous_scenes.size() == 0); opening_prev = false; + scene_tree_dock->set_selected(new_scene); ScriptEditor::get_singleton()->get_debugger()->update_live_edit_root(); @@ -4990,7 +4990,6 @@ EditorNode::EditorNode() { main_vbox = memnew(VBoxContainer); gui_base->add_child(main_vbox); main_vbox->set_anchors_and_margins_preset(Control::PRESET_WIDE, Control::PRESET_MODE_MINSIZE, 8); - main_vbox->set_margin(MARGIN_TOP, 5 * EDSCALE); menu_hb = memnew(HBoxContainer); main_vbox->add_child(menu_hb); @@ -5202,11 +5201,8 @@ EditorNode::EditorNode() { viewport->add_constant_override("separation", 0); scene_root_parent->add_child(viewport); - PanelContainer *top_region = memnew(PanelContainer); - top_region->add_style_override("panel", gui_base->get_stylebox("MenuPanel", "EditorStyles")); HBoxContainer *left_menu_hb = memnew(HBoxContainer); - top_region->add_child(left_menu_hb); - menu_hb->add_child(top_region); + menu_hb->add_child(left_menu_hb); file_menu = memnew(MenuButton); file_menu->set_flat(false); @@ -5336,11 +5332,10 @@ EditorNode::EditorNode() { p->add_item(TTR("Quit to Project List"), RUN_PROJECT_MANAGER, KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_Q); #endif - PanelContainer *editor_region = memnew(PanelContainer); - main_editor_button_vb = memnew(HBoxContainer); - editor_region->add_child(main_editor_button_vb); menu_hb->add_spacer(); - menu_hb->add_child(editor_region); + + main_editor_button_vb = memnew(HBoxContainer); + menu_hb->add_child(main_editor_button_vb); debug_menu = memnew(MenuButton); debug_menu->set_flat(false); @@ -5429,11 +5424,8 @@ EditorNode::EditorNode() { p->add_separator(); p->add_icon_item(gui_base->get_icon("Godot", "EditorIcons"), TTR("About"), HELP_ABOUT); - play_button_panel = memnew(PanelContainer); - menu_hb->add_child(play_button_panel); - HBoxContainer *play_hb = memnew(HBoxContainer); - play_button_panel->add_child(play_hb); + menu_hb->add_child(play_hb); play_button = memnew(ToolButton); play_hb->add_child(play_button); @@ -5511,7 +5503,6 @@ EditorNode::EditorNode() { video_driver = memnew(OptionButton); video_driver->set_flat(true); video_driver->set_focus_mode(Control::FOCUS_NONE); - video_driver->set_v_size_flags(Control::SIZE_SHRINK_CENTER); video_driver->connect("item_selected", this, "_video_driver_selected"); video_driver->add_font_override("font", gui_base->get_font("bold", "EditorFonts")); right_menu_hb->add_child(video_driver); @@ -5547,7 +5538,7 @@ EditorNode::EditorNode() { layout_dialog->connect("name_confirmed", this, "_dialog_action"); update_menu = memnew(MenuButton); - update_menu->set_tooltip(TTR("Spins when the editor window repaints!")); + update_menu->set_tooltip(TTR("Spins when the editor window redraws.")); right_menu_hb->add_child(update_menu); update_menu->set_icon(gui_base->get_icon("Progress1", "EditorIcons")); update_menu->get_popup()->connect("id_pressed", this, "_menu_option"); diff --git a/editor/editor_node.h b/editor/editor_node.h index a45ea54186..077704ca05 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -200,7 +200,6 @@ private: Control *theme_base; Control *gui_base; VBoxContainer *main_vbox; - PanelContainer *play_button_panel; OptionButton *video_driver; ConfirmationDialog *video_restart_dialog; diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 9973c7354e..cbd8df315a 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -575,6 +575,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("run/auto_save/save_before_running", true); // Output + hints["run/output/font_size"] = PropertyInfo(Variant::INT, "run/output/font_size", PROPERTY_HINT_RANGE, "8,96,1", PROPERTY_USAGE_DEFAULT); _initial_set("run/output/always_clear_output_on_play", true); _initial_set("run/output/always_open_output_on_play", true); _initial_set("run/output/always_close_output_on_stop", false); diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 31655fed87..ffbb4339df 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -481,6 +481,10 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { style_tab_unselected->set_bg_color(dark_color_1); style_tab_unselected->set_border_color_all(dark_color_2); + Ref<StyleBoxFlat> style_tab_disabled = style_tab_selected->duplicate(); + style_tab_disabled->set_bg_color(color_disabled_bg); + style_tab_disabled->set_border_color_all(color_disabled); + // Editor background theme->set_stylebox("Background", "EditorStyles", make_flat_stylebox(background_color, default_margin_size, default_margin_size, default_margin_size, default_margin_size)); @@ -742,8 +746,10 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { // Tabs & TabContainer theme->set_stylebox("tab_fg", "TabContainer", style_tab_selected); theme->set_stylebox("tab_bg", "TabContainer", style_tab_unselected); + theme->set_stylebox("tab_disabled", "TabContainer", style_tab_disabled); theme->set_stylebox("tab_fg", "Tabs", style_tab_selected); theme->set_stylebox("tab_bg", "Tabs", style_tab_unselected); + theme->set_stylebox("tab_disabled", "Tabs", style_tab_disabled); theme->set_color("font_color_fg", "TabContainer", font_color); theme->set_color("font_color_bg", "TabContainer", font_color_disabled); theme->set_color("font_color_fg", "Tabs", font_color); diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index b2d2704f07..98d639a2d3 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -3288,7 +3288,7 @@ void CanvasItemEditor::_notification(int p_what) { Control *control = Object::cast_to<Control>(E->get()); if (!control || Object::cast_to<Container>(control->get_parent())) { presets_menu->set_disabled(true); - presets_menu->set_tooltip(TTR("A child of a container gets its anchors and margins values overriden by its parent.")); + presets_menu->set_tooltip(TTR("Children of containers have their anchors and margins values overridden by their parent.")); break; } } diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 60dc156782..c747e8fe5c 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -273,18 +273,12 @@ void ScriptTextEditor::_set_theme_for_script() { } } -void ScriptTextEditor::_toggle_warning_pannel(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> mb = p_event; - if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - warnings_panel->set_visible(!warnings_panel->is_visible()); - } +void ScriptTextEditor::_toggle_warning_pannel() { + warnings_panel->set_visible(!warnings_panel->is_visible()); } -void ScriptTextEditor::_error_pressed(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> mb = p_event; - if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - code_editor->goto_error(); - } +void ScriptTextEditor::_error_pressed() { + code_editor->goto_error(); } void ScriptTextEditor::_warning_clicked(Variant p_line) { @@ -468,7 +462,7 @@ void ScriptTextEditor::_validate_script() { } } - code_editor->get_warning_count_label()->set_text(itos(warnings.size())); + code_editor->set_warning_nb(warnings.size()); warnings_panel->clear(); warnings_panel->push_table(3); for (List<ScriptLanguage::Warning>::Element *E = warnings.front(); E; E = E->next()) { @@ -1427,7 +1421,7 @@ ScriptTextEditor::ScriptTextEditor() { code_editor = memnew(CodeTextEditor); editor_box->add_child(code_editor); - code_editor->add_constant_override("separation", 0); + code_editor->add_constant_override("separation", 2); code_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE); code_editor->connect("validate_script", this, "_validate_script"); code_editor->connect("load_theme_settings", this, "_load_theme_settings"); @@ -1445,9 +1439,8 @@ ScriptTextEditor::ScriptTextEditor() { warnings_panel->set_focus_mode(FOCUS_CLICK); warnings_panel->hide(); - code_editor->get_error_label()->connect("gui_input", this, "_error_pressed"); - code_editor->get_warning_label()->connect("gui_input", this, "_toggle_warning_pannel"); - code_editor->get_warning_count_label()->connect("gui_input", this, "_toggle_warning_pannel"); + code_editor->connect("error_pressed", this, "_error_pressed"); + code_editor->connect("warning_pressed", this, "_toggle_warning_pannel"); warnings_panel->connect("meta_clicked", this, "_warning_clicked"); update_settings(); diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h index 856e442d82..6e88fc2301 100644 --- a/editor/plugins/script_text_editor.h +++ b/editor/plugins/script_text_editor.h @@ -125,8 +125,8 @@ protected: void _code_complete_script(const String &p_code, List<String> *r_options, bool &r_force); void _load_theme_settings(); void _set_theme_for_script(); - void _toggle_warning_pannel(const Ref<InputEvent> &p_event); - void _error_pressed(const Ref<InputEvent> &p_event); + void _toggle_warning_pannel(); + void _error_pressed(); void _warning_clicked(Variant p_line); void _notification(int p_what); diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index b712cfc9d3..89bb7440fe 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -40,10 +40,8 @@ void SpriteFramesEditor::_gui_input(Ref<InputEvent> p_event) { void SpriteFramesEditor::_notification(int p_what) { - if (p_what == NOTIFICATION_PHYSICS_PROCESS) { - } - if (p_what == NOTIFICATION_ENTER_TREE) { + load->set_icon(get_icon("Load", "EditorIcons")); copy->set_icon(get_icon("ActionCopy", "EditorIcons")); paste->set_icon(get_icon("ActionPaste", "EditorIcons")); @@ -54,14 +52,9 @@ void SpriteFramesEditor::_notification(int p_what) { _delete->set_icon(get_icon("Remove", "EditorIcons")); new_anim->set_icon(get_icon("New", "EditorIcons")); remove_anim->set_icon(get_icon("Remove", "EditorIcons")); - } - - if (p_what == NOTIFICATION_READY) { + } else if (p_what == NOTIFICATION_READY) { - //NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true); - } - - if (p_what == NOTIFICATION_DRAW) { + add_constant_override("autohide", 1); // Fixes the dragger always showing up. } } @@ -649,7 +642,6 @@ void SpriteFramesEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da void SpriteFramesEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &SpriteFramesEditor::_gui_input); ClassDB::bind_method(D_METHOD("_load_pressed"), &SpriteFramesEditor::_load_pressed); ClassDB::bind_method(D_METHOD("_empty_pressed"), &SpriteFramesEditor::_empty_pressed); ClassDB::bind_method(D_METHOD("_empty2_pressed"), &SpriteFramesEditor::_empty2_pressed); @@ -673,31 +665,25 @@ void SpriteFramesEditor::_bind_methods() { SpriteFramesEditor::SpriteFramesEditor() { - //add_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_stylebox("panel","Panel")); - - split = memnew(HSplitContainer); - add_child(split); - VBoxContainer *vbc_animlist = memnew(VBoxContainer); - split->add_child(vbc_animlist); + add_child(vbc_animlist); vbc_animlist->set_custom_minimum_size(Size2(150, 0) * EDSCALE); - //vbc_animlist->set_v_size_flags(SIZE_EXPAND_FILL); VBoxContainer *sub_vb = memnew(VBoxContainer); - vbc_animlist->add_margin_child(TTR("Animations"), sub_vb, true); + vbc_animlist->add_margin_child(TTR("Animations:"), sub_vb, true); sub_vb->set_v_size_flags(SIZE_EXPAND_FILL); HBoxContainer *hbc_animlist = memnew(HBoxContainer); sub_vb->add_child(hbc_animlist); - new_anim = memnew(Button); - new_anim->set_flat(true); + new_anim = memnew(ToolButton); + new_anim->set_tooltip(TTR("New Animation")); hbc_animlist->add_child(new_anim); new_anim->set_h_size_flags(SIZE_EXPAND_FILL); new_anim->connect("pressed", this, "_animation_add"); - remove_anim = memnew(Button); - remove_anim->set_flat(true); + remove_anim = memnew(ToolButton); + remove_anim->set_tooltip(TTR("Remove Animation")); hbc_animlist->add_child(remove_anim); remove_anim->connect("pressed", this, "_animation_remove"); @@ -722,56 +708,47 @@ SpriteFramesEditor::SpriteFramesEditor() { anim_loop->connect("pressed", this, "_animation_loop_changed"); VBoxContainer *vbc = memnew(VBoxContainer); - split->add_child(vbc); + add_child(vbc); vbc->set_h_size_flags(SIZE_EXPAND_FILL); sub_vb = memnew(VBoxContainer); - vbc->add_margin_child(TTR("Animation Frames"), sub_vb, true); + vbc->add_margin_child(TTR("Animation Frames:"), sub_vb, true); HBoxContainer *hbc = memnew(HBoxContainer); sub_vb->add_child(hbc); - //animations = memnew( ItemList ); - - load = memnew(Button); - load->set_flat(true); + load = memnew(ToolButton); load->set_tooltip(TTR("Load Resource")); hbc->add_child(load); - copy = memnew(Button); - copy->set_flat(true); + copy = memnew(ToolButton); copy->set_tooltip(TTR("Copy")); hbc->add_child(copy); - paste = memnew(Button); - paste->set_flat(true); + paste = memnew(ToolButton); paste->set_tooltip(TTR("Paste")); hbc->add_child(paste); - empty = memnew(Button); - empty->set_flat(true); + empty = memnew(ToolButton); empty->set_tooltip(TTR("Insert Empty (Before)")); hbc->add_child(empty); - empty2 = memnew(Button); - empty2->set_flat(true); + empty2 = memnew(ToolButton); empty2->set_tooltip(TTR("Insert Empty (After)")); hbc->add_child(empty2); hbc->add_spacer(false); - move_up = memnew(Button); - move_up->set_flat(true); + move_up = memnew(ToolButton); move_up->set_tooltip(TTR("Move (Before)")); hbc->add_child(move_up); - move_down = memnew(Button); - move_down->set_flat(true); + move_down = memnew(ToolButton); move_down->set_tooltip(TTR("Move (After)")); hbc->add_child(move_down); - _delete = memnew(Button); - _delete->set_flat(true); + _delete = memnew(ToolButton); + _delete->set_tooltip(TTR("Delete")); hbc->add_child(_delete); file = memnew(EditorFileDialog); @@ -787,7 +764,6 @@ SpriteFramesEditor::SpriteFramesEditor() { tree->set_fixed_column_width(thumbnail_size * 3 / 2); tree->set_max_text_lines(2); tree->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size)); - //tree->set_min_icon_size(Size2(thumbnail_size,thumbnail_size)); tree->set_drag_forwarding(this); sub_vb->add_child(tree); diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h index 3ef4ba290b..55dd10074e 100644 --- a/editor/plugins/sprite_frames_editor_plugin.h +++ b/editor/plugins/sprite_frames_editor_plugin.h @@ -39,25 +39,25 @@ #include "scene/gui/split_container.h" #include "scene/gui/tree.h" -class SpriteFramesEditor : public PanelContainer { - - GDCLASS(SpriteFramesEditor, PanelContainer); - - Button *load; - Button *_delete; - Button *copy; - Button *paste; - Button *empty; - Button *empty2; - Button *move_up; - Button *move_down; +class SpriteFramesEditor : public HSplitContainer { + + GDCLASS(SpriteFramesEditor, HSplitContainer); + + ToolButton *load; + ToolButton *_delete; + ToolButton *copy; + ToolButton *paste; + ToolButton *empty; + ToolButton *empty2; + ToolButton *move_up; + ToolButton *move_down; ItemList *tree; bool loading_scene; int sel; HSplitContainer *split; - Button *new_anim; - Button *remove_anim; + ToolButton *new_anim; + ToolButton *remove_anim; Tree *animations; SpinBox *anim_speed; diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 7ce4029476..9efd037772 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -1526,6 +1526,13 @@ void ProjectManager::_open_selected_projects_ask() { } int config_version = (int)cf->get_value("", "config_version", 0); + + // Check if the config_version property was empty or 0 + if (config_version == 0) { + ask_update_settings->set_text(vformat(TTR("The following project settings file does not specify the version of Godot through which it was created.\n\n%s\n\nIf you proceed with opening it, it will be converted to Godot's current configuration file format.\nWarning: You will not be able to open the project with previous versions of the engine anymore."), conf)); + ask_update_settings->popup_centered_minsize(); + return; + } // Check if we need to convert project settings from an earlier engine version if (config_version < ProjectSettings::CONFIG_VERSION) { ask_update_settings->set_text(vformat(TTR("The following project settings file was generated by an older engine version, and needs to be converted for this version:\n\n%s\n\nDo you want to convert it?\nWarning: You will not be able to open the project with previous versions of the engine anymore."), conf)); @@ -1888,13 +1895,11 @@ ProjectManager::ProjectManager() { Panel *panel = memnew(Panel); gui_base->add_child(panel); panel->set_anchors_and_margins_preset(Control::PRESET_WIDE); + panel->add_style_override("panel", gui_base->get_stylebox("Background", "EditorStyles")); VBoxContainer *vb = memnew(VBoxContainer); panel->add_child(vb); - vb->set_anchors_and_margins_preset(Control::PRESET_WIDE, Control::PRESET_MODE_MINSIZE, 20 * EDSCALE); - vb->set_margin(MARGIN_TOP, 4 * EDSCALE); - vb->set_margin(MARGIN_BOTTOM, -4 * EDSCALE); - vb->add_constant_override("separation", 15 * EDSCALE); + vb->set_anchors_and_margins_preset(Control::PRESET_WIDE, Control::PRESET_MODE_MINSIZE, 8 * EDSCALE); String cp; cp += 0xA9; @@ -1902,11 +1907,9 @@ ProjectManager::ProjectManager() { HBoxContainer *top_hb = memnew(HBoxContainer); vb->add_child(top_hb); - CenterContainer *ccl = memnew(CenterContainer); Label *l = memnew(Label); l->set_text(VERSION_NAME + String(" - ") + TTR("Project Manager")); - ccl->add_child(l); - top_hb->add_child(ccl); + top_hb->add_child(l); top_hb->add_spacer(); l = memnew(Label); String hash = String(VERSION_HASH); @@ -2053,6 +2056,8 @@ ProjectManager::ProjectManager() { settings_hb->set_h_grow_direction(Control::GROW_DIRECTION_BEGIN); language_btn = memnew(OptionButton); + language_btn->set_flat(true); + language_btn->set_focus_mode(Control::FOCUS_NONE); Vector<String> editor_languages; List<PropertyInfo> editor_settings_properties; diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp index 4f1928d20c..268a765994 100644 --- a/editor/spatial_editor_gizmos.cpp +++ b/editor/spatial_editor_gizmos.cpp @@ -2414,8 +2414,8 @@ void ParticlesGizmoPlugin::commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo(); ur->create_action(TTR("Change Particles AABB")); - ur->add_do_method(particles, "set_custom_aabb", particles->get_visibility_aabb()); - ur->add_undo_method(particles, "set_custom_aabb", p_restore); + ur->add_do_method(particles, "set_visibility_aabb", particles->get_visibility_aabb()); + ur->add_undo_method(particles, "set_visibility_aabb", p_restore); ur->commit_action(); } diff --git a/editor/translations/af.po b/editor/translations/af.po index 58d83b6c78..61e9a5d41c 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -552,22 +552,14 @@ msgstr "Zoem Uit" msgid "Reset Zoom" msgstr "Herset Zoem" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Reël:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Kol:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "Metode in teiken Nodus moet gespesifiseer word!" @@ -878,8 +870,8 @@ msgstr "Skrap gekose lêers?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Skrap" @@ -4279,6 +4271,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6293,7 +6295,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6371,8 +6373,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Animasie Zoem." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Optimaliseer Animasie" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6383,8 +6391,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Animasie Zoem." #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7185,6 +7194,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8677,10 +8699,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9319,6 +9337,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9474,6 +9499,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9587,10 +9619,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9674,6 +9714,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "Reël:" + +#~ msgid "Col:" +#~ msgstr "Kol:" + #, fuzzy #~ msgid "Split already exists." #~ msgstr "AutoLaai '%s' bestaan reeds!" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 83a9c0b676..7fcfcc542b 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -567,22 +567,13 @@ msgstr "إبعاد" msgid "Reset Zoom" msgstr "إرجاع التكبير" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Øجم الخطوط:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "الخط:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "العمود:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -890,8 +881,8 @@ msgstr "Ø¥Ù…Ø³Ø Ø§Ù„Ù…Ù„Ùات المØددة؟" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "مسØ" @@ -4380,6 +4371,16 @@ msgid "Move CanvasItem" msgstr "تعديل العنصر القماشي" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "المرتكزات Ùقط" @@ -6426,7 +6427,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6507,8 +6508,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "صورة متØركة" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "صورة متØركة" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6519,8 +6526,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "إسم الØركة:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7346,6 +7354,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8857,10 +8878,6 @@ msgid "Build Project" msgstr "بناء المشروع" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "إظهار الملÙات" @@ -9501,6 +9518,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9656,6 +9680,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9770,10 +9801,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "أض٠اللون الØالي كإعداد مسبق" @@ -9860,6 +9899,16 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Øجم الخطوط:" + +#~ msgid "Line:" +#~ msgstr "الخط:" + +#~ msgid "Col:" +#~ msgstr "العمود:" + +#, fuzzy #~ msgid "Split already exists." #~ msgstr "التØميل التلقائي '%s' موجود اصلا!" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 02907898dd..a29d4f2a32 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -552,22 +552,13 @@ msgstr "Отдалечи" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "ПредупреждениÑ:" - -#: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Изглед Отпред." - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Ред:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Колона:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -863,8 +854,8 @@ msgstr "Изтрий избраните файлове?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Изтрий" @@ -4294,6 +4285,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6313,7 +6314,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6392,8 +6393,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Ðнимационни ИнÑтрументи" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Ðово Име на ÐнимациÑ:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6404,8 +6411,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Ðово Име на ÐнимациÑ:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7233,6 +7241,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8768,10 +8789,6 @@ msgid "Build Project" msgstr "Проект" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Преглед на файловете" @@ -9436,6 +9453,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "ParallaxLayer работи Ñамо когато е наÑледник на ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9593,6 +9617,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9706,10 +9737,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9793,6 +9832,19 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "ПредупреждениÑ:" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Изглед Отпред." + +#~ msgid "Line:" +#~ msgstr "Ред:" + +#~ msgid "Col:" +#~ msgstr "Колона:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "PathFollow2D работи Ñамо когато е наÑледник на Path2D." diff --git a/editor/translations/bn.po b/editor/translations/bn.po index fb4979b319..0dd1ea9ec6 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -570,23 +570,14 @@ msgstr "সংকà§à¦šà¦¿à¦¤ করà§à¦¨ (জà§à¦®à§ আউট)" msgid "Reset Zoom" msgstr "সমà§à¦ªà§à¦°à¦¸à¦¾à¦°à¦¨/সংকোচন অপসারণ করà§à¦¨ (রিসেট জà§à¦®à§)" -#: editor/code_editor.cpp +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp #, fuzzy -msgid "Warnings:" +msgid "Warnings" msgstr "সতরà§à¦•à¦¤à¦¾" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "উৎস ফনà§à¦Ÿà§‡à¦° আকার:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "লাইন:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "কলাম:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -900,8 +891,8 @@ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "অপসারণ করà§à¦¨" @@ -4544,6 +4535,16 @@ msgid "Move CanvasItem" msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Anchors only" msgstr "অà§à¦¯à¦¾à¦‚কর" @@ -6677,7 +6678,7 @@ msgid "Post" msgstr "পরবরà§à¦¤à§€ (Post)" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6760,10 +6761,16 @@ msgid "(empty)" msgstr "(খালি/শূনà§à¦¯)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à¦¸à¦®à§‚হ" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "গতি (FPS):" @@ -6772,7 +6779,8 @@ msgid "Loop" msgstr "লà§à¦ª" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° ফà§à¦°à§‡à¦®à¦¸à¦®à§‚হ" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7645,6 +7653,19 @@ msgstr "à¦à¦•à¦§à¦¿à¦• পà§à¦°à¦•à¦²à§à¦ª খোলায় আপনি সৠ#: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -9261,11 +9282,6 @@ msgstr "নতà§à¦¨ পà§à¦°à¦•à¦²à§à¦ª" #: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy -msgid "Warnings" -msgstr "সতরà§à¦•à¦¤à¦¾" - -#: modules/mono/editor/mono_bottom_panel.cpp -#, fuzzy msgid "View log" msgstr "ফাইল" @@ -9966,6 +9982,13 @@ msgid "" msgstr "" "ParallaxLayer à¦à¦•à¦®à¦¾à¦¤à§à¦° ParallaxBackground à¦à¦° অংশ হিসেবে নিরà§à¦§à¦¾à¦°à¦¨ করলেই কাজ করে।" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -10139,6 +10162,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -10259,11 +10289,19 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" msgstr "পà§à¦¯à¦¾à¦¨ মোড" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -10357,6 +10395,20 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Warnings:" +#~ msgstr "সতরà§à¦•à¦¤à¦¾" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "উৎস ফনà§à¦Ÿà§‡à¦° আকার:" + +#~ msgid "Line:" +#~ msgstr "লাইন:" + +#~ msgid "Col:" +#~ msgstr "কলাম:" + +#, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "PathFollow2D à¦à¦•à¦®à¦¾à¦¤à§à¦° Path2D à¦à¦° অংশ হিসেবে নিরà§à¦§à¦¾à¦°à¦¨ করালেই কাজ করে।" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 156368509a..afe86eb47c 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -547,22 +547,13 @@ msgstr "Allunya" msgid "Reset Zoom" msgstr "Reinicia el Zoom" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Avisos:" - -#: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Mida de la lletra:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "LÃnia:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Avisos" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Col:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -866,8 +857,8 @@ msgstr "Voleu Esborrar els fitxers seleccionats?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Esborra" @@ -4356,6 +4347,16 @@ msgid "Move CanvasItem" msgstr "Modifica el elementCanvas" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Només Ancoratges" @@ -6414,7 +6415,7 @@ msgid "Post" msgstr "Post" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6496,10 +6497,16 @@ msgid "(empty)" msgstr "(buit)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animacions" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animació" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Velocitat (FPS):" @@ -6508,7 +6515,8 @@ msgid "Loop" msgstr "Bucle" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Fotogrames d'Animació" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7350,6 +7358,19 @@ msgstr "Esteu segur que voleu obrir més d'un projecte de cop?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8908,10 +8929,6 @@ msgid "Build Project" msgstr "Munta el Projecte" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Avisos" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Mostra el Registre" @@ -9593,6 +9610,13 @@ msgstr "" "Un node ParallaxLayer només funciona quan s'estableix com a fill d'un node " "ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9776,6 +9800,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "Res és visible perquè no s'ha assignat cap Malla a cap pas de Dibuix." @@ -9909,10 +9940,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Mode Cru" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Afegeix el Color actual com a predeterminat" @@ -10010,6 +10049,19 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "Avisos:" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Mida de la lletra:" + +#~ msgid "Line:" +#~ msgstr "LÃnia:" + +#~ msgid "Col:" +#~ msgstr "Col:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index aa82d935de..40308bf109 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -5,7 +5,7 @@ # Fadex <vitekpaulik@gmail.com>, 2017. # Jan 'spl!te' KondelÃk <j.kondelik@centrum.cz>, 2016, 2018. # Jiri Hysek <contact@jirihysek.com>, 2017. -# Josef KuchaÅ™ <josef.kuchar267@gmail.com>, 2018. +# Josef KuchaÅ™ <josef.kuchar267@gmail.com>, 2018, 2019. # LudÄ›k Novotný <gladosicek@gmail.com>, 2016, 2018. # Martin Novák <maidx@seznam.cz>, 2017. # zxey <r.hozak@seznam.cz>, 2018. @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:38+0100\n" -"Last-Translator: VojtÄ›ch Å amla <auzkok@seznam.cz>\n" +"PO-Revision-Date: 2019-02-10 12:01+0000\n" +"Last-Translator: Josef KuchaÅ™ <josef.kuchar267@gmail.com>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" "Language: cs\n" @@ -23,7 +23,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Weblate 3.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -39,7 +39,7 @@ msgstr "Nedostatek bytů pro dekódovánà bytů, nebo Å¡patný formát." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "Neplatný vstup %i (neproÅ¡el) ve výrazu" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -73,7 +73,7 @@ msgstr "Uvolnit" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "" +msgstr "Vyvážený" #: editor/animation_bezier_editor.cpp #, fuzzy @@ -304,7 +304,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "Stopa animae může odkazovat pouze na uzly AnimationPlayer." +msgstr "Stopa animace může odkazovat pouze na uzly AnimationPlayer." #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." @@ -550,22 +550,13 @@ msgstr "Oddálit" msgid "Reset Zoom" msgstr "Obnovit původnà pÅ™iblÞenÃ" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "VarovánÃ:" - -#: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Pohled zepÅ™edu" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Řádek:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "VarovánÃ" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Sloupec:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -869,8 +860,8 @@ msgstr "Odstranit vybrané soubory?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Odstranit" @@ -1457,7 +1448,7 @@ msgstr "(Re)Importovánà assetů" #: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp msgid "Top" -msgstr "" +msgstr "HornÃ" #: editor/editor_help.cpp msgid "Class:" @@ -1629,7 +1620,7 @@ msgstr "Nastavit" #: editor/editor_inspector.cpp msgid "Set Multiple:" -msgstr "" +msgstr "Nastavit vÃce:" #: editor/editor_log.cpp msgid "Output:" @@ -4277,6 +4268,16 @@ msgid "Move CanvasItem" msgstr "PÅ™emÃstit CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Pouze kotvy" @@ -6299,7 +6300,7 @@ msgid "Post" msgstr "Po" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6375,7 +6376,13 @@ msgid "(empty)" msgstr "(prázdný)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "Animace" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" msgstr "Animace" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6387,7 +6394,8 @@ msgid "Loop" msgstr "SmyÄka" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "SnÃmky animace" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7206,6 +7214,19 @@ msgstr "Jste si jisti, že chcete otevÅ™it vÃce než jeden projekt?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8727,10 +8748,6 @@ msgid "Build Project" msgstr "Sestavit projekt" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "VarovánÃ" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Zobrazit soubory" @@ -9407,6 +9424,13 @@ msgid "" msgstr "" "Uzel ParallaxLayer funguje pouze když je dÃtÄ›tem uzlu ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9581,6 +9605,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9704,10 +9735,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "RAW mód" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "PÅ™idat aktuálnà barvu jako pÅ™edvolbu" @@ -9801,6 +9840,19 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "VarovánÃ:" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Pohled zepÅ™edu" + +#~ msgid "Line:" +#~ msgstr "Řádek:" + +#~ msgid "Col:" +#~ msgstr "Sloupec:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "OrientedPathFollow funguje pouze když je dÃtÄ›tem uzlu Path." diff --git a/editor/translations/da.po b/editor/translations/da.po index 6c6f3152db..b5cda124b7 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -548,21 +548,13 @@ msgstr "Zoom Ud" msgid "Reset Zoom" msgstr "Nulstil Zoom" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Advarsler:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Skrifttype Størrelse:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linje:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Kol:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -864,8 +856,8 @@ msgstr "Slet markerede filer?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Slet" @@ -4329,6 +4321,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6369,7 +6371,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6449,8 +6451,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Tilføj animation" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Ny Animation Navn:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6461,8 +6469,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Ny Animation Navn:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7283,6 +7292,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8802,10 +8824,6 @@ msgid "Build Project" msgstr "Projekt" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Vis filer" @@ -9481,6 +9499,13 @@ msgstr "" "ParallaxLayer node virker kun, nÃ¥r den angives som barn af en " "ParallaxBackground node." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9651,6 +9676,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9771,10 +9803,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9866,6 +9906,18 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "Advarsler:" + +#~ msgid "Font Size:" +#~ msgstr "Skrifttype Størrelse:" + +#~ msgid "Line:" +#~ msgstr "Linje:" + +#~ msgid "Col:" +#~ msgstr "Kol:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" diff --git a/editor/translations/de.po b/editor/translations/de.po index 38f480d548..8f6902a3f3 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -36,12 +36,13 @@ # asyncial <mahlburg@posteo.de>, 2018. # ssantos <ssantos@web.de>, 2018. # Rémi Verschelde <akien@godotengine.org>, 2019. +# Martin <martinreininger@gmx.net>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" -"Last-Translator: So Wieso <sowieso@dukun.de>\n" +"PO-Revision-Date: 2019-02-10 12:01+0000\n" +"Last-Translator: Martin <martinreininger@gmx.net>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" "Language: de\n" @@ -576,21 +577,13 @@ msgstr "Verkleinern" msgid "Reset Zoom" msgstr "Vergrößerung zurücksetzen" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Warnungen:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Schriftgröße:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Zeile:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Warnungen" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Spalte:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -895,8 +888,8 @@ msgstr "Ausgewählte Dateien löschen?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Löschen" @@ -1007,7 +1000,7 @@ msgstr "Inhalte werden entpackt" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "Package installed successfully!" -msgstr "Paket erfolgreich installiert!" +msgstr "Paket wurde erfolgreich installiert!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2648,7 +2641,7 @@ msgstr "[leer]" #: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp msgid "Assign..." -msgstr "Zuweisen.." +msgstr "Zuweisen..." #: editor/editor_properties.cpp msgid "Invalid RID" @@ -3368,17 +3361,20 @@ msgstr "Neuimport" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Szenen speichern, reimportieren und neu starten" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Das Ändern des Video-Treibers erfordert einen Neustart des Editors." +msgstr "" +"Den Typ einer importierten Datei zu ändern erfordert einen Neustart des " +"Editors." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"ACHTUNG: Es existieren Inhalte die diese Ressource nutzen und nachher " +"möglicherweise nicht mehr ordnungsgemäß laden können." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4342,6 +4338,19 @@ msgid "Move CanvasItem" msgstr "CanvasItem verschieben" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Warnung: Position und Größe der Kinder eines Containers werden nur von ihren " +"Eltern bestimmt." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "nur Anker" @@ -6345,7 +6354,8 @@ msgid "Post" msgstr "Nachher" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "Namenloser Anfasser" #: editor/plugins/sprite_editor_plugin.cpp @@ -6423,10 +6433,16 @@ msgid "(empty)" msgstr "(leer)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animationen" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animation" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Geschwindigkeit (FPS):" @@ -6435,7 +6451,8 @@ msgid "Loop" msgstr "Wiederholung" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Animationsframes" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6763,7 +6780,7 @@ msgstr "Keine Textur zum Entfernen ausgewählt." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene? This will overwrite all current tiles." -msgstr "Aus Szene erstellen? Alle gegenwärtigen Kacheln werden überschrieben." +msgstr "Aus Szene erstellen? Alle aktuellen Kacheln werden überschrieben!" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from scene?" @@ -6849,7 +6866,7 @@ msgstr "Kachel erstellen" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Icon" -msgstr "Kachel-Icon setzen" +msgstr "Kachel Icon zuweisen" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Tile Bitmask" @@ -6873,7 +6890,7 @@ msgstr "Kachel-Bitmaske einfügen" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Clear Tile Bitmask" -msgstr "Kachel-Bitmaske leeren" +msgstr "Kachel Bitmaske löschen" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -7188,15 +7205,15 @@ msgstr "Projektinstallationspfad:" #: editor/project_manager.cpp msgid "Browse" -msgstr "Durchstöbern" +msgstr "Durchsuchen" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderer:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7205,10 +7222,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Höhere Grafikqualität\n" +"Alle Funktionen verfügbar\n" +"Inkompatibel mit älterer Hardware\n" +"Nicht empfohlen für Webanwendungen" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7217,10 +7238,16 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Geringere Grafikqualität\n" +"Einige Funktionen sind nicht vorhanden\n" +"Läuft auf fast jeder Hardware\n" +"Empfohlen für Webanwendungen" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"Der Renderer kann auch später noch ausgetauscht werden, allerdings kann es " +"sein, dass dann manche Szenen angepasst werden müssen." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7235,6 +7262,28 @@ msgid "Are you sure to open more than one project?" msgstr "Sollen wirklich mehrere Projekte geöffnet werden?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"Die Projekteinstellungsdatei ist mit einer älteren Version erstellt worden " +"und muss in die folgende Version konvertiert werden:\n" +"\n" +"%s\n" +"\n" +"Möchten Sie die Konvertierung durchführen?\n" +"Warnung: Das Projekt kann nach der Konvertierung nicht mehr mit einer " +"älteren Version geöffnet werden." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7245,14 +7294,14 @@ msgid "" "Warning: You will not be able to open the project with previous versions of " "the engine anymore." msgstr "" -"Die folgende Projekteinstellungsdatei wurde mit einer älteren Godot-Version " -"erzeugt und muss für die gegenwärtige Version angepasst werden:\n" +"Die Projekteinstellungsdatei ist mit einer älteren Version erstellt worden " +"und muss in die folgende Version konvertiert werden:\n" "\n" "%s\n" "\n" -"Sollen die Anpassungen vorgenommen werden?\n" -"Achtung: Das Projekt kann nach der Anpassung nicht mehr mit einer älteren " -"Godot-Version geöffnet werden." +"Möchten Sie die Konvertierung durchführen?\n" +"Warnung: Das Projekt kann nach der Konvertierung nicht mehr mit einer " +"älteren Version geöffnet werden." #: editor/project_manager.cpp msgid "" @@ -7953,6 +8002,7 @@ msgstr "Dupliziere Node(s)" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"Nodes in geerbtet Szenen können nicht umgehängt oder umgeordnet werden." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." @@ -8770,10 +8820,6 @@ msgid "Build Project" msgstr "Projekt bauen" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Warnungen" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Log anschauen" @@ -9457,6 +9503,13 @@ msgstr "" "Das ParallaxLayer-Node lässt sich nur als Unterobjekt eines " "ParallaxBackground-Node verwenden." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9652,6 +9705,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Nichts ist sichtbar da keine Meshe den Zeichendurchläufen zugewiesen wurden." @@ -9792,10 +9852,18 @@ msgstr "" "AnimationTree." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Rohdatenmodus" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Füge aktuelle Farbe als Vorlage hinzu" @@ -9895,6 +9963,18 @@ msgstr "Zuweisung an Uniform." msgid "Varyings can only be assigned in vertex function." msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." +#~ msgid "Warnings:" +#~ msgstr "Warnungen:" + +#~ msgid "Font Size:" +#~ msgstr "Schriftgröße:" + +#~ msgid "Line:" +#~ msgstr "Zeile:" + +#~ msgid "Col:" +#~ msgstr "Spalte:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "OrientedPathFollow funktioniert nur, wenn es als Unterobjekt eines Path-" diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po index 1c7fce5965..d7c563d6e8 100644 --- a/editor/translations/de_CH.po +++ b/editor/translations/de_CH.po @@ -549,20 +549,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -863,8 +855,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4282,6 +4274,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6315,7 +6317,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6394,8 +6396,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Animations-Node" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Bild einfügen" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6406,8 +6414,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Animations-Node" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7235,6 +7244,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8752,10 +8774,6 @@ msgid "Build Project" msgstr "Projektname:" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Datei(en) öffnen" @@ -9426,6 +9444,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9588,6 +9613,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9702,11 +9734,19 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" msgstr "Node erstellen" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 0b271f2739..f2214ab3c8 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -526,20 +526,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -833,8 +825,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4136,6 +4128,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6112,7 +6114,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6188,7 +6190,11 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6200,7 +6206,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6976,6 +6982,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8452,10 +8471,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9081,6 +9096,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9236,6 +9258,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9345,10 +9374,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index 28fc945310..468250901f 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -546,22 +546,13 @@ msgstr "ΣμÏκÏινση" msgid "Reset Zoom" msgstr "ΕπαναφοÏά μεγÎθυνσης" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Î Ïοειδοποιήσεις:" - -#: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "ÎœÎγεθος πηγαίας γÏαμματοσειÏάς:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "ΓÏαμμή:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Î Ïοειδοποιήσεις" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Στήλη:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -866,8 +857,8 @@ msgstr "ΔιαγÏαφή επιλεγμÎνων αÏχείων;" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "ΔιαγÏαφή" @@ -4360,6 +4351,16 @@ msgid "Move CanvasItem" msgstr "Μετακίνηση CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Μόνο άγκυÏες" @@ -6416,7 +6417,7 @@ msgid "Post" msgstr "Μετά" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6499,10 +6500,16 @@ msgid "(empty)" msgstr "(άδειο)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Κινήσεις" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Κίνηση" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "ΤαχÏτητα (FPS):" @@ -6511,7 +6518,8 @@ msgid "Loop" msgstr "Επανάληψη" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "ΚαÏΠκίνησης" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7357,6 +7365,19 @@ msgstr "Είστε σίγουÏοι πως θÎλετε να ανοίξετε Ï€ #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8923,10 +8944,6 @@ msgid "Build Project" msgstr "Δόμηση ÎÏγου" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Î Ïοειδοποιήσεις" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Î Ïοβολή αÏχείου καταγÏαφής" @@ -9607,6 +9624,13 @@ msgstr "" "Ένας κόμβος ParallaxLayer δουλεÏει μόνο όταν κληÏονομεί Îναν κόμβο Ï„Ïπου " "ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9796,6 +9820,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Τίποτα δεν είναι οÏατό, επειδή δεν Îχουν οÏιστεί πεÏάσματα για τα πλÎγματα." @@ -9931,10 +9962,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Ωμή λειτουÏγία" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Î Ïοσθήκη του Ï„ÏÎχοντος χÏώματος ως Ï€ÏοκαθοÏισμÎνο" @@ -10033,6 +10072,19 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "Î Ïοειδοποιήσεις:" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "ÎœÎγεθος πηγαίας γÏαμματοσειÏάς:" + +#~ msgid "Line:" +#~ msgstr "ΓÏαμμή:" + +#~ msgid "Col:" +#~ msgstr "Στήλη:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "Το PathFollow2D δουλεÏει μόνο όταν κληÏονομεί Îναν κόμβο Path2D." diff --git a/editor/translations/es.po b/editor/translations/es.po index b00045e09c..8f082f669e 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -12,9 +12,9 @@ # David Couto <davidcouto@gmail.com>, 2017. # Dharkael <izhe@hotmail.es>, 2017, 2019. # Diego López <diegodario21@gmail.com>, 2017. -# eon-s <emanuel.segretin@gmail.com>, 2018. +# eon-s <emanuel.segretin@gmail.com>, 2018, 2019. # Gustavo Leon <gleondiaz@gmail.com>, 2017-2018. -# Javier Ocampos <xavier.ocampos@gmail.com>, 2018. +# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019. # Jose Maria Martinez <josemar1992@hotmail.com>, 2018. # Juan Quiroga <juanquiroga9@gmail.com>, 2017. # Kiji Pixel <raccoon.fella@gmail.com>, 2017. @@ -42,8 +42,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" -"Last-Translator: Dharkael <izhe@hotmail.es>\n" +"PO-Revision-Date: 2019-02-10 12:01+0000\n" +"Last-Translator: eon-s <emanuel.segretin@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -68,12 +68,11 @@ msgstr "" #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "Entrada inválida %i (no pasado) en expresión" +msgstr "Entrada inválida %i (no se transmitió) en la expresión" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" -"self no puede ser usado ya que la instancia es nula (no ha sido pasada)" +msgstr "self no puede ser usado ya que la instancia es nula (no pasó)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -463,7 +462,7 @@ msgstr "Usar Curvas Bezier" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" -msgstr "Optimizar animación" +msgstr "Optimizador de animación" #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" @@ -581,21 +580,13 @@ msgstr "Alejar" msgid "Reset Zoom" msgstr "Restablecer zoom" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Advertencias:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Tamaño de la tipografÃa:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "LÃnea:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Advertencias" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Columna:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -630,7 +621,7 @@ msgstr "Quitar" #: editor/connections_dialog.cpp msgid "Add Extra Call Argument:" -msgstr "Añadir argumento extra de llamada:" +msgstr "Añadir Argumento de Llamada Extra:" #: editor/connections_dialog.cpp msgid "Extra Call Arguments:" @@ -701,7 +692,8 @@ msgstr "Editar Conexión: " #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "¿Está seguro/a que quiere quitar todas las conexiones de esta señal?" +msgstr "" +"¿Estás seguro/a que quieres quitar todas las conexiones de la señal \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -897,8 +889,8 @@ msgstr "¿Eliminar los archivos seleccionados?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Eliminar" @@ -1325,11 +1317,9 @@ msgid "Storing File:" msgstr "Archivo de almacenamiento:" #: editor/editor_export.cpp -#, fuzzy msgid "No export template found at the expected path:" msgstr "" -"No se han encontrado plantillas de exportación.\n" -"Tienes que descargar e instalarlas para continuar." +"No se ha encontrado ninguna plantilla de exportación en la ruta esperada:" #: editor/editor_export.cpp msgid "Packing" @@ -1338,16 +1328,14 @@ msgstr "Empaquetando" #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Custom debug template not found." -msgstr "No se ha encontrado ningún paquete de depuración personalizado." +msgstr "No se ha encontrado la plantilla de depuración personalizada." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Custom release template not found." -msgstr "No se ha encontrado ningún paquete final personalizado." +msgstr "No se ha encontrado ninguna plantilla de lanzamineto personalizada." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" @@ -1764,7 +1752,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "¡No se puede sobreescribir una escena que está abierta!" +msgstr "¡No se puede sobrescribir una escena que todavÃa está abierta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -2466,7 +2454,7 @@ msgstr "Importar" #: editor/editor_node.cpp msgid "FileSystem" -msgstr "Sistema de archivos" +msgstr "Sistema de Archivos" #: editor/editor_node.cpp msgid "Inspector" @@ -3375,17 +3363,18 @@ msgstr "Reimportar" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Guardar escenas, reimportar y reiniciar" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Cambiar el driver de video requiere reiniciar el editor." +msgstr "Cambiar el tipo de un archivo importado requiere reiniciar el editor." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"ADVERTENCIA: Existen recursos que utilizan este recurso, pueden dejar de " +"cargar correctamente." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -3967,7 +3956,7 @@ msgstr "Transición: " #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "AnimationTree" -msgstr "Ãrbol de animación" +msgstr "AnimationTree" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "New name:" @@ -4352,6 +4341,19 @@ msgid "Move CanvasItem" msgstr "Mover CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Advertencia: El tamaño y posición de los hijos de un contenedor es " +"determinado solo por su padre." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Sólo anclado" @@ -6251,31 +6253,31 @@ msgstr "Ajustar objeto al suelo" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." -msgstr "Dialogo de transformación..." +msgstr "Dialogo de Transformación..." #: editor/plugins/spatial_editor_plugin.cpp msgid "1 Viewport" -msgstr "1 viewport" +msgstr "1 Viewport" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports" -msgstr "2 viewports" +msgstr "2 Viewports" #: editor/plugins/spatial_editor_plugin.cpp msgid "2 Viewports (Alt)" -msgstr "2 viewports (Alt)" +msgstr "2 Viewports (Alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports" -msgstr "3 viewports" +msgstr "3 Viewports" #: editor/plugins/spatial_editor_plugin.cpp msgid "3 Viewports (Alt)" -msgstr "3 viewports (Alt)" +msgstr "3 Viewports (Alt)" #: editor/plugins/spatial_editor_plugin.cpp msgid "4 Viewports" -msgstr "4 viewports" +msgstr "4 Viewports" #: editor/plugins/spatial_editor_plugin.cpp msgid "Gizmos" @@ -6355,7 +6357,8 @@ msgid "Post" msgstr "Posterior" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "Gizmo sin nombre" #: editor/plugins/sprite_editor_plugin.cpp @@ -6431,10 +6434,16 @@ msgid "(empty)" msgstr "(vacÃo)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animaciones" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animación" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Velocidad (FPS):" @@ -6443,7 +6452,8 @@ msgid "Loop" msgstr "Repetir" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Fotogramas de animación" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6847,7 +6857,7 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Region" -msgstr "Establecer región del Tile" +msgstr "Establecer Región de Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create Tile" @@ -6855,31 +6865,31 @@ msgstr "Crear Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Icon" -msgstr "Establecer icono del Tile" +msgstr "Establecer Icono de Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Tile Bitmask" -msgstr "Editar máscara de bits del Tile" +msgstr "Editar Máscara de Bits de Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Collision Polygon" -msgstr "Editar polÃgono de colisión" +msgstr "Editar PolÃgono de Colisión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Occlusion Polygon" -msgstr "Editar PolÃgono de oclusión" +msgstr "Editar PolÃgono de Oclusión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Navigation Polygon" -msgstr "Editar polÃgono de navegación" +msgstr "Editar PolÃgono de Navegación" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Paste Tile Bitmask" -msgstr "Pegar máscara de bits del Tile" +msgstr "Pegar Máscara de Bits de Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Clear Tile Bitmask" -msgstr "Eliminar máscara de bits del Tile" +msgstr "Reestablecer Máscara de Bits de Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Tile" @@ -6887,31 +6897,31 @@ msgstr "Eliminar Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Collision Polygon" -msgstr "Eliminar polÃgono de colisión" +msgstr "Eliminar PolÃgono de Colisión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Occlusion Polygon" -msgstr "Crear polÃgono de oclusión" +msgstr "Eliminar PolÃgono de Oclusión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Navigation Polygon" -msgstr "Crear polÃgono de navegación" +msgstr "Crear PolÃgono de Navegación" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Tile Priority" -msgstr "Editar prioridad del Tile" +msgstr "Editar Prioridad del Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Tile Z Index" -msgstr "Editar Indice-Z del Tile" +msgstr "Editar Z Index de Tile" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create Collision Polygon" -msgstr "Crear polÃgono de colisión" +msgstr "Crear PolÃgono de Colisión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create Occlusion Polygon" -msgstr "Crear polÃgono de oclusión" +msgstr "Crear PolÃgono de Oclusión" #: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." @@ -7199,11 +7209,11 @@ msgstr "Examinar" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderizador:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7212,10 +7222,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Mayor calidad visual\n" +"Todas las caracterÃsticas disponibles\n" +"Incompatible con hardware antiguo\n" +"No recomendado para juegos web" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7224,10 +7238,16 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Baja calidad visual\n" +"Algunas caracterÃsticas no disponibles\n" +"Funciona en la mayorÃa de hardware\n" +"Recomendado para juegos web" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"El renderizador se puede cambiar más tarde, pero es posible que las escenas " +"deban ajustarse." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7242,6 +7262,28 @@ msgid "Are you sure to open more than one project?" msgstr "¿Seguro que quieres abrir más de un proyecto?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"El siguiente archivo de configuración del proyecto fue generado por una " +"versión anterior del motor y debe convertirse para esta versión:\n" +"\n" +"%s\n" +"\n" +"¿Quieres convertirlo?\n" +"Advertencia: ya no podrá abrir el proyecto con versiones anteriores del " +"motor." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7959,10 +8001,12 @@ msgstr "Duplicar nodo(s)" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"No se pueden reparar los nodos en las escenas heredadas, el orden de los " +"nodos no puede cambiar." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." -msgstr "" +msgstr "El nodo debe pertenecer a la escena editada para convertirse en raÃz." #: editor/scene_tree_dock.cpp msgid "Instantiated scenes can't become root" @@ -8034,7 +8078,7 @@ msgstr "¡No se puede operar sobre los nodos heredados por la escena actual!" #: editor/scene_tree_dock.cpp msgid "Attach Script" -msgstr "Añadir script" +msgstr "Añadir Script" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -8778,10 +8822,6 @@ msgid "Build Project" msgstr "Compilar proyecto" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Advertencias" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Ver registro" @@ -8807,7 +8847,7 @@ msgstr "Calculando tamaño de cuadrÃcula..." #: modules/recast/navigation_mesh_generator.cpp msgid "Creating heightfield..." -msgstr "Creando heightfield..." +msgstr "Creando campo de alturas..." #: modules/recast/navigation_mesh_generator.cpp msgid "Marking walkable triangles..." @@ -8831,7 +8871,7 @@ msgstr "Creando contornos..." #: modules/recast/navigation_mesh_generator.cpp msgid "Creating polymesh..." -msgstr "Crear polymesh..." +msgstr "Creando polymesh..." #: modules/recast/navigation_mesh_generator.cpp msgid "Converting to native navigation mesh..." @@ -9137,7 +9177,7 @@ msgstr "¡El objeto base no es un nodo!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Path does not lead Node!" -msgstr "¡La ruta no apunta a un nodo!" +msgstr "¡La ruta no apunta a un Nodo!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." @@ -9187,11 +9227,11 @@ msgstr "Establecer %s" #: platform/android/export/export.cpp msgid "Package name is missing." -msgstr "" +msgstr "Nombre de paquete faltante." #: platform/android/export/export.cpp msgid "Package segments must be of non-zero length." -msgstr "" +msgstr "Los segmentos del paquete deben ser de largo no nulo." #: platform/android/export/export.cpp msgid "The character '%s' is not allowed in Android application package names." @@ -9201,11 +9241,12 @@ msgstr "" #: platform/android/export/export.cpp msgid "A digit cannot be the first character in a package segment." -msgstr "" +msgstr "Un dÃgito no puede ser el primer carácter en un segmento de paquete." #: platform/android/export/export.cpp msgid "The character '%s' cannot be the first character in a package segment." msgstr "" +"El carácter '%s' no puede ser el primer carácter en un segmento de paquete." #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." @@ -9221,16 +9262,15 @@ msgstr "OpenJDK jarsigner no configurado en Ajustes del Editor." #: platform/android/export/export.cpp msgid "Debug keystore not configured in the Editor Settings nor in the preset." -msgstr "" +msgstr "Keystore debug no configurada en Ajustes del Editor ni en el preset." #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Clave pública inválida para la expansión de APK." #: platform/android/export/export.cpp -#, fuzzy msgid "Invalid package name:" -msgstr "El nombre de clase no es correcto" +msgstr "Nombre de paquete inválido:" #: platform/iphone/export/export.cpp msgid "Identifier is missing." @@ -9238,21 +9278,23 @@ msgstr "Identificador no encontrado." #: platform/iphone/export/export.cpp msgid "Identifier segments must be of non-zero length." -msgstr "" +msgstr "Los segmentos de un identificador deben ser de largo no nulo." #: platform/iphone/export/export.cpp -#, fuzzy msgid "The character '%s' is not allowed in Identifier." -msgstr "El nombre no es un identificador válido:" +msgstr "El carácter '%s' no esta permitido como identificador." #: platform/iphone/export/export.cpp msgid "A digit cannot be the first character in a Identifier segment." msgstr "" +"Un dÃgito no puede ser el primer carácter en un segmento Identificador." #: platform/iphone/export/export.cpp msgid "" "The character '%s' cannot be the first character in a Identifier segment." msgstr "" +"El carácter '%s' no puede ser el primer carácter en un segmento " +"Identificador." #: platform/iphone/export/export.cpp msgid "The Identifier must have at least one '.' separator." @@ -9264,13 +9306,12 @@ msgstr "" "App Store Team ID no especificado - no se puede configurar el proyecto." #: platform/iphone/export/export.cpp -#, fuzzy msgid "Invalid Identifier:" -msgstr "El nombre no es un identificador válido:" +msgstr "Identificador inválido:" #: platform/iphone/export/export.cpp msgid "Required icon is not specified in the preset." -msgstr "" +msgstr "El icono requerido no está especificado en el preset." #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9305,65 +9346,61 @@ msgid "Using default boot splash image." msgstr "Usando la imagen de carga por defecto." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid package unique name." -msgstr "El nombre no es correcto." +msgstr "Nombre único de paquete inválido." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid product GUID." -msgstr "Tamaño de tipografÃa incorrecto." +msgstr "GUID de producto inválido." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid publisher GUID." -msgstr "Ruta base incorrecta" +msgstr "GUID de publisher inválido." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid background color." -msgstr "El origen personalizado de tipografÃa no es correcto." +msgstr "Color de fondo inválido." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "El logo de la tienda no es del tamaño adecuado (debe ser de 50x50)." +msgstr "" +"Las dimensiones de la imagen para el Store Logo son inválidas (deberÃa ser " +"50x50)." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." msgstr "" -"El logo cuadrado de 44x44 no es del tamaño adecuado (debe ser de 44x44)." +"Las dimensiones de la imagen para el logo cuadrado de 44x44 son inválidas " +"(deberÃa ser 44x44)." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." msgstr "" -"El logo cuadrado de 71x71 no es del tamaño adecuado (debe ser de 71x71)." +"Las dimensiones de la imagen para el logo cuadrado de 71x71 son inválidas " +"(deberÃa ser 71x71)." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." msgstr "" -"El logo cuadrado de 150x150 no es del tamaño adecuado (debe ser de 150x150)." +"Las dimensiones de la imagen para el logo cuadrado de 150x150 son inválidas " +"(deberÃa ser 150x150)." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." msgstr "" -"El logo cuadrado de 310x310 no es del tamaño adecuado (debe ser de 310x310)." +"Las dimensiones de la imagen para el logo cuadrado de 310x310 son inválidas " +"(deberÃa ser 310x310)." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." msgstr "" -"El logo ancho de 310x150 no es del tamaño adecuado (debe ser de 310x150)." +"Las dimensiones de la imagen para el logo ancho de 310x150 son inválidas " +"(deberÃa ser 310x150)." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" -"El tamaño de la imagen de arranque no es correcto (debe ser de 620x300)." +"Las dimensiones de la imagen del splash son inválidas (deberÃa ser 620x300)." #: scene/2d/animated_sprite.cpp msgid "" @@ -9477,6 +9514,13 @@ msgstr "" "En nodo ParallaxLayer solo funciona cuando esta posicionado como hijo de un " "nodo ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9668,6 +9712,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Nada es visible porque las mallas no se han asignado a los pases de dibujo." @@ -9686,13 +9737,12 @@ msgstr "" "PathFollow solo funciona cuando está asignado como hijo de un nodo Path." #: scene/3d/path.cpp -#, fuzzy msgid "" "PathFollow ROTATION_ORIENTED requires \"Up Vector\" enabled in its parent " "Path's Curve resource." msgstr "" -"OrientedPathFollow requiere que \"Up Vector\" esté activo en el recurso " -"Curve de su Path padre." +"PathFollow ROTATION_ORIENTED requiere que \"Up Vector\" esté activo en el " +"recurso Curve de su Path padre." #: scene/3d/physics_body.cpp msgid "" @@ -9802,10 +9852,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Este nodo ha quedado obsoleto. Usa AnimationTree en su lugar." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Raw" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Añadir el color actual como predeterminado" @@ -9901,6 +9959,18 @@ msgstr "Asignación a uniform." msgid "Varyings can only be assigned in vertex function." msgstr "Solo se pueden asignar variaciones en funciones de vértice." +#~ msgid "Warnings:" +#~ msgstr "Advertencias:" + +#~ msgid "Font Size:" +#~ msgstr "Tamaño de la tipografÃa:" + +#~ msgid "Line:" +#~ msgstr "LÃnea:" + +#~ msgid "Col:" +#~ msgstr "Columna:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "OrientedPathFollow solo funciona cuando esta asignado como hijo de un " diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 86f1e6a72d..a9a512c65d 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -8,12 +8,13 @@ # Sebastian Silva <sebastian@sugarlabs.org>, 2016. # Jose Luis Bossio <joseluisbossio@gmail.com>, 2018. # Reynaldo Cruz <rcruz60@gmail.com>, 2018. -# Javier Ocampos <xavier.ocampos@gmail.com>, 2018. +# Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019. +# Andrés S <andres.segovia.dev@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" +"PO-Revision-Date: 2019-02-10 12:02+0000\n" "Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" @@ -549,21 +550,13 @@ msgstr "Zoom Out" msgid "Reset Zoom" msgstr "Resetear el Zoom" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Advertencias:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Tamaño de TipografÃa:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linea:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Advertencias" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Col:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -864,8 +857,8 @@ msgstr "Eliminar archivos seleccionados?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Eliminar" @@ -3334,17 +3327,20 @@ msgstr "Reimportar" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Guardar escenas, reimportar y reiniciá" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Cambiar el driver de video requiere reiniciar el editor." +msgstr "" +"Para cambiar el tipo de un archivo importado es necesario reiniciar el " +"editor." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"ADVERTENCIA: Existen elementos que utilizan este recurso, podrÃan dejar de " +"cargar correctamente." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4311,6 +4307,19 @@ msgid "Move CanvasItem" msgstr "Mover CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Advertencia: El tamaño y posición de los hijos de un contenedor es " +"determinado solo por su padre." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Solo anclas" @@ -4497,7 +4506,7 @@ msgstr "Restablecer Huesos Personalizados" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "Ver" +msgstr "Vista" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5894,15 +5903,15 @@ msgstr "Ver Transformación en Plano." #: editor/plugins/spatial_editor_plugin.cpp msgid "Scaling: " -msgstr "Escalado: " +msgstr "Escalando: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Translating: " -msgstr "Traducciones: " +msgstr "Trasladando: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." -msgstr "Torando %s grados." +msgstr "Rotando %s grados." #: editor/plugins/spatial_editor_plugin.cpp msgid "Keying is disabled (no key inserted)." @@ -6116,7 +6125,7 @@ msgstr "Modo Rotar (E)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Mode (R)" -msgstr "Modo de Escalado (R)" +msgstr "Modo Escalar (R)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Local Coords" @@ -6204,7 +6213,7 @@ msgstr "Ajustar objeto al suelo" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." -msgstr "Dialogo de Transformación..." +msgstr "Cuadro de diálogo de Transform..." #: editor/plugins/spatial_editor_plugin.cpp msgid "1 Viewport" @@ -6308,7 +6317,8 @@ msgid "Post" msgstr "Post" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "Gizmo sin nombre" #: editor/plugins/sprite_editor_plugin.cpp @@ -6384,10 +6394,16 @@ msgid "(empty)" msgstr "(vacÃo)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animaciones" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animación" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Velocidad (FPS):" @@ -6396,7 +6412,8 @@ msgid "Loop" msgstr "Loop" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Cuadros de Animación" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7152,11 +7169,11 @@ msgstr "Examinar" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderizador:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7165,10 +7182,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Mayor calidad visual\n" +"Todas las caracterÃsticas disponibles\n" +"Incompatible con hardware antiguo\n" +"No recomendado para juegos web" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7177,10 +7198,16 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Baja calidad visual\n" +"Algunas caracterÃsticas no disponibles\n" +"Funciona en la mayorÃa de hardware\n" +"Recomendado para juegos web" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"El renderizador se puede cambiar luego, pero es posible que sea necesario " +"ajustar las escenas." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7195,6 +7222,28 @@ msgid "Are you sure to open more than one project?" msgstr "¿Estás seguro/a que quieres abrir más de un proyecto?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"Las siguientes configuraciones de proyecto fueron generadas para una versión " +"anterior del motor, y deben ser convertidas para esta versión:\n" +"\n" +"%s\n" +"\n" +"¿Querés convertirlas?\n" +"Advertencia: No vas a poder volver a abrir el proyecto con versiones " +"anteriores del motor." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7912,6 +7961,8 @@ msgstr "Duplicar Nodo(s)" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"No se puede reemparentar nodos en escenas heredadas, el orden de nodos no " +"puede cambiar." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." @@ -8731,10 +8782,6 @@ msgid "Build Project" msgstr "Construir Proyecto" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Advertencias" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Ver registro" @@ -9311,7 +9358,7 @@ msgstr "" #: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." -msgstr "Dimensiones de la imagen del splash inválidas (deberÃa ser 620x400)." +msgstr "Dimensiones de la imagen del splash inválidas (deberÃa ser 620x300)." #: scene/2d/animated_sprite.cpp msgid "" @@ -9422,6 +9469,13 @@ msgstr "" "El nodo ParallaxLayer sólo funciona cuando está seteado como hijo de un nodo " "ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9611,6 +9665,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "Nada visible ya que no se asigno pasadas de dibujado a los meshes." @@ -9743,10 +9804,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Este nodo ha sido deprecado. Usá AnimationTree." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Raw" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Agregar color actual como preset" @@ -9842,6 +9911,18 @@ msgstr "Asignación a uniform." msgid "Varyings can only be assigned in vertex function." msgstr "Solo se pueden asignar variaciones en funciones de vértice." +#~ msgid "Warnings:" +#~ msgstr "Advertencias:" + +#~ msgid "Font Size:" +#~ msgstr "Tamaño de TipografÃa:" + +#~ msgid "Line:" +#~ msgstr "Linea:" + +#~ msgid "Col:" +#~ msgstr "Col:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "OrientedPathFollow solo funciona cuando esta asignado como hijo de un " diff --git a/editor/translations/et.po b/editor/translations/et.po index 948c2861b7..2919e14b82 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -526,20 +526,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -833,8 +825,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4136,6 +4128,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6112,7 +6114,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6188,7 +6190,11 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6200,7 +6206,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6976,6 +6982,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8452,10 +8471,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9081,6 +9096,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9236,6 +9258,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9345,10 +9374,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 0eec8c6d9d..49b594677f 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -560,22 +560,14 @@ msgstr "بزرگنمایی کمتر" msgid "Reset Zoom" msgstr "بازنشانی بزرگنمایی" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "خط:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "ستون:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "متد در گره مقصد باید مشخص شده باشد!" @@ -883,8 +875,8 @@ msgstr "آیا پرونده‌های انتخاب شده Øذ٠شود؟" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "ØØ°Ù Ú©Ù†" @@ -4310,6 +4302,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6361,7 +6363,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6442,8 +6444,14 @@ msgid "(empty)" msgstr "(خالی)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "گره انیمیشن" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "تغییر نام انیمیشن" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6454,8 +6462,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "گره انیمیشن" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7286,6 +7295,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8832,10 +8854,6 @@ msgid "Build Project" msgstr "پروژه" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "نمایش پرونده ها" @@ -9525,6 +9543,13 @@ msgstr "" "گره ParallaxLayer تنها در زمانی Ú©Ù‡ به عنوان Ùرزند یک گره ParallaxBackground " "تنظیم شود کار می‌کند." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9696,6 +9721,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9818,10 +9850,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9913,6 +9953,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "خط:" + +#~ msgid "Col:" +#~ msgstr "ستون:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 094baf8c80..22655d8f02 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" +"PO-Revision-Date: 2019-02-09 18:11+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -543,21 +543,13 @@ msgstr "Loitonna" msgid "Reset Zoom" msgstr "Palauta oletuslähennystaso" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Varoitukset:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Fontin koko:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Rivi:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Varoitukset" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Sarake:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -859,8 +851,8 @@ msgstr "Poista valitut tiedostot?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Poista" @@ -3310,17 +3302,20 @@ msgstr "Tuo uudelleen" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Tallenna skenet, tuo uudelleen ja käynnistä uudelleen" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Näyttöajurin vaihtaminen edellyttää editorin uudelleenkäynnistystä." +msgstr "" +"Tuodun tiedoston tyypin muuttaminen edellyttää editorin " +"uudelleenkäynnistystä." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"VAROITUS: Tällä resurssilla on sitä käyttäviä assetteja, ne voivat lakata " +"latautumasta kunnolla." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4283,6 +4278,19 @@ msgid "Move CanvasItem" msgstr "Siirrä CanvasItemiä" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Varoitus: Säilön alisolmujen sijainti ja koko määrittyy vain niiden " +"isäntäsolmun perusteella." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Vain ankkurit" @@ -6229,7 +6237,7 @@ msgstr "Siirrettäessä:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate Snap (deg.):" -msgstr "Käännettäessä (aste):" +msgstr "Käännettäessä (asteina):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale Snap (%):" @@ -6241,7 +6249,7 @@ msgstr "Näyttöruudun asetukset" #: editor/plugins/spatial_editor_plugin.cpp msgid "Perspective FOV (deg.):" -msgstr "Näkökentän perspektiivi (ast.):" +msgstr "Näkökentän perspektiivi (asteina):" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Z-Near:" @@ -6261,7 +6269,7 @@ msgstr "Siirrä:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate (deg.):" -msgstr "Kierrä (ast.):" +msgstr "Kierrä (asteina):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Scale (ratio):" @@ -6280,7 +6288,8 @@ msgid "Post" msgstr "Jälki" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "Nimetön muokkain" #: editor/plugins/sprite_editor_plugin.cpp @@ -6356,10 +6365,16 @@ msgid "(empty)" msgstr "(tyhjä)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animaatiot" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animaatio" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Nopeus (FPS):" @@ -6368,7 +6383,8 @@ msgid "Loop" msgstr "Toista" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Animaatioruudut" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7123,11 +7139,11 @@ msgstr "Selaa" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderöijä:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7136,10 +7152,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Korkea visuaalinen laatu\n" +"Kaikki ominaisuudet käytettävissä\n" +"Epäyhteensopiva vanhojen laitteiden kanssa\n" +"Ei suositeltu web-peleille" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7148,10 +7168,15 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Matalampi visuaalinen laatu\n" +"Jotkin ominaisuudet eivät ole käytettävissä\n" +"Toimii useimmilla laitteilla\n" +"Suositeltu web-peleille" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"Renderöijä voidaan vaihtaa myöhemmin, mutta skenejä voi joutua mukauttamaan." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7166,6 +7191,27 @@ msgid "Are you sure to open more than one project?" msgstr "Haluatko varmasti avata useamman kuin yhden projektin?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"Seuraava projektin asetustiedosto on luotu vanhemmalla versiolla ja täytyy " +"muuntaa tätä versiota varten:\n" +"\n" +"%s\n" +"\n" +"Haluatko muuntaa sen?\n" +"Varoitus: et voi avata projektia tämän jälkeen enää vanhemmilla versioilla." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7876,6 +7922,8 @@ msgstr "Kahdenna solmu(t)" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"Perittyjen skenejen solmujen isäntää ei voi vaihtaa, solmujen järjestys ei " +"voi muuttua." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." @@ -8696,10 +8744,6 @@ msgid "Build Project" msgstr "Käännä projekti" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Varoitukset" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Näytä loki" @@ -9369,6 +9413,13 @@ msgstr "" "ParallaxLayer solmu toimii ainoastaan, jos se on ParallaxBackground solmun " "alla." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9560,6 +9611,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Mitään ei näy, koska mesheille ei ole asetettu piirtopyyhkäisyjä (draw " @@ -9691,10 +9749,18 @@ msgstr "" "Tämä solmu on poistettu käytöstä. Käytä sen sijaan AnimationTree solmua." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raakatila" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Lisää nykyinen väri esiasetukseksi" @@ -9790,6 +9856,18 @@ msgstr "Sijoitus uniformille." msgid "Varyings can only be assigned in vertex function." msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." +#~ msgid "Warnings:" +#~ msgstr "Varoitukset:" + +#~ msgid "Font Size:" +#~ msgstr "Fontin koko:" + +#~ msgid "Line:" +#~ msgstr "Rivi:" + +#~ msgid "Col:" +#~ msgstr "Sarake:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "OrientedPathFollow toimii ainoastaan ollessaan asetettuna Path solmun " diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 3827c3f40b..94283dc2cd 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -57,8 +57,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" -"Last-Translator: Rémi Bintein <reminus5@hotmail.fr>\n" +"PO-Revision-Date: 2019-02-10 13:16+0100\n" +"Last-Translator: Caye Pierre <pierrecaye@laposte.net>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" "Language: fr\n" @@ -66,7 +66,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.5-dev\n" +"X-Generator: Poedit 2.2.1\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -82,7 +82,7 @@ msgstr "Pas assez d'octets pour les octets de décodage, ou format non valide." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "Entrée non valide %i (non passée) dans l’expression" +msgstr "Entrée non valide %i (non passée) dans l'expression" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -440,7 +440,7 @@ msgstr "Mettre à l'échelle la sélection" #: editor/animation_track_editor.cpp msgid "Scale From Cursor" -msgstr "Mettre à l’échelle depuis le curseur" +msgstr "Mettre à l'échelle depuis le curseur" #: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" @@ -598,21 +598,13 @@ msgstr "Dézoomer" msgid "Reset Zoom" msgstr "Réinitialiser le zoom" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Avertissements :" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Taille de police :" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Ligne :" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Avertissements" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Colonne :" +msgid "Line and column numbers" +msgstr "Numéros de ligne et de colonne" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -915,8 +907,8 @@ msgstr "Supprimer les fichiers sélectionnés ?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Supprimer" @@ -2030,7 +2022,7 @@ msgstr "Choisir une scène principale" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." msgstr "" -"Impossible d'activer le greffon depuis : '%s' l’analyse syntaxique de la " +"Impossible d'activer le greffon depuis : '%s' l'analyse syntaxique de la " "configuration a échoué." #: editor/editor_node.cpp @@ -2042,14 +2034,14 @@ msgstr "" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." msgstr "" -"Impossible de charger le script de l’extension depuis le chemin : '%s'." +"Impossible de charger le script de l'extension depuis le chemin : '%s'." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"Impossible de charger le script de l’extension depuis le chemin : '%s' Il " +"Impossible de charger le script de l'extension depuis le chemin : '%s' Il " "semble y avoir une erreur dans le code, merci de vérifier la syntaxe." #: editor/editor_node.cpp @@ -2062,7 +2054,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" -"Impossible de charger le script de l’extension depuis le chemin : '%s' Le " +"Impossible de charger le script de l'extension depuis le chemin : '%s' Le " "script n'est pas en mode outil." #: editor/editor_node.cpp @@ -2933,7 +2925,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Error requesting url: " -msgstr "Erreur lors de la requête de l’URL : " +msgstr "Erreur lors de la requête de l'URL : " #: editor/export_template_manager.cpp msgid "Connecting to Mirror..." @@ -3396,17 +3388,19 @@ msgstr "Ré-importer" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Sauvegarde des scènes, réimportation et redémarrage" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Changer le pilote vidéo nécessite le redémarrage de l'éditeur." +msgstr "" +"Changer le type d'un fichier importé nécessite un redémarrage de l'éditeur." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"AVERTISSEMENT : Il existe des éléments qui utilisent cette ressource, ils " +"pourraient cesser de charger correctement." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4377,6 +4371,18 @@ msgid "Move CanvasItem" msgstr "Déplacer l'élément de canevas" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Préréglages pour les ancres et les marges d'un nÅ“ud Control." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Les nÅ“uds enfants de conteneurs ont leurs ancres et marges redéfinies par " +"leur parent." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Uniquement les ancres" @@ -4682,7 +4688,7 @@ msgstr "Définir la poignée" #: editor/plugins/cpu_particles_editor_plugin.cpp msgid "CPUParticles" -msgstr "ParticulesCPU" +msgstr "CPUParticles" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -5051,7 +5057,7 @@ msgstr "Effacer Masque d'Émission" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Convert to CPUParticles" -msgstr "Convertir en ParticulesCPU" +msgstr "Convertir en CPUParticles" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -6381,7 +6387,7 @@ msgid "Post" msgstr "Post" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "Gadget sans nom" #: editor/plugins/sprite_editor_plugin.cpp @@ -6459,8 +6465,12 @@ msgid "(empty)" msgstr "(vide)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "Animations" +msgid "Animations:" +msgstr "Animations :" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" +msgstr "Nouvelle animation" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6471,8 +6481,8 @@ msgid "Loop" msgstr "Boucle" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "Trames d'animation" +msgid "Animation Frames:" +msgstr "Trames d'animation :" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7229,11 +7239,11 @@ msgstr "Parcourir" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Moteur de rendu :" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7242,10 +7252,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Meilleure qualité visuelle\n" +"Toutes les fonctions disponibles\n" +"Incompatible avec du matériel plus ancien\n" +"Non recommandé pour les jeux web" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7254,10 +7268,16 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Qualité visuelle inférieure\n" +"Certaines fonctions ne sont pas disponibles\n" +"Fonctionne sur la plupart du matériel\n" +"Recommandé pour les jeux en ligne" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"Le rendu peut être modifié ultérieurement, mais les scènes peuvent avoir " +"besoin d'être ajustées." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7273,6 +7293,28 @@ msgstr "Voulez-vous vraiment ouvrir plus d'un projet à la fois ?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"Le fichier de configuration de projet ci-dessous n'indique pas par quelle " +"version de Godot il a été généré.\n" +"\n" +"%s\n" +"\n" +"Si vous choisissez de l'ouvrir, il sera converti vers l'actuel format de " +"fichier de configuration de Godot.\n" +"Attention : Il ne sera plus possible d'ouvrir ce projet avec les précédentes " +"versions du moteur." + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -7989,6 +8031,8 @@ msgstr "Dupliquer le(s) nÅ“ud(s)" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"Impossible de reparenter les nÅ“uds dans les scènes héritées, l'ordre des " +"nÅ“uds ne peut pas changer." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." @@ -8554,7 +8598,7 @@ msgstr "Sélectionnez les dépendances de la librairie pour cette entrée" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Remove current entry" -msgstr "Supprimer l’entrée" +msgstr "Supprimer l'entrée" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Double click to create a new entry" @@ -8809,10 +8853,6 @@ msgid "Build Project" msgstr "Compiler le projet" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Avertissements" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Voir les fichiers log" @@ -9255,7 +9295,6 @@ msgstr "" "OpenJDK jarsigner n'est pas configuré dans les paramètres de l'éditeur." #: platform/android/export/export.cpp -#, fuzzy msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" "Debug keystore n'est pas configuré dans les paramètres de l'éditeur ni dans " @@ -9464,7 +9503,7 @@ msgid "" "\"Particles Animation\" enabled." msgstr "" "L'animation de CPUParticles2D a besoin d'un CanvasItemMaterial avec " -"\"Animation de Particules\" activé." +"\"Particles Animation\" activé." #: scene/2d/light_2d.cpp msgid "" @@ -9511,6 +9550,17 @@ msgstr "" "Le nÅ“ud ParallaxLayer ne fonctionne que s'il est défini en tant qu'enfant " "d'un nÅ“ud de type ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" +"Les particules de type GPU ne sont pas supportées par le pilote graphique " +"GLES2.\n" +"Utilisez le nÅ“ud CPUParticles2D à la place. Vous pouvez utiliser l'option « " +"Convertir en CPUParticles » pour ce faire." + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9703,6 +9753,17 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" +"Les particules de type GPU ne sont pas supportées par le pilote graphique " +"GLES2.\n" +"Utilisez le nÅ“ud CPUParticles à la place. Vous pouvez utiliser l'option « " +"Convertir en CPUParticles » pour ce faire." + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Rien n'est visible car les maillages n'ont pas été assignés au tirage des " @@ -9839,10 +9900,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Ce nÅ“ud est désormais déprécié. Utilisez AnimationTree à la place." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "Échantillonner une couleur depuis l'écran." + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Mode brut" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "Alterner entre les valeurs hexadécimales ou brutes." + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Ajouter la couleur courante comme pré-réglage" @@ -9940,6 +10009,18 @@ msgstr "Affectation à l'uniforme." msgid "Varyings can only be assigned in vertex function." msgstr "Les variations ne peuvent être affectées que dans la fonction vertex." +#~ msgid "Warnings:" +#~ msgstr "Avertissements :" + +#~ msgid "Font Size:" +#~ msgstr "Taille de police :" + +#~ msgid "Line:" +#~ msgstr "Ligne :" + +#~ msgid "Col:" +#~ msgstr "Colonne :" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "Le nÅ“ud OrientedPathFollow ne fonctionne que s'il est défini en tant " diff --git a/editor/translations/he.po b/editor/translations/he.po index 09d368d4e3..847c0f6a93 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -561,23 +561,13 @@ msgstr "להתרחק" msgid "Reset Zoom" msgstr "×יפוס התקריב" -#: editor/code_editor.cpp -#, fuzzy -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "×זהרות" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "מבט קדמי" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "שורה:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "עמודה:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -876,8 +866,8 @@ msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "למחוק" @@ -4287,6 +4277,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6322,7 +6322,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6402,10 +6402,16 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "×× ×™×ž×¦×™×•×ª" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "×©× ×”× ×¤×©×” חדשה:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "מהירות (FPS):" @@ -6414,7 +6420,8 @@ msgid "Loop" msgstr "לול××”" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "שקופיות ×”×”× ×¤×©×”" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7227,6 +7234,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8734,10 +8754,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "×זהרות" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9374,6 +9390,13 @@ msgid "" msgstr "" "מפרק ParallaxLayer עובד רק ×›×שר ×”×•× ×ž×•×’×“×¨ כצ××¦× ×©×œ מפרק ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9529,6 +9552,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9641,10 +9671,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "מצב גולמי" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "הוספת הצבע ×”× ×•×›×—×™ כערכה" @@ -9730,6 +9768,20 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Warnings:" +#~ msgstr "×זהרות" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "מבט קדמי" + +#~ msgid "Line:" +#~ msgstr "שורה:" + +#~ msgid "Col:" +#~ msgstr "עמודה:" + +#, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "PathFollow2D עובד רק ×›×שר ×”×•× ×ž×•×’×“×¨ כצ××¦× ×©×œ מפרק Path2D." diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 687665d165..dbe94f2a68 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -544,22 +544,14 @@ msgstr "छोटा करो" msgid "Reset Zoom" msgstr "रीसेट आकार" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "रेखा:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "सà¥à¤¤à¤‚à¤:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "लकà¥à¤·à¥à¤¯ नोड में विधि निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया जाना चाहिà¤!" @@ -877,8 +869,8 @@ msgstr "चयनित फ़ाइलें हटाà¤à¤‚?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "को हटा दें" @@ -4229,6 +4221,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6224,7 +6226,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6301,8 +6303,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "कारà¥à¤¯à¥‹à¤‚:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ लूप" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6313,7 +6321,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7108,6 +7116,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8592,10 +8613,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9226,6 +9243,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9381,6 +9405,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9492,10 +9523,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9580,6 +9619,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "रेखा:" + +#~ msgid "Col:" +#~ msgstr "सà¥à¤¤à¤‚à¤:" + #, fuzzy #~ msgid "Remove Split" #~ msgstr "मिटाना" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 36017a4f78..c2b57f480e 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -531,20 +531,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -838,8 +830,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4141,6 +4133,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6117,7 +6119,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6193,7 +6195,11 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6205,7 +6211,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6981,6 +6987,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8457,10 +8476,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9086,6 +9101,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9241,6 +9263,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9350,10 +9379,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 15932c95bf..7295912160 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -565,22 +565,13 @@ msgstr "KicsinyÃtés" msgid "Reset Zoom" msgstr "NagyÃtás VisszaállÃtása" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Körvonal Mérete:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Sor:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Oszlop:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -888,8 +879,8 @@ msgstr "Törli a kiválasztott fájlokat?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Törlés" @@ -4411,6 +4402,16 @@ msgid "Move CanvasItem" msgstr "CanvasItem Szerkesztése" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Csak Horgonyok" @@ -6463,7 +6464,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6544,8 +6545,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Animáció" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animáció" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6556,8 +6563,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Animáció Neve:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7371,6 +7379,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8876,10 +8897,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Fájlok Megtekintése" @@ -9522,6 +9539,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9677,6 +9701,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9793,10 +9824,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9887,6 +9926,16 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Körvonal Mérete:" + +#~ msgid "Line:" +#~ msgstr "Sor:" + +#~ msgid "Col:" +#~ msgstr "Oszlop:" + +#, fuzzy #~ msgid "Split already exists." #~ msgstr "Már létezik '%s' AutoLoad!" diff --git a/editor/translations/id.po b/editor/translations/id.po index 6f399a2ae3..ca6c019a2d 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -561,22 +561,13 @@ msgstr "Perkecil Pandangan" msgid "Reset Zoom" msgstr "Kebalikan Semula Pandangan" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Peringatan:" - -#: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Tampilan Depan." - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Baris:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Kolom:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -881,8 +872,8 @@ msgstr "Hapus file yang dipilih?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Hapus" @@ -4429,6 +4420,16 @@ msgid "Move CanvasItem" msgstr "Sunting CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6499,7 +6500,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6579,8 +6580,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Animasi" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animasi" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6591,8 +6598,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Nama Animasi:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7431,6 +7439,19 @@ msgstr "Apakah Anda yakin membuka lebih dari satu projek?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -9000,10 +9021,6 @@ msgid "Build Project" msgstr "Proyek" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "File:" @@ -9703,6 +9720,13 @@ msgstr "" "Node ParallaxLayer hanya bekerja ketika diatur sebagai child dari sebuah " "node ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9877,6 +9901,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -10000,10 +10031,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Tambahkan warna yang sekarang sebagai preset" @@ -10100,6 +10139,19 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "Peringatan:" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Tampilan Depan." + +#~ msgid "Line:" +#~ msgstr "Baris:" + +#~ msgid "Col:" +#~ msgstr "Kolom:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" diff --git a/editor/translations/is.po b/editor/translations/is.po index 0f42409c0d..8691577785 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -552,20 +552,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -859,8 +851,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4169,6 +4161,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6148,7 +6150,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6224,7 +6226,12 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "Stillið breyting á:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6236,7 +6243,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7024,6 +7031,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8506,10 +8526,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9135,6 +9151,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9290,6 +9313,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9399,10 +9429,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/it.po b/editor/translations/it.po index 693e07ba94..3c5593bd43 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -576,22 +576,14 @@ msgstr "Zoom Out" msgid "Reset Zoom" msgstr "Resetta Zoom" -#: editor/code_editor.cpp +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp #, fuzzy -msgid "Warnings:" +msgid "Warnings" msgstr "Avvertimento" #: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Dimensione Font:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Riga:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Col:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -897,8 +889,8 @@ msgstr "Eliminare i file selezionati?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Elimina" @@ -4413,6 +4405,16 @@ msgid "Move CanvasItem" msgstr "Modifica CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Solo ancore" @@ -6488,7 +6490,7 @@ msgid "Post" msgstr "Post" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6571,10 +6573,16 @@ msgid "(empty)" msgstr "(vuoto)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animazioni" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animazione" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Velocità (FPS):" @@ -6583,7 +6591,8 @@ msgid "Loop" msgstr "Loop" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Frames Animazione" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7433,6 +7442,19 @@ msgstr "Sei sicuro di voler aprire più di un progetto?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -9045,11 +9067,6 @@ msgstr "Progetto" #: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy -msgid "Warnings" -msgstr "Avvertimento" - -#: modules/mono/editor/mono_bottom_panel.cpp -#, fuzzy msgid "View log" msgstr "Vedi Files" @@ -9765,6 +9782,13 @@ msgstr "" "Il nodo ParallaxLayer funziona solamente quando impostato come figlio di un " "nodo ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9954,6 +9978,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "Nulla é visibile perché le mesh non sono state assegnate ai draw pass." @@ -10087,11 +10118,19 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" msgstr "Modalità di Pan" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Aggiungi colore attuale come preset" @@ -10191,6 +10230,19 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Warnings:" +#~ msgstr "Avvertimento" + +#~ msgid "Font Size:" +#~ msgstr "Dimensione Font:" + +#~ msgid "Line:" +#~ msgstr "Riga:" + +#~ msgid "Col:" +#~ msgstr "Col:" + +#, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "PathFollow2D funziona solamente quando impostato come figlio di un nodo " diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 20966bda3a..9d5319d09a 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -560,21 +560,13 @@ msgstr "ズームアウト" msgid "Reset Zoom" msgstr "ズームをリセット" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "è¦å‘Š:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "フォントサイズ:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "è¡Œ:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "è¦å‘Š" #: editor/code_editor.cpp -msgid "Col:" -msgstr "列:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -875,8 +867,8 @@ msgstr "é¸æŠžã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "削除" @@ -4297,6 +4289,16 @@ msgid "Move CanvasItem" msgstr "CanvasItemを移動" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "アンカーã®ã¿" @@ -6408,7 +6410,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6489,7 +6491,13 @@ msgid "(empty)" msgstr "(空)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "アニメーション" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" msgstr "アニメーション" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6501,7 +6509,8 @@ msgid "Loop" msgstr "ループ" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "アニメーションã®ãƒ•ãƒ¬ãƒ¼ãƒ " #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7352,6 +7361,19 @@ msgstr "複数ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’é–‹ã„ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8961,10 +8983,6 @@ msgid "Build Project" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’ビルド" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "è¦å‘Š" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "ãƒã‚°ã‚’表示" @@ -9683,6 +9701,13 @@ msgstr "" "ParallaxLayer ノードã¯ã€ParallaxBackground ノードã®åã¨ã—ã¦è¨å®šã•ã‚Œã¦ã„ã‚‹å ´åˆ" "ã®ã¿å‹•ä½œã—ã¾ã™ã€‚" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp #, fuzzy msgid "" @@ -9863,6 +9888,13 @@ msgstr "" "ã“ã‚Œã¯ãƒŠãƒ“ゲーションデータã®ã¿æä¾›ã—ã¾ã™ã€‚" #: scene/3d/particles.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp #, fuzzy msgid "" "Nothing is visible because meshes have not been assigned to draw passes." @@ -9991,11 +10023,19 @@ msgstr "" "ã“ã®ãƒŽãƒ¼ãƒ‰ã¯éžæŽ¨å¥¨ã«ãªã‚Šã¾ã—ãŸã€‚代ã‚ã‚Šã«AnimationTreeを使用ã—ã¦ãã ã•ã„。" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" msgstr "パン・モード" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "ç¾åœ¨ã®è‰²ã‚’プリセットã¨ã—ã¦è¿½åŠ " @@ -10092,6 +10132,18 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "è¦å‘Š:" + +#~ msgid "Font Size:" +#~ msgstr "フォントサイズ:" + +#~ msgid "Line:" +#~ msgstr "è¡Œ:" + +#~ msgid "Col:" +#~ msgstr "列:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index d14fe2be04..0e79fec501 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -4,12 +4,13 @@ # This file is distributed under the same license as the Godot source code. # Giorgi Beriashvili <giorgi.beriashvili@outlook.com>, 2018. # George Dzavashvili <dzavashviligeorge@gmail.com>, 2018. +# დემეტრე შáƒáƒœáƒ˜áƒ <blender.animation.maker@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:41+0100\n" -"Last-Translator: George Dzavashvili <dzavashviligeorge@gmail.com>\n" +"PO-Revision-Date: 2019-02-10 12:01+0000\n" +"Last-Translator: დემეტრე შáƒáƒœáƒ˜áƒ <blender.animation.maker@gmail.com>\n" "Language-Team: Georgian <https://hosted.weblate.org/projects/godot-engine/" "godot/ka/>\n" "Language: ka\n" @@ -17,7 +18,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: Poedit 2.2\n" +"X-Generator: Weblate 3.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -69,7 +70,7 @@ msgstr "" #: editor/animation_bezier_editor.cpp msgid "Mirror" -msgstr "" +msgstr "სáƒáƒ კე" #: editor/animation_bezier_editor.cpp #, fuzzy @@ -79,7 +80,7 @@ msgstr "áƒáƒœáƒ˜áƒ› გáƒáƒ¡áƒáƒ¦áƒ”ბის ჩáƒáƒ§áƒ”ნებáƒ" #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Duplicate Selected Key(s)" -msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ გáƒáƒ¡áƒáƒ¦áƒ”ბ(ებ)ის áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ" #: editor/animation_bezier_editor.cpp #, fuzzy @@ -100,7 +101,7 @@ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბური კáƒáƒ“რá #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ დáƒáƒ›áƒáƒ›áƒ•áƒšáƒáƒ‘ის ცვლილებáƒ" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ დáƒáƒ›áƒáƒ›áƒ•áƒšáƒáƒ‘ის შეცვლáƒ" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" @@ -115,16 +116,19 @@ msgid "Anim Change Call" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ძáƒáƒ®áƒ˜áƒšáƒ˜áƒ¡ ცვლილებáƒ" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Property Track" -msgstr "" +msgstr "áƒáƒ‘იექტზე დáƒáƒ™áƒ•áƒ˜áƒ ვებáƒ" #: editor/animation_track_editor.cpp +#, fuzzy msgid "3D Transform Track" -msgstr "" +msgstr "3D გáƒáƒ დáƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ დáƒáƒ™áƒ•áƒ˜áƒ ვებáƒ" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Call Method Track" -msgstr "" +msgstr "მეთáƒáƒ“ის გáƒáƒ›áƒáƒ«áƒáƒ®áƒ”ბის დáƒáƒ™áƒ•áƒ˜áƒ ვებáƒ" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" @@ -139,7 +143,6 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" @@ -151,32 +154,35 @@ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ხáƒáƒœáƒ’რძლივáƒáƒ‘რ(წრ#: editor/animation_track_editor.cpp #, fuzzy msgid "Animation Looping" -msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ზუმი." +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ბრუნვáƒ" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "" +msgstr "ფუნქციები:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "" +msgstr "ხმáƒáƒ•áƒáƒœáƒ˜ მáƒáƒœáƒáƒ™áƒ•áƒ”თები:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ მáƒáƒœáƒáƒ™áƒ•áƒ”თები:" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Toggle this track on/off." -msgstr "" +msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რის ჩáƒáƒ თვრ/ გáƒáƒ›áƒáƒ თვáƒ" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Update Mode (How this property is set)" -msgstr "" +msgstr "გáƒáƒœáƒáƒ®áƒšáƒ”ბის რეჟიმი (რáƒáƒ’áƒáƒ áƒáƒª ეს პáƒáƒ áƒáƒ›áƒ”ტრირდáƒáƒ§áƒ”ნებული)" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Interpolation Mode" -msgstr "" +msgstr "ინტერპáƒáƒšáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმი" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" @@ -185,12 +191,12 @@ msgstr "" #: editor/animation_track_editor.cpp #, fuzzy msgid "Remove this track." -msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ თრექის წáƒáƒ¨áƒšáƒ." +msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ჩáƒáƒœáƒáƒ¬áƒ”რის წáƒáƒ¨áƒšáƒ." #: editor/animation_track_editor.cpp #, fuzzy msgid "Time (s): " -msgstr "ნáƒáƒ‘იჯი (წáƒáƒ›áƒ˜):" +msgstr "დრრ(წáƒáƒ›áƒ˜): " #: editor/animation_track_editor.cpp msgid "Continuous" @@ -206,11 +212,11 @@ msgstr "სáƒáƒ¡áƒ®áƒšáƒ”ტი" #: editor/animation_track_editor.cpp msgid "Capture" -msgstr "" +msgstr "გáƒáƒ“áƒáƒ¦áƒ”ბáƒ" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "უáƒáƒ®áƒšáƒáƒ”სი" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp @@ -219,7 +225,7 @@ msgstr "წრფივი" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "" +msgstr "კუბური" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" @@ -232,7 +238,7 @@ msgstr "" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "ჩáƒáƒ¡áƒ•áƒ˜áƒ— გáƒáƒ¡áƒáƒ¦áƒ”ბი" #: editor/animation_track_editor.cpp #, fuzzy @@ -249,12 +255,13 @@ msgid "Remove Anim Track" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის წáƒáƒ¨áƒšáƒ" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Create NEW track for %s and insert key?" -msgstr "áƒáƒ®áƒáƒšáƒ˜ თრექის შექმნრ%s სთვის დრგáƒáƒ¡áƒáƒ¦áƒ”ბის ჩáƒáƒ¡áƒ›áƒ?" +msgstr "შევქმნრáƒáƒ®áƒáƒšáƒ˜ მáƒáƒœáƒáƒ™áƒ•áƒ”თი %s-თვის დრჩáƒáƒ•áƒ¡áƒ•áƒ გáƒáƒ¡áƒáƒ¦áƒ”ბი?" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" -msgstr "áƒáƒ®áƒáƒšáƒ˜ %d თრექების შექმნრდრგáƒáƒ¡áƒáƒ¦áƒ”ბების ჩáƒáƒ¡áƒ›áƒ?" +msgstr "áƒáƒ®áƒáƒšáƒ˜ %d ჩáƒáƒœáƒáƒ¬áƒ”რების შექმნრდრგáƒáƒ¡áƒáƒ¦áƒ”ბების ჩáƒáƒ¡áƒ›áƒ?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp @@ -270,8 +277,11 @@ msgid "Anim Insert" msgstr "áƒáƒœáƒ˜áƒ› ჩáƒáƒ§áƒ”ნებáƒ" #: editor/animation_track_editor.cpp +#, fuzzy msgid "AnimationPlayer can't animate itself, only other players." msgstr "" +"áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ›áƒ¨áƒ•áƒ”ბი ვერჩáƒáƒáƒ¢áƒáƒ ებს ცდებს სáƒáƒ™áƒ£áƒ—áƒáƒ თáƒáƒ•áƒ–ე, მხáƒáƒšáƒáƒ“ სხვრ" +"მáƒáƒ—áƒáƒ›áƒáƒ¨áƒ”ებზე." #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" @@ -279,7 +289,7 @@ msgstr "áƒáƒœáƒ˜áƒ› შექმნრ& ჩáƒáƒ§áƒ”ნებáƒ" #: editor/animation_track_editor.cpp msgid "Anim Insert Track & Key" -msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის დრგáƒáƒ¡áƒáƒ¦áƒ”ბის ჩáƒáƒ›áƒáƒ¢áƒ”ბáƒ" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ჩáƒáƒœáƒáƒ¬áƒ”რის დრგáƒáƒ¡áƒáƒ¦áƒ”ბის ჩáƒáƒ›áƒáƒ¢áƒ”ბáƒ" #: editor/animation_track_editor.cpp msgid "Anim Insert Key" @@ -307,35 +317,39 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "შეუძლებელირდáƒáƒáƒ›áƒáƒ¢áƒ áƒáƒ®áƒáƒšáƒ˜ ჩáƒáƒœáƒáƒ¬áƒ”რი ფესვის გáƒáƒ ეშე" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Track path is invalid, so can't add a key." -msgstr "" +msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რის მისáƒáƒ›áƒáƒ თი áƒáƒ áƒáƒ¡áƒ¬áƒáƒ იáƒ, áƒáƒ¡áƒ” რáƒáƒ› შეუძლებელირგáƒáƒ¡áƒáƒ¦áƒ”ბის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რი áƒáƒ áƒáƒ ის სივრცის სáƒáƒ®áƒ˜áƒ¡, ვერჩáƒáƒ¡áƒ•áƒáƒ›áƒ— გáƒáƒ¡áƒáƒ¦áƒ”ბს" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." msgstr "" +"ჩáƒáƒœáƒáƒ¬áƒ”რის მისáƒáƒ›áƒáƒ თი áƒáƒ áƒáƒ¡áƒ¬áƒáƒ იáƒ, áƒáƒ¡áƒ” რáƒáƒ› შეუძლებელირმეთáƒáƒ“ური გáƒáƒ¡áƒáƒ¦áƒ”ბის " +"დáƒáƒ›áƒáƒ¢áƒ”ბáƒ." #: editor/animation_track_editor.cpp msgid "Method not found in object: " -msgstr "" +msgstr "მეთáƒáƒ“ი ვერმáƒáƒ˜áƒ«áƒ”ბნრáƒáƒ‘იექტში: " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბების გáƒáƒ“áƒáƒáƒ“გილებáƒ" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Clipboard is empty" -msgstr "" +msgstr "ბუფერი ცáƒáƒ იელიáƒ" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" -msgstr "áƒáƒœáƒ˜áƒ› გáƒáƒ¡áƒáƒ¦áƒ”ბების შკáƒáƒšáƒ˜áƒ ებáƒ" +msgstr "áƒáƒœáƒ˜áƒ› გáƒáƒ¡áƒáƒ¦áƒ”ბების ზáƒáƒ›áƒ˜áƒ¡ შეცვლáƒ" #: editor/animation_track_editor.cpp msgid "" @@ -344,21 +358,19 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." -msgstr "" +msgstr "მხáƒáƒšáƒáƒ“ áƒáƒ©áƒ•áƒ”ნე ჩáƒáƒœáƒáƒ¬áƒ”რები კვáƒáƒœáƒ«áƒ”ბიდáƒáƒœ მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ხეში." #: editor/animation_track_editor.cpp msgid "Group tracks by node or display them as plain list." -msgstr "" +msgstr "დáƒáƒáƒ¯áƒ’უფე ჩáƒáƒœáƒáƒ¬áƒ”რები კვáƒáƒœáƒ«áƒ”ბის მიხედვით áƒáƒœ áƒáƒ©áƒ•áƒ”ნე რáƒáƒ’áƒáƒ ც უბრáƒáƒšáƒ სიáƒ." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap (s): " -msgstr "ნáƒáƒ‘იჯი (წáƒáƒ›áƒ˜):" +msgstr "ნáƒáƒ‘იჯი (s): " #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation step value." -msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ზუმი." +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ნáƒáƒ‘იჯის ღირებულებáƒ." #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -367,12 +379,11 @@ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ზუმი." #: editor/project_manager.cpp editor/project_settings_editor.cpp #: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp msgid "Edit" -msgstr "" +msgstr "შეცვლáƒ" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation properties." -msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ზუმი." +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები." #: editor/animation_track_editor.cpp msgid "Copy Tracks" @@ -549,22 +560,14 @@ msgstr "ზუმის დáƒáƒžáƒáƒ¢áƒáƒ áƒáƒ•áƒ”ბáƒ" msgid "Reset Zoom" msgstr "ზუმის სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ–ე დáƒáƒ§áƒ”ნებáƒ" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "ხáƒáƒ–ი:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "სვეტი:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "სáƒáƒ›áƒ˜áƒ–ნე კვáƒáƒœáƒ«áƒ¨áƒ˜ მეთáƒáƒ“ი უნდრიყáƒáƒ¡ გáƒáƒœáƒ¡áƒáƒ–ღვრული!" @@ -869,8 +872,8 @@ msgstr "წáƒáƒ•áƒ¨áƒáƒšáƒáƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ”ბá #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "წáƒáƒ¨áƒšáƒ" @@ -4211,6 +4214,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6211,7 +6224,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6288,8 +6301,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "ფუნქციები:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ áƒáƒžáƒ¢áƒ˜áƒ›áƒ˜áƒ–áƒáƒªáƒ˜áƒ" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6300,8 +6319,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები." #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7092,6 +7112,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8576,10 +8609,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9212,6 +9241,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9367,6 +9403,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9480,10 +9523,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9568,6 +9619,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "ხáƒáƒ–ი:" + +#~ msgid "Col:" +#~ msgstr "სვეტი:" + #, fuzzy #~ msgid "Remove Split" #~ msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ˜áƒ¡ მáƒáƒ¨áƒáƒ ებáƒ" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 23e4633092..d241c5a7f2 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" +"PO-Revision-Date: 2019-02-07 15:09+0000\n" "Last-Translator: ì†¡íƒœì„ <xotjq237@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" @@ -49,23 +49,23 @@ msgstr "ì¸ìŠ¤í„´ìŠ¤ê°€ 비어있기 ë•Œë¬¸ì— Self를 ì‚¬ìš©í• ìˆ˜ ì—†ìŠµë‹ˆë‹ #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "ì—°ì‚°ìž %s, %s ë° %s ì˜ ì—°ì‚° 대ìƒì´ ìœ íš¨í•˜ì§€ 않습니다." +msgstr "ì—°ì‚°ìž %s, %s ê·¸ë¦¬ê³ %sì˜ ì—°ì‚° 대ìƒì´ ìœ íš¨í•˜ì§€ 않습니다." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "ë² ì´ìŠ¤ 타입 %s ì— ìœ íš¨í•˜ì§€ ì•Šì€ ì¸ë±ìŠ¤ 타입 %s" +msgstr "ë² ì´ìŠ¤ 타입 %sì— ìœ íš¨í•˜ì§€ ì•Šì€ ì¸ë±ìŠ¤ 타입 %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "ë² ì´ìŠ¤ 타입 %s ì— ìœ íš¨í•˜ì§€ ì•Šì€ ì¸ë±ìŠ¤ ì´ë¦„ %s" +msgstr "ë² ì´ìŠ¤ 타입 %sì— ìœ íš¨í•˜ì§€ ì•Šì€ ì¸ë±ìŠ¤ ì´ë¦„ %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "'%s' ì„ êµ¬ì„±í•˜ê¸°ì— ìœ íš¨í•˜ì§€ ì•Šì€ ì¸ìˆ˜" +msgstr "'%s'ì„(를) êµ¬ì„±í•˜ê¸°ì— ìœ íš¨í•˜ì§€ ì•Šì€ ì¸ìˆ˜" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "'%s' 를 호출 ì‹œ:" +msgstr "'%s'ì„(를) 호출 ì‹œ:" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -249,7 +249,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ 트랙 ì‚ì œ" #: editor/animation_track_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "%s (ì„)를 위해 새 íŠ¸ëž™ì„ ë§Œë“¤ê³ í‚¤ë¥¼ ì‚½ìž…í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" +msgstr "%sì„(를) 위해 새 íŠ¸ëž™ì„ ë§Œë“¤ê³ í‚¤ë¥¼ ì‚½ìž…í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" @@ -548,21 +548,13 @@ msgstr "축소" msgid "Reset Zoom" msgstr "줌 리셋" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "ê²½ê³ :" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "í°íŠ¸ í¬ê¸°:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "ë¼ì¸:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "ê²½ê³ " #: editor/code_editor.cpp -msgid "Col:" -msgstr "칼럼:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -639,11 +631,11 @@ msgstr "ì—°ê²°" #: editor/connections_dialog.cpp msgid "Connect '%s' to '%s'" -msgstr "'%s'를 '%s'ì— ì—°ê²°" +msgstr "'%s'ì„(를) '%s'ì— ì—°ê²°" #: editor/connections_dialog.cpp msgid "Disconnect '%s' from '%s'" -msgstr "'%s'와 '%s'ì˜ ì—°ê²° í•´ì œ" +msgstr "'%s'와(ê³¼) '%s'ì˜ ì—°ê²° í•´ì œ" #: editor/connections_dialog.cpp msgid "Disconnect all from signal: '%s'" @@ -672,7 +664,7 @@ msgstr "\"%s\" 시그ë„ì—ì„œ ëª¨ë“ ì—°ê²°ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" -msgstr "시그ë„(Signal)" +msgstr "시그ë„" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" @@ -692,7 +684,7 @@ msgstr "메서드로 ì´ë™" #: editor/create_dialog.cpp msgid "Change %s Type" -msgstr "%së¡œ 타입 변경" +msgstr "%s(으)ë¡œ 타입 변경" #: editor/create_dialog.cpp editor/project_settings_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -744,7 +736,7 @@ msgid "" "Scene '%s' is currently being edited.\n" "Changes will not take effect unless reloaded." msgstr "" -"씬 '%s'(ì´)ê°€ 현재 편집 중입니다.\n" +"씬 '%s'ì´(ê°€) 현재 편집 중입니다.\n" "다시 불러올 ë•Œ 변경 사í•ì´ ì ìš©ë©ë‹ˆë‹¤." #: editor/dependency_editor.cpp @@ -818,7 +810,7 @@ msgstr "ì‚ì œí• ìˆ˜ 없습니다:" #: editor/dependency_editor.cpp msgid "Error loading:" -msgstr "불러오기 중 ì—러:" +msgstr "불러오기 중 오류:" #: editor/dependency_editor.cpp msgid "Load failed due to missing dependencies:" @@ -838,7 +830,7 @@ msgstr "ì¢…ì† ê´€ê³„ ìˆ˜ì •" #: editor/dependency_editor.cpp msgid "Errors loading!" -msgstr "불러오기 중 ì—러 ë°œìƒ!" +msgstr "불러오기 중 오류 ë°œìƒ!" #: editor/dependency_editor.cpp msgid "Permanently delete %d item(s)? (No undo!)" @@ -863,8 +855,8 @@ msgstr "ì„ íƒëœ 파ì¼ë“¤ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "ì‚ì œ" @@ -1641,7 +1633,7 @@ msgstr "프로ì 트 내보내기가 오류 코드 %d ë¡œ 실패했습니다." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" -msgstr "리소스 ì €ìž¥ 중 ì—러!" +msgstr "리소스 ì €ìž¥ 중 오류!" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1662,27 +1654,27 @@ msgstr "ìš”ì²í•œ íŒŒì¼ í˜•ì‹ì„ ì•Œ 수 ì—†ìŒ:" #: editor/editor_node.cpp msgid "Error while saving." -msgstr "ì €ìž¥ 중 ì—러." +msgstr "ì €ìž¥ 중 오류." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." -msgstr "'%s' 를 ì—´ 수 없습니다. 파ì¼ì´ 존재하지 않습니다." +msgstr "'%s'ì„(를) ì—´ 수 없습니다. 파ì¼ì´ 존재하지 않습니다." #: editor/editor_node.cpp msgid "Error while parsing '%s'." -msgstr "'%s' 파싱 중 ì—러." +msgstr "'%s' 구문 ë¶„ì„ ì¤‘ 오류." #: editor/editor_node.cpp msgid "Unexpected end of file '%s'." -msgstr "예ìƒì¹˜ 못한 파ì¼ì˜ ë '%s' 입니다..." +msgstr "예ìƒì¹˜ 못한 '%s' 파ì¼ì˜ ë." #: editor/editor_node.cpp msgid "Missing '%s' or its dependencies." -msgstr "'%s' 없거나 ì¢…ì† í•ëª©ì´ 없습니다." +msgstr "'%s'ì´(ê°€) 없거나 ì¢…ì† í•ëª©ì´ 없습니다." #: editor/editor_node.cpp msgid "Error while loading '%s'." -msgstr "'%s' 로딩 중 ì—러." +msgstr "'%s' 로딩 중 오류." #: editor/editor_node.cpp msgid "Saving Scene" @@ -1726,7 +1718,7 @@ msgstr "ë³‘í•©í• ë©”ì‹œ ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 불러올 수 없습니다!" #: editor/editor_node.cpp msgid "Error saving MeshLibrary!" -msgstr "메시 ë¼ì´ë¸ŒëŸ¬ë¦¬ ì €ìž¥ 중 ì—러!" +msgstr "메시 ë¼ì´ë¸ŒëŸ¬ë¦¬ ì €ìž¥ 중 오류!" #: editor/editor_node.cpp msgid "Can't load TileSet for merging!" @@ -1734,11 +1726,11 @@ msgstr "ë³‘í•©í• íƒ€ì¼ì…‹ì„ 불러올 수 없습니다!" #: editor/editor_node.cpp msgid "Error saving TileSet!" -msgstr "타ì¼ì…‹ ì €ìž¥ 중 ì—러!" +msgstr "타ì¼ì…‹ ì €ìž¥ 중 오류!" #: editor/editor_node.cpp msgid "Error trying to save layout!" -msgstr "ë ˆì´ì•„웃 ì €ìž¥ ì‹œë„ ì¤‘ ì—러!" +msgstr "ë ˆì´ì•„웃 ì €ìž¥ ì‹œë„ ì¤‘ 오류!" #: editor/editor_node.cpp msgid "Default editor layout overridden." @@ -1861,7 +1853,7 @@ msgstr "ì €ìž¥ ë° ë‹«ê¸°" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" -msgstr "닫기 ì „ì— '%s' ì— ë³€ê²½ì‚¬í•ì„ ì €ìž¥í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" +msgstr "닫기 ì „ì— '%s'ì— ë³€ê²½ì‚¬í•ì„ ì €ìž¥í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/editor_node.cpp msgid "Save Scene As..." @@ -1957,35 +1949,35 @@ msgstr "ë©”ì¸ ì”¬ ì„ íƒ" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "ì• ë“œì˜¨ 플러그ì¸ì„ í™œì„±í™”í• ìˆ˜ 없습니다: '%s' ì„¤ì • í•´ì„ ì‹¤íŒ¨." +msgstr "ì• ë“œì˜¨ 플러그ì¸ì„ í™œì„±í™”í• ìˆ˜ 없습니다: '%s' 구성 구문 ë¶„ì„ ì‹¤íŒ¨." #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." -msgstr "ì• ë“œì˜¨ 플러그ì¸ì„ ì°¾ì„ ìˆ˜ 없습니다: 'res://addons/%s'." +msgstr "ë‹¤ìŒ ê²½ë¡œì—ì„œ ì• ë“œì˜¨ 플러그ì¸ì„ ì°¾ì„ ìˆ˜ 없습니다: 'res://addons/%s'." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." -msgstr "ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s'." +msgstr "ë‹¤ìŒ ê²½ë¡œì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s'." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"해당 경로ì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' ì½”ë“œì— ì˜¤ë¥˜ê°€ 있는 " +"ë‹¤ìŒ ê²½ë¡œì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' ì½”ë“œì— ì˜¤ë¥˜ê°€ 있는 " "것 같습니다, êµ¬ë¬¸ì„ í™•ì¸í•´ ë³´ì‹ì‹œì˜¤." #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." msgstr "" -"해당 경로ì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' 기본 íƒ€ìž…ì´ " +"ë‹¤ìŒ ê²½ë¡œì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' 기본 íƒ€ìž…ì´ " "EditorPluginì´ ì•„ë‹™ë‹ˆë‹¤." #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." msgstr "" -"해당 경로ì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' 스í¬ë¦½íŠ¸ê°€ tool 모드" +"ë‹¤ìŒ ê²½ë¡œì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' 스í¬ë¦½íŠ¸ê°€ tool 모드" "ê°€ 아닙니다." #: editor/editor_node.cpp @@ -2001,12 +1993,12 @@ msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." msgstr "" -"씬 로딩 중 ì—러가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 프로ì 트 경로 ì•ˆì— ì¡´ìž¬í•´ì•¼ 합니다. 'ê°€ì ¸ì˜¤" +"씬 로딩 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 프로ì 트 경로 ì•ˆì— ì¡´ìž¬í•´ì•¼ 합니다. 'ê°€ì ¸ì˜¤" "기'ë¡œ ì”¬ì„ ì—° 후ì—, 프로ì 트 경로 ì•ˆì— ì €ìž¥í•˜ì„¸ìš”." #: editor/editor_node.cpp msgid "Scene '%s' has broken dependencies:" -msgstr "'%s' ì”¬ì˜ ì¢…ì† í•ëª©ì´ ê¹¨ì ¸ìžˆìŠµë‹ˆë‹¤:" +msgstr "'%s' ì”¬ì˜ ì¢…ì† í•ëª©ì´ ê¹¨ì ¸ 있습니다:" #: editor/editor_node.cpp msgid "Clear Recent Scenes" @@ -2457,7 +2449,7 @@ msgstr "새 ìƒì† 씬" #: editor/editor_node.cpp msgid "Load Errors" -msgstr "불러오기 ì—러" +msgstr "불러오기 오류" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" @@ -2601,7 +2593,7 @@ msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ RID" msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." -msgstr "ì„ íƒëœ 리소스(%s)ê°€ ì´ ì†ì„±(%s)ì— ì•Œë§žì€ íƒ€ìž…ì´ ì•„ë‹™ë‹ˆë‹¤." +msgstr "ì„ íƒëœ 리소스 (%s)ê°€ ì´ ì†ì„± (%s)ì— ì•Œë§žì€ íƒ€ìž…ì´ ì•„ë‹™ë‹ˆë‹¤." #: editor/editor_properties.cpp msgid "" @@ -2743,7 +2735,7 @@ msgstr "노드ì—ì„œ ê°€ì ¸ì˜¤ê¸°:" #: editor/export_template_manager.cpp msgid "Re-Download" -msgstr "다시 다운불러오기" +msgstr "다시 다운로드" #: editor/export_template_manager.cpp msgid "Uninstall" @@ -2788,7 +2780,7 @@ msgstr "í…œí”Œë¦¿ì— version.txt를 ì°¾ì„ ìˆ˜ 없습니다." #: editor/export_template_manager.cpp msgid "Error creating path for templates:" -msgstr "템플릿 경로 ìƒì„± ì—러:" +msgstr "템플릿 경로 ìƒì„± 오류:" #: editor/export_template_manager.cpp msgid "Extracting Export Templates" @@ -2850,7 +2842,7 @@ msgstr "" #: editor/export_template_manager.cpp msgid "Error requesting url: " -msgstr "url ìš”ì² ì—러: " +msgstr "url ìš”ì² ì˜¤ë¥˜: " #: editor/export_template_manager.cpp msgid "Connecting to Mirror..." @@ -2892,11 +2884,11 @@ msgstr "다운로드 중" #: editor/export_template_manager.cpp msgid "Connection Error" -msgstr "ì—°ê²° ì—러" +msgstr "ì—°ê²° 오류" #: editor/export_template_manager.cpp msgid "SSL Handshake Error" -msgstr "SSL 핸드ì‰ì´í¬ ì—러" +msgstr "SSL 핸드ì‰ì´í¬ 오류" #: editor/export_template_manager.cpp msgid "Current Version:" @@ -2940,7 +2932,7 @@ msgstr "ì¦ê²¨ì°¾ê¸°" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" -msgstr "íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ '%s'를 ì°¾ì„ ìˆ˜ 없습니다!" +msgstr "íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ '%s'ì„(를) ì°¾ì„ ìˆ˜ 없습니다!" #: editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -2965,11 +2957,11 @@ msgstr "í´ë”를 ìžì‹ ì˜ í•˜ìœ„ë¡œ ì´ë™í• 수 없습니다." #: editor/filesystem_dock.cpp msgid "Error moving:" -msgstr "ì´ë™ ì—러:" +msgstr "ì´ë™ 오류:" #: editor/filesystem_dock.cpp msgid "Error duplicating:" -msgstr "ë³µì œ 중 ì—러:" +msgstr "ë³µì œ 중 오류:" #: editor/filesystem_dock.cpp msgid "Unable to update dependencies:" @@ -3173,7 +3165,7 @@ msgstr "그룹 ì´ë¦„ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤." #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" -msgstr "그룹(Groups)" +msgstr "그룹" #: editor/groups_editor.cpp msgid "Nodes not in Group" @@ -3209,7 +3201,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ì„ 분리시켜 ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials" -msgstr "ë¨¸í„°ë¦¬ì–¼ì„ ë¶„ë¦¬í•´ì„œ ê°€ì ¸ì˜¤ê¸°" +msgstr "ë¨¸í‹°ë¦¬ì–¼ì„ ë¶„ë¦¬í•´ì„œ ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects" @@ -3217,7 +3209,7 @@ msgstr "오브ì 트를 분리해서 ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials" -msgstr "오브ì 트와 ë¨¸í„°ë¦¬ì–¼ì„ ë¶„ë¦¬í•´ì„œ ê°€ì ¸ì˜¤ê¸°" +msgstr "오브ì 트와 ë¨¸í‹°ë¦¬ì–¼ì„ ë¶„ë¦¬í•´ì„œ ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Animations" @@ -3225,11 +3217,11 @@ msgstr "오브ì 트와 ì• ë‹ˆë©”ì´ì…˜ì„ 분리해서 ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Materials+Animations" -msgstr "머터리얼과 ì• ë‹ˆë©”ì´ì…˜ì„ 분리해서 ê°€ì ¸ì˜¤ê¸°" +msgstr "머티리얼과 ì• ë‹ˆë©”ì´ì…˜ì„ 분리해서 ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Objects+Materials+Animations" -msgstr "오브ì 트, 머터리얼, ì• ë‹ˆë©”ì´ì…˜ì„ 분리해서 ê°€ì ¸ì˜¤ê¸°" +msgstr "오브ì 트, 머티리얼, ì• ë‹ˆë©”ì´ì…˜ì„ 분리해서 ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes" @@ -3237,7 +3229,7 @@ msgstr "ì—¬ëŸ¬ê°œì˜ ì”¬ìœ¼ë¡œ ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes+Materials" -msgstr "여러 ê°œì˜ ì”¬ê³¼ 머터리얼로 ê°€ì ¸ì˜¤ê¸°" +msgstr "여러 ê°œì˜ ì”¬ê³¼ 머티리얼로 ê°€ì ¸ì˜¤ê¸°" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp @@ -3271,7 +3263,7 @@ msgstr "" #: editor/import/resource_importer_scene.cpp msgid "Error running post-import script:" -msgstr "ê°€ì ¸ì˜¤ê¸° 후 ì‹¤í–‰í• ìŠ¤í¬ë¦½íŠ¸ 실행 중 ì—러:" +msgstr "ê°€ì ¸ì˜¤ê¸° 후 ì‹¤í–‰í• ìŠ¤í¬ë¦½íŠ¸ 실행 중 오류:" #: editor/import/resource_importer_scene.cpp msgid "Saving..." @@ -3279,11 +3271,11 @@ msgstr "ì €ìž¥ 중..." #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "'%s'를 기본으로 ì§€ì •" +msgstr "'%s'ì„(를) 기본으로 ì§€ì •" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "'%s'ì— ëŒ€í•´ 기본값으로 ì§€ì • í•´ì œ" +msgstr "'%s'ì„(를) 기본ì—ì„œ í•´ì œ" #: editor/import_dock.cpp msgid " Files" @@ -3303,17 +3295,18 @@ msgstr "다시 ê°€ì ¸ì˜¤ê¸°" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "씬 ì €ìž¥, 다시 ê°€ì ¸ì˜¤ê¸° ë° ë‹¤ì‹œ 시작" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "비디오 ë“œë¼ì´ë²„를 ë³€ê²½í•˜ë ¤ë©´ ì—디터를 다시 시작해야 합니다." +msgstr "ê°€ì ¸ì˜¨ 파ì¼ì˜ íƒ€ìž…ì„ ë³€ê²½í•˜ë ¤ë©´ ì—디터를 다시 시작해야 합니다." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"ê²½ê³ : ì´ ë¦¬ì†ŒìŠ¤ë¥¼ 사용하는 ì—ì…‹ì´ ì¡´ìž¬í•©ë‹ˆë‹¤, ì—ì…‹ì„ ë¶ˆëŸ¬ì˜¤ì§€ ëª»í• ìˆ˜ 있습니" +"다." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -3718,7 +3711,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ ë„구" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Animation" -msgstr "ì• ë‹ˆë©”ì´ì…˜" +msgstr "ì• ë‹ˆë©”ì´ì…˜(Animation)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New" @@ -3806,7 +3799,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ ì´ë¦„:" #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp #: editor/script_create_dialog.cpp msgid "Error!" -msgstr "ì—러!" +msgstr "오류!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Times:" @@ -3822,7 +3815,7 @@ msgstr "êµì°¨-ì• ë‹ˆë©”ì´ì…˜ ë¸”ë Œë“œ 시간" #: editor/plugins/animation_state_machine_editor.cpp msgid "End" -msgstr "ë" +msgstr "End" #: editor/plugins/animation_state_machine_editor.cpp msgid "Immediate" @@ -3846,7 +3839,7 @@ msgstr "하위 ì „í™˜ì— ì‹œìž‘ê³¼ ë 노드가 필요합니다." #: editor/plugins/animation_state_machine_editor.cpp msgid "No playback resource set at path: %s." -msgstr "ê²½ë¡œì— ì„¤ì •ëœ ìž¬ìƒ ë¦¬ì†ŒìŠ¤ ì„¤ì •ì´ ì—†ìŠµë‹ˆë‹¤: %s." +msgstr "ë‹¤ìŒ ê²½ë¡œì— ì„¤ì •ëœ ìž¬ìƒ ë¦¬ì†ŒìŠ¤ê°€ 없습니다: %s." #: editor/plugins/animation_state_machine_editor.cpp msgid "" @@ -4037,7 +4030,7 @@ msgstr "í˜¸ìŠ¤íŠ¸ëª…ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Connection error, please try again." -msgstr "ì—°ê²° ì—러, 다시 ì‹œë„í•´ 주세요." +msgstr "ì—°ê²° 오류, 다시 ì‹œë„í•´ 주세요." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" @@ -4073,7 +4066,7 @@ msgstr "sha256 í•´ì‹œ í™•ì¸ ì‹¤íŒ¨" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" -msgstr "ì—ì…‹ 다운로드 ì—러:" +msgstr "ì—ì…‹ 다운로드 오류:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading (%s / %s)..." @@ -4089,7 +4082,7 @@ msgstr "í•´ê²° 중..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Error making request" -msgstr "ìš”ì² ì—러" +msgstr "ìš”ì² ì˜¤ë¥˜" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Idle" @@ -4101,7 +4094,7 @@ msgstr "다시 ì‹œë„" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download Error" -msgstr "다운로드 ì—러" +msgstr "다운로드 오류" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" @@ -4270,6 +4263,17 @@ msgid "Move CanvasItem" msgstr "CanvasItem ì´ë™" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "ê²½ê³ : 컨테ì´ë„ˆì˜ ìžì‹ì€ ë¶€ëª¨ì— ì˜í•´ ê²°ì •ëœ ìœ„ì¹˜ì™€ 규모를 갖습니다." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "앵커만" @@ -4525,7 +4529,7 @@ msgstr "%s 추가" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Adding %s..." -msgstr "%s 추가중..." +msgstr "%s 추가 중..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Cannot instantiate multiple nodes without root." @@ -4539,7 +4543,7 @@ msgstr "노드 만들기" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Error instancing scene from %s" -msgstr "'%s' 로부터 씬 ì¸ìŠ¤í„´ìŠ¤ 중 ì—러" +msgstr "'%s'ì—ì„œ 씬 ì¸ìŠ¤í„´ìŠ¤ 중 오류" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change default type" @@ -4912,7 +4916,7 @@ msgstr "ì˜¤ì§ ParticlesMaterial 프로세스 메테리얼 ì•ˆì˜ í¬ì¸íŠ¸ë§Œ ì #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Error loading image:" -msgstr "ì´ë¯¸ì§€ 불러오기 ì—러:" +msgstr "ì´ë¯¸ì§€ 불러오기 오류:" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "No pixels with transparency > 128 in image..." @@ -5003,7 +5007,7 @@ msgstr "ì—미션 소스: " #: editor/plugins/particles_editor_plugin.cpp msgid "A processor material of type 'ParticlesMaterial' is required." -msgstr "'ParticlesMaterial' íƒ€ìž…ì˜ í”„ë¡œì„¸ì„œ ë¨¸í„°ë¦¬ì–¼ì´ í•„ìš”í•©ë‹ˆë‹¤." +msgstr "'ParticlesMaterial' íƒ€ìž…ì˜ í”„ë¡œì„¸ì„œ ë¨¸í‹°ë¦¬ì–¼ì´ í•„ìš”í•©ë‹ˆë‹¤." #: editor/plugins/particles_editor_plugin.cpp msgid "Generating AABB" @@ -5337,7 +5341,7 @@ msgstr "ë³¸ì„ í´ë¦¬ê³¤ì— ë™ê¸°í™”" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" -msgstr "ì—러: 리소스를 불러올 수 없습니다!" +msgstr "오류: 리소스를 불러올 수 없습니다!" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Add Resource" @@ -5403,19 +5407,19 @@ msgstr "변경사í•ì„ ì €ìž¥í•˜ê³ ë‹«ê² ìŠµë‹ˆê¹Œ?" #: editor/plugins/script_editor_plugin.cpp msgid "Error writing TextFile:" -msgstr "í…스트 íŒŒì¼ ì“°ê¸° ì—러:" +msgstr "í…스트 íŒŒì¼ ì“°ê¸° 오류:" #: editor/plugins/script_editor_plugin.cpp msgid "Error: could not load file." -msgstr "ì—러: 파ì¼ì„ 불러올 수 ì—†ìŒ." +msgstr "오류: 파ì¼ì„ 불러올 수 ì—†ìŒ." #: editor/plugins/script_editor_plugin.cpp msgid "Error could not load file." -msgstr "ì—러로 파ì¼ì„ 불러올 수 ì—†ìŒ." +msgstr "오류로 파ì¼ì„ 불러올 수 ì—†ìŒ." #: editor/plugins/script_editor_plugin.cpp msgid "Error saving file!" -msgstr "íŒŒì¼ ì €ìž¥ 중 ì—러!" +msgstr "íŒŒì¼ ì €ìž¥ 중 오류!" #: editor/plugins/script_editor_plugin.cpp msgid "Error while saving theme." @@ -5451,11 +5455,11 @@ msgstr "테마 ê°€ì ¸ì˜¤ê¸°" #: editor/plugins/script_editor_plugin.cpp msgid "Error while saving theme" -msgstr "테마 ì €ìž¥ 중 ì—러" +msgstr "테마 ì €ìž¥ 중 오류" #: editor/plugins/script_editor_plugin.cpp msgid "Error saving" -msgstr "ì €ìž¥ 중 ì—러" +msgstr "ì €ìž¥ 중 오류" #: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." @@ -5806,7 +5810,7 @@ msgstr "물리ì 본 만들기" #: editor/plugins/skeleton_editor_plugin.cpp msgid "Skeleton" -msgstr "ìŠ¤ì¼ˆë ˆí†¤" +msgstr "ìŠ¤ì¼ˆë ˆí†¤(Skeleton)" #: editor/plugins/skeleton_editor_plugin.cpp msgid "Create physical skeleton" @@ -5878,7 +5882,7 @@ msgstr "ê·¸ë ¤ì§„ 오브ì 트" #: editor/plugins/spatial_editor_plugin.cpp msgid "Material Changes" -msgstr "머터리얼 변경" +msgstr "머티리얼 변경" #: editor/plugins/spatial_editor_plugin.cpp msgid "Shader Changes" @@ -6260,7 +6264,8 @@ msgid "Post" msgstr "Post" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "ì´ë¦„없는 기즈모" #: editor/plugins/sprite_editor_plugin.cpp @@ -6305,7 +6310,7 @@ msgstr "ì„¤ì •:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "ERROR: Couldn't load frame resource!" -msgstr "ì—러: í”„ë ˆìž„ 리소스를 불러올 수 없습니다!" +msgstr "오류: í”„ë ˆìž„ 리소스를 불러올 수 없습니다!" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" @@ -6336,10 +6341,16 @@ msgid "(empty)" msgstr "(비었ìŒ)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "ì• ë‹ˆë©”ì´ì…˜(Animations)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "ì• ë‹ˆë©”ì´ì…˜(Animation)" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "ì†ë„ (FPS):" @@ -6348,7 +6359,8 @@ msgid "Loop" msgstr "루프" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "ì• ë‹ˆë©”ì´ì…˜ í”„ë ˆìž„" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6848,7 +6860,7 @@ msgstr "실행가능" #: editor/project_export.cpp msgid "Delete patch '%s' from list?" -msgstr "'%s'를 패치 목ë¡ì—ì„œ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" +msgstr "'%s'ì„(를) 패치 목ë¡ì—ì„œ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/project_export.cpp msgid "Delete preset '%s'?" @@ -7030,7 +7042,7 @@ msgid "" "Couldn't load project.godot in project path (error %d). It may be missing or " "corrupted." msgstr "" -"프로ì 트 경로로부터 project.godot 파ì¼ì„ 불러올 수 없습니다 (ì—러 %d). 존재하" +"프로ì 트 경로로부터 project.godot 파ì¼ì„ 불러올 수 없습니다 (오류 %d). 존재하" "지 않거나 ì†ìƒë˜ì—ˆì„ 수 있습니다." #: editor/project_manager.cpp @@ -7099,11 +7111,11 @@ msgstr "찾아보기" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "ë Œë”러:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7112,10 +7124,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"ë†’ì€ ì‹œê°ì 품질\n" +"ëª¨ë“ ê¸°ëŠ¥ 사용 가능\n" +"ì˜¤ëž˜ëœ í•˜ë“œì›¨ì–´ì—는 호환하지 ì•ŠìŒ\n" +"웹 게임ì—는 비 추천" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7124,10 +7140,14 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"ë‚®ì€ ì‹œê°ì 품질\n" +"ì¼ë¶€ ê¸°ëŠ¥ì€ ì‚¬ìš©í• ìˆ˜ ì—†ìŒ\n" +"ëŒ€ë¶€ë¶„ì˜ í•˜ë“œì›¨ì–´ì—ì„œ ìž‘ë™í•¨\n" +"웹 ê²Œìž„ì— ì¶”ì²œ" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." -msgstr "" +msgstr "ë Œë”러는 ë‚˜ì¤‘ì— ë°”ê¿€ 수 있지만, ì”¬ì„ ì¡°ì •í•´ì•¼ í• ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7142,6 +7162,27 @@ msgid "Are you sure to open more than one project?" msgstr "ë‘ê°œ ì´ìƒì˜ 프로ì 트를 ì—´ë ¤ëŠ” ê²ƒì´ í™•ì‹¤í•©ë‹ˆê¹Œ?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"다ìŒì˜ 프로ì 트 ì„¤ì • 파ì¼ì€ ì´ì „ ë²„ì „ì—ì„œ ìƒì„±ëœ 것으로, ë‹¤ìŒ ë²„ì „ì— ë§žê²Œ ë³€" +"환해야 합니다:\n" +"\n" +"%s\n" +"\n" +"ë³€í™˜í•˜ì‹œê² ìŠµë‹ˆê¹Œ?\n" +"ê²½ê³ : ë” ì´ìƒ ì´ í”„ë¡œì 트를 ì´ì „ ë²„ì „ì—ì„œ ì—´ 수 없게 ë©ë‹ˆë‹¤." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7152,13 +7193,13 @@ msgid "" "Warning: You will not be able to open the project with previous versions of " "the engine anymore." msgstr "" -"다ìŒì˜ 프로ì 트 ì„¤ì • 파ì¼ì€ ì˜ˆì „ ë²„ì „ì—ì„œ ìƒì„±ëœ 것으로, ì´ ë²„ì „ì— ë§žê²Œ ì „í™˜" -"해야 합니다:\n" +"다ìŒì˜ 프로ì 트 ì„¤ì • 파ì¼ì€ ì´ì „ ë²„ì „ì—ì„œ ìƒì„±ëœ 것으로, ë‹¤ìŒ ë²„ì „ì— ë§žê²Œ ë³€" +"환해야 합니다:\n" "\n" "%s\n" "\n" -"ì „í™˜í•˜ì‹œê² ìŠµë‹ˆê¹Œ?\n" -"ê²½ê³ : ë” ì´ìƒ ì´ í”„ë¡œì 트를 과거 ë²„ì „ì˜ ê²ƒìœ¼ë¡œ ì—´ 수 없게 ë©ë‹ˆë‹¤." +"ë³€í™˜í•˜ì‹œê² ìŠµë‹ˆê¹Œ?\n" +"ê²½ê³ : ë” ì´ìƒ ì´ í”„ë¡œì 트를 ì´ì „ ë²„ì „ì—ì„œ ì—´ 수 없게 ë©ë‹ˆë‹¤." #: editor/project_manager.cpp msgid "" @@ -7207,7 +7248,7 @@ msgstr "" msgid "" "You are about the scan %s folders for existing Godot projects. Do you " "confirm?" -msgstr "%s ì—ì„œ 기존 Godot 프로ì íŠ¸ë“¤ì„ ìŠ¤ìº”í•˜ë ¤ê³ í•©ë‹ˆë‹¤. ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" +msgstr "%sì—ì„œ 기존 Godot 프로ì íŠ¸ë“¤ì„ ìŠ¤ìº”í•˜ë ¤ê³ í•©ë‹ˆë‹¤. ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/project_manager.cpp msgid "Project Manager" @@ -7279,7 +7320,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Action '%s' already exists!" -msgstr "'%s' ì•¡ì…˜ì´ ì´ë¯¸ 존재합니다!" +msgstr "ì•¡ì…˜ '%s'ì´(ê°€) ì´ë¯¸ 존재합니다!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -7419,7 +7460,7 @@ msgstr "'%s' ì†ì„±ì´ 존재하지 않습니다." #: editor/project_settings_editor.cpp msgid "Setting '%s' is internal, and it can't be deleted." -msgstr "'%s' ì„¤ì •ì€ ë‚´ë¶€ì ì¸ ê²ƒìž…ë‹ˆë‹¤, ì‚ì œê°€ 불가합니다." +msgstr "'%s' ì„¤ì •ì€ ë‚´ë¶€ì ì¸ ê²ƒìž…ë‹ˆë‹¤, ì‚ì œí• ìˆ˜ 없습니다." #: editor/project_settings_editor.cpp msgid "Delete Item" @@ -7443,7 +7484,7 @@ msgstr "ìž…ë ¥ ì•¡ì…˜ 추가" #: editor/project_settings_editor.cpp msgid "Error saving settings." -msgstr "ì„¤ì • ì €ìž¥ 중 ì—러." +msgstr "ì„¤ì • ì €ìž¥ 중 오류." #: editor/project_settings_editor.cpp msgid "Settings saved OK." @@ -7619,7 +7660,7 @@ msgstr "노드 ì„ íƒ" #: editor/property_editor.cpp msgid "Error loading file: Not a resource!" -msgstr "íŒŒì¼ ë¶ˆëŸ¬ì˜¤ê¸° ì—러: 리소스가 아닙니다!" +msgstr "íŒŒì¼ ë¶ˆëŸ¬ì˜¤ê¸° 오류: 리소스가 아닙니다!" #: editor/property_editor.cpp msgid "Pick a Node" @@ -7767,15 +7808,15 @@ msgstr "리셋" #: editor/rename_dialog.cpp msgid "Error" -msgstr "ì—러" +msgstr "오류" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" -msgstr "부모노드 ìž¬ì§€ì •" +msgstr "부모 노드 ìž¬ì§€ì •" #: editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" -msgstr "부모노드 ìž¬ì§€ì • 위치 (새 부모 노드를 ì„ íƒ):" +msgstr "부모 노드 ìž¬ì§€ì • 위치 (새 부모 노드를 ì„ íƒ):" #: editor/reparent_dialog.cpp msgid "Keep Global Transform" @@ -7783,7 +7824,7 @@ msgstr "글로벌 변형 ìœ ì§€" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent" -msgstr "부모노드 ìž¬ì§€ì •" +msgstr "부모 ìž¬ì§€ì •" #: editor/run_settings_dialog.cpp msgid "Run Mode:" @@ -7811,13 +7852,14 @@ msgstr "ì”¬ì„ ì¸ìŠ¤í„´ìŠ¤í• 수 있는 부모가 없습니다." #: editor/scene_tree_dock.cpp msgid "Error loading scene from %s" -msgstr "'%s' 로부터 씬 로딩 중 ì—러" +msgstr "%sì—ì„œ 씬 로딩 중 오류" #: editor/scene_tree_dock.cpp msgid "" "Cannot instance the scene '%s' because the current scene exists within one " "of its nodes." -msgstr "ë…¸ë“œì¤‘ì— í˜„ìž¬ ì”¬ì´ ì¡´ìž¬í•˜ê¸° 때문ì—, '%s' ì”¬ì„ ì¸ìŠ¤í„´ìŠ¤ í• ìˆ˜ 없습니다." +msgstr "" +"í•œ ë…¸ë“œì— í˜„ìž¬ ì”¬ì´ ì¡´ìž¬í•˜ê¸° 때문ì—, '%s' ì”¬ì„ ì¸ìŠ¤í„´ìŠ¤ í• ìˆ˜ 없습니다." #: editor/scene_tree_dock.cpp msgid "Instance Scene(s)" @@ -7850,6 +7892,8 @@ msgstr "노드 ë³µì œ" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"ìƒì†ëœ 씬ì—ì„œ 부모 노드를 다시 ì§€ì •í• ìˆ˜ 없습니다, ë…¸ë“œì˜ ìˆœì„œëŠ” 바꿀 수 없습" +"니다." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." @@ -7940,11 +7984,11 @@ msgstr "" #: editor/scene_tree_dock.cpp msgid "Error saving scene." -msgstr "씬 ì €ìž¥ 중 ì—러." +msgstr "씬 ì €ìž¥ 중 오류." #: editor/scene_tree_dock.cpp msgid "Error duplicating scene to save it." -msgstr "ì €ìž¥í•˜ê¸° 위해 ì”¬ì„ ë³µì œí•˜ëŠ” ì¤‘ì— ì—러가 ë°œìƒí–ˆìŠµë‹ˆë‹¤." +msgstr "ì €ìž¥í•˜ê¸° 위해 ì”¬ì„ ë³µì œí•˜ëŠ” ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤." #: editor/scene_tree_dock.cpp msgid "Sub-Resources" @@ -8111,15 +8155,15 @@ msgstr "노드 ì„ íƒ" #: editor/script_create_dialog.cpp msgid "Error loading template '%s'" -msgstr "'%s' 템플릿 불러오기 ì—러" +msgstr "'%s' 템플릿 불러오기 오류" #: editor/script_create_dialog.cpp msgid "Error - Could not create script in filesystem." -msgstr "ì—러 - íŒŒì¼ ì‹œìŠ¤í…œì— ìŠ¤í¬ë¦½íŠ¸ë¥¼ ìƒì„±í• 수 없습니다." +msgstr "오류 - íŒŒì¼ ì‹œìŠ¤í…œì— ìŠ¤í¬ë¦½íŠ¸ë¥¼ ìƒì„±í• 수 없습니다." #: editor/script_create_dialog.cpp msgid "Error loading script from %s" -msgstr "'%s' 스í¬ë¦½íŠ¸ 로딩 중 ì—러" +msgstr "'%s' 스í¬ë¦½íŠ¸ 로딩 중 오류" #: editor/script_create_dialog.cpp msgid "N/A" @@ -8235,7 +8279,7 @@ msgstr "목ë¡ì—ì„œ í•œ ê°œ í˜¹ì€ ì—¬ëŸ¬ ê°œì˜ í•ëª©ì„ 집어 그래프로 #: editor/script_editor_debugger.cpp modules/mono/editor/mono_bottom_panel.cpp msgid "Errors" -msgstr "ì—러" +msgstr "오류" #: editor/script_editor_debugger.cpp msgid "Child Process Connected" @@ -8243,7 +8287,7 @@ msgstr "ìžì‹ 프로세스 ì—°ê²°ë¨" #: editor/script_editor_debugger.cpp msgid "Copy Error" -msgstr "복사 ì—러" +msgstr "복사 오류" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" @@ -8664,10 +8708,6 @@ msgid "Build Project" msgstr "프로ì 트 빌드" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "ê²½ê³ " - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "로그 보기" @@ -8847,8 +8887,8 @@ msgstr "비주얼 스í¬ë¦½íŠ¸ 노드 ë³µì œ" #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." msgstr "" -"%s 를 ëˆ„ë¥´ê³ ìžˆìœ¼ë©´ Getter를 ë“œë¡í•©ë‹ˆë‹¤. Shift를 ëˆ„ë¥´ê³ ìžˆìœ¼ë©´ ì¼ë°˜ì ì¸ ì‹œê·¸" -"니처를 ë“œë¡í•©ë‹ˆë‹¤." +"%sì„(를) ëˆ„ë¥´ê³ ìžˆìœ¼ë©´ Getter를 ë“œë¡í•©ë‹ˆë‹¤. Shiftì„(를) ëˆ„ë¥´ê³ ìžˆìœ¼ë©´ ì¼ë°˜ì " +"ì¸ ì‹œê·¸ë‹ˆì²˜ë¥¼ ë“œë¡í•©ë‹ˆë‹¤." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." @@ -8858,7 +8898,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a simple reference to the node." -msgstr "%s 를 ëˆ„ë¥´ê³ ìžˆìœ¼ë©´ ë…¸ë“œì— ëŒ€í•œ 간단한 참조를 ë“œë¡í•©ë‹ˆë‹¤." +msgstr "%sì„(를) ëˆ„ë¥´ê³ ìžˆìœ¼ë©´ ë…¸ë“œì— ëŒ€í•œ 간단한 참조를 ë“œë¡í•©ë‹ˆë‹¤." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." @@ -8866,7 +8906,7 @@ msgstr "Ctrlì„ ëˆ„ë¥´ê³ ìžˆìœ¼ë©´ ë…¸ë“œì— ëŒ€í•œ 간단한 참조를 ë“œë¡í #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a Variable Setter." -msgstr "%s를 ëˆ„ë¥´ê³ ìžˆë¥´ë©´ 변수 Setter를 ë“œë¡í•©ë‹ˆë‹¤." +msgstr "%sì„(를) ëˆ„ë¥´ê³ ìžˆë¥´ë©´ 변수 Setter를 ë“œë¡í•©ë‹ˆë‹¤." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." @@ -9026,7 +9066,7 @@ msgstr "노드를 지ì¹í•˜ëŠ” 경로가 아닙니다!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." -msgstr "노드 %s ì•ˆì— ì¸ë±ìŠ¤ ì†ì„± ì´ë¦„ '%s' 는 ìœ íš¨í•˜ì§€ 않습니다." +msgstr "노드 %s ì•ˆì— ì¸ë±ìŠ¤ ì†ì„± ì´ë¦„ '%s'ì€(는) ìœ íš¨í•˜ì§€ 않습니다." #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " @@ -9079,7 +9119,8 @@ msgstr "패키지 세그먼트는 길ì´ê°€ 0ì´ ì•„ë‹ˆì–´ì•¼ 합니다." #: platform/android/export/export.cpp msgid "The character '%s' is not allowed in Android application package names." -msgstr "ë¬¸ìž '%s' 는 안드로ì´ë“œ ì• í”Œë¦¬ì¼€ì´ì…˜ 패키지 ì´ë¦„으로 쓸 수 없습니다." +msgstr "" +"ë¬¸ìž '%s'ì€(는) 안드로ì´ë“œ ì• í”Œë¦¬ì¼€ì´ì…˜ 패키지 ì´ë¦„으로 쓸 수 없습니다." #: platform/android/export/export.cpp msgid "A digit cannot be the first character in a package segment." @@ -9087,7 +9128,7 @@ msgstr "숫ìžëŠ” 패키지 ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžê°€ ë 수 없습니다." #: platform/android/export/export.cpp msgid "The character '%s' cannot be the first character in a package segment." -msgstr "ë¬¸ìž '%s' 는 패키지 ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžê°€ ë 수 없습니다." +msgstr "ë¬¸ìž '%s'ì€(는) 패키지 ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžê°€ ë 수 없습니다." #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." @@ -9123,7 +9164,7 @@ msgstr "ì‹ë³„ìž ì„¸ê·¸ë¨¼íŠ¸ëŠ” 길ì´ê°€ 0ì´ ì•„ë‹ˆì–´ì•¼ 합니다." #: platform/iphone/export/export.cpp msgid "The character '%s' is not allowed in Identifier." -msgstr "ë¬¸ìž '%s' 는 ì‹ë³„ìžì— 쓸 수 없습니다." +msgstr "ë¬¸ìž '%s'ì€(는) ì‹ë³„ìžì— 쓸 수 없습니다." #: platform/iphone/export/export.cpp msgid "A digit cannot be the first character in a Identifier segment." @@ -9132,7 +9173,7 @@ msgstr "숫ìžëŠ” ì‹ë³„ìž ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžê°€ ë 수 없습니다." #: platform/iphone/export/export.cpp msgid "" "The character '%s' cannot be the first character in a Identifier segment." -msgstr "ë¬¸ìž '%s' 는 ì‹ë³„ìž ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžê°€ ë 수 없습니다." +msgstr "ë¬¸ìž '%s'ì€(는) ì‹ë³„ìž ì„¸ê·¸ë¨¼íŠ¸ì˜ ì²« 문ìžê°€ ë 수 없습니다." #: platform/iphone/export/export.cpp msgid "The Identifier must have at least one '.' separator." @@ -9332,6 +9373,13 @@ msgid "" msgstr "" "ParallaxLayer는 ParallaxBackground ë…¸ë“œì˜ ìžì‹ë…¸ë“œë¡œ ìžˆì„ ë•Œë§Œ ë™ìž‘합니다." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9516,6 +9564,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "ë©”ì‹œë“¤ì„ íŒ¨ìŠ¤ë¥¼ 그리ë„ë¡ í• ë‹¹í•˜ì§€ 않았으므로 ë³´ì´ì§€ 않습니다." @@ -9601,7 +9656,7 @@ msgstr "" #: scene/animation/animation_blend_tree.cpp msgid "On BlendTree node '%s', animation not found: '%s'" -msgstr "BlendTree 노드 '%s' ì—ì„œ, ì• ë‹ˆë©”ì´ì…˜ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: '%s'" +msgstr "BlendTree 노드 '%s'ì—ì„œ, ì• ë‹ˆë©”ì´ì…˜ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: '%s'" #: scene/animation/animation_blend_tree.cpp msgid "Animation not found: '%s'" @@ -9609,7 +9664,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: '%s'" #: scene/animation/animation_tree.cpp msgid "In node '%s', invalid animation: '%s'." -msgstr "노드 '%s' ì—ì„œ, ìœ íš¨í•˜ì§€ ì•Šì€ ì• ë‹ˆë©”ì´ì…˜: '%s'." +msgstr "노드 '%s'ì—ì„œ, ìœ íš¨í•˜ì§€ ì•Šì€ ì• ë‹ˆë©”ì´ì…˜: '%s'." #: scene/animation/animation_tree.cpp msgid "Invalid animation: '%s'." @@ -9617,7 +9672,7 @@ msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ì• ë‹ˆë©”ì´ì…˜: '%s'." #: scene/animation/animation_tree.cpp msgid "Nothing connected to input '%s' of node '%s'." -msgstr "노드 '%s' ì˜ '%s' ìž…ë ¥ì— ì•„ë¬´ê²ƒë„ ì—°ê²°ë˜ì§€ ì•ŠìŒ." +msgstr "노드 '%s'ì˜ '%s' ìž…ë ¥ì— ì•„ë¬´ê²ƒë„ ì—°ê²°ë˜ì§€ ì•ŠìŒ." #: scene/animation/animation_tree.cpp msgid "A root AnimationNode for the graph is not set." @@ -9644,10 +9699,18 @@ msgstr "" "ì´ ë…¸ë“œëŠ” ë” ì´ìƒ ì‚¬ìš©í• ìˆ˜ 없습니다. AnimationTree를 사용하시길 ë°”ëžë‹ˆë‹¤." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw 모드" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "현재 색ìƒì„ 프리셋으로 추가" @@ -9708,7 +9771,7 @@ msgstr "" #: scene/resources/dynamic_font.cpp msgid "Error initializing FreeType." -msgstr "FreeType 초기화 ì—러." +msgstr "FreeType 초기화 오류." #: scene/resources/dynamic_font.cpp msgid "Unknown font format." @@ -9716,7 +9779,7 @@ msgstr "ì•Œ 수 없는 í°íŠ¸ 형ì‹." #: scene/resources/dynamic_font.cpp msgid "Error loading font." -msgstr "í°íŠ¸ 로딩 ì—러." +msgstr "í°íŠ¸ 로딩 오류." #: scene/resources/dynamic_font.cpp msgid "Invalid font size." @@ -9742,6 +9805,18 @@ msgstr "ê· ì¼í•˜ê²Œ 배치함." msgid "Varyings can only be assigned in vertex function." msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다." +#~ msgid "Warnings:" +#~ msgstr "ê²½ê³ :" + +#~ msgid "Font Size:" +#~ msgstr "í°íŠ¸ í¬ê¸°:" + +#~ msgid "Line:" +#~ msgstr "ë¼ì¸:" + +#~ msgid "Col:" +#~ msgstr "칼럼:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "OrientedPathFollow는 Path ë…¸ë“œì˜ ìžì‹ìœ¼ë¡œ ìžˆì„ ë•Œë§Œ ë™ìž‘합니다." diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 72c804b3d3..8b380692a7 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -547,22 +547,14 @@ msgstr "Nutolinti" msgid "Reset Zoom" msgstr "Atstatyti PriartinimÄ…" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linija:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Stulpelis:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "Metodas pasirinktame Node turi bÅ«ti nurodytas!" @@ -861,8 +853,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4216,6 +4208,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6215,7 +6217,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6293,8 +6295,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Animacija" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animacija" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6305,8 +6313,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Animacija" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7107,6 +7116,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8595,10 +8617,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9232,6 +9250,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9389,6 +9414,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9503,10 +9535,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9591,6 +9631,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "Linija:" + +#~ msgid "Col:" +#~ msgstr "Stulpelis:" + #, fuzzy #~ msgid "Remove Split" #~ msgstr "Panaikinti pasirinkimÄ…" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 6c87d52153..47564302e4 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -543,22 +543,14 @@ msgstr "AttÄlinÄt" msgid "Reset Zoom" msgstr "AtiestatÄ«t tÄlummaiņu" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Rinda:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Kolona:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "" @@ -857,8 +849,8 @@ msgstr "IzdzÄ“st izvÄ“lÄ“tos failus?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "IzdzÄ“st" @@ -4199,6 +4191,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6197,7 +6199,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6274,8 +6276,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Funkcijas:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "OptimizÄ“t animÄciju" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6286,8 +6294,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "AnimÄcijas Ä«paÅ¡Ä«bas." #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7080,6 +7089,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8563,10 +8585,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9198,6 +9216,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9353,6 +9378,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9465,10 +9497,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Pievienot paÅ¡reizÄ“jo krÄsu kÄ iepriekÅ¡noteiktu krÄsu" @@ -9553,6 +9593,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "Rinda:" + +#~ msgid "Col:" +#~ msgstr "Kolona:" + #, fuzzy #~ msgid "Remove Split" #~ msgstr "Noņemt IzvÄ“lÄ“to" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 8487b78616..29fc0b10d2 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -532,20 +532,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -839,8 +831,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4142,6 +4134,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6118,7 +6120,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6194,7 +6196,11 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6206,7 +6212,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6982,6 +6988,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8458,10 +8477,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9087,6 +9102,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9242,6 +9264,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9351,10 +9380,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index d384ae1e44..7e95e3e179 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -541,20 +541,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -848,8 +840,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4153,6 +4145,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6129,7 +6131,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6205,7 +6207,12 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "Set Peralihan ke:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6217,7 +6224,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6998,6 +7005,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8478,10 +8498,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9107,6 +9123,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9262,6 +9285,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9371,10 +9401,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 933d2f0ed9..8d2071bc78 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -5,7 +5,7 @@ # Allan Nordhøy <epost@anotheragency.no>, 2017-2018. # Anonymous <GentleSaucepan@protonmail.com>, 2017. # Elias <eliasnykrem@gmail.com>, 2018. -# flesk <eivindkn@gmail.com>, 2017. +# flesk <eivindkn@gmail.com>, 2017, 2019. # Frank T. Rambol <frank@d-fect.com>, 2018. # Jørgen Aarmo Lund <jorgen.aarmo@gmail.com>, 2016. # NicolaiF <nico-fre@hotmail.com>, 2017-2018. @@ -16,8 +16,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:41+0100\n" -"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" +"PO-Revision-Date: 2019-02-10 12:01+0000\n" +"Last-Translator: flesk <eivindkn@gmail.com>\n" "Language-Team: Norwegian BokmÃ¥l <https://hosted.weblate.org/projects/godot-" "engine/godot/nb_NO/>\n" "Language: nb\n" @@ -25,7 +25,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: Poedit 2.2\n" +"X-Generator: Weblate 3.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -126,24 +126,29 @@ msgid "Anim Change Call" msgstr "Anim Forandre Kall" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Property Track" -msgstr "" +msgstr "Egenskapsspor" #: editor/animation_track_editor.cpp +#, fuzzy msgid "3D Transform Track" -msgstr "" +msgstr "3D transformasjonsspor" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Call Method Track" -msgstr "" +msgstr "Kall metode-spor" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Bezier Curve Track" -msgstr "" +msgstr "Bezier-kurvespor" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Audio Playback Track" -msgstr "" +msgstr "Lydavspillingsspor" #: editor/animation_track_editor.cpp #, fuzzy @@ -172,11 +177,12 @@ msgstr "Funksjoner:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "" +msgstr "Lydklipp:" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Anim Clips:" -msgstr "" +msgstr "Anim-klipp:" #: editor/animation_track_editor.cpp #, fuzzy @@ -185,7 +191,7 @@ msgstr "Vis/skjul distraksjonsfri modus." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "" +msgstr "Oppdateringsmodus (Hvordan denne egenskapen settes)" #: editor/animation_track_editor.cpp #, fuzzy @@ -225,7 +231,7 @@ msgstr "Framtid" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "Nærmeste" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp @@ -301,8 +307,9 @@ msgid "Anim Insert Key" msgstr "Anim Sett Inn Nøkkel" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Transform tracks only apply to Spatial-based nodes." -msgstr "" +msgstr "Transformasjonsspor kan kun brukes pÃ¥ Spatial-baserte noder." #: editor/animation_track_editor.cpp msgid "" @@ -311,34 +318,43 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" +"Lydspor kan kun peke pÃ¥ noder av type:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "" +msgstr "Animasjonsspor kan kun peke pÃ¥ AnimationPlayer-noder." #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." msgstr "" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "Ikke mulig Ã¥ legge til et nytt spor uten en rot" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Track path is invalid, so can't add a key." -msgstr "" +msgstr "Sporsti er ugyldig, sÃ¥ kan ikke legge til en nøkkel." #: editor/animation_track_editor.cpp +#, fuzzy msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "Spor er ikke av type Spatial, kan ikke legge til nøkkel" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Track path is invalid, so can't add a method key." -msgstr "" +msgstr "Sporsti er ugyldig, sÃ¥ kan ikke legge til metodenøkkel." #: editor/animation_track_editor.cpp msgid "Method not found in object: " -msgstr "" +msgstr "Metode ikke funnet i objekt: " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -354,17 +370,20 @@ msgid "Anim Scale Keys" msgstr "Anim Skalér Nøkler" #: editor/animation_track_editor.cpp +#, fuzzy msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "" +"Dette valget virker ikke pÃ¥ Bezier-redigering, siden det kun er ett enkelt " +"spor." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." -msgstr "" +msgstr "Vis kun spor fra noder valgt i treet." #: editor/animation_track_editor.cpp msgid "Group tracks by node or display them as plain list." -msgstr "" +msgstr "Grupper spor etter node eller vis dem i en enkel liste." #: editor/animation_track_editor.cpp #, fuzzy @@ -441,11 +460,11 @@ msgstr "Rydd-Opp-Animasjon" #: editor/animation_track_editor.cpp msgid "Pick the node that will be animated:" -msgstr "" +msgstr "Velg noden som skal animeres:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "Bruk Bezier-kurver" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -493,7 +512,7 @@ msgstr "Skaler Størrelsesforhold:" #: editor/animation_track_editor.cpp msgid "Select tracks to copy:" -msgstr "" +msgstr "Velg spor Ã¥ kopiere:" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -567,22 +586,13 @@ msgstr "Zoom Ut" msgid "Reset Zoom" msgstr "Nullstill Zoom" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Frontvisning" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linje:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Kol:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -701,6 +711,7 @@ msgstr "Signaler" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" msgstr "" +"Er du sikker pÃ¥ at du ønsker Ã¥ fjerne alle koblinger fra dette signalet?" #: editor/connections_dialog.cpp #, fuzzy @@ -892,8 +903,8 @@ msgstr "Slett valgte filer?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Slett" @@ -1320,8 +1331,9 @@ msgid "Storing File:" msgstr "Lagrer Fil:" #: editor/editor_export.cpp +#, fuzzy msgid "No export template found at the expected path:" -msgstr "" +msgstr "Ingen eksportmal funnet pÃ¥ forventet søkesti:" #: editor/editor_export.cpp msgid "Packing" @@ -1337,8 +1349,9 @@ msgstr "Malfil ble ikke funnet:" #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp +#, fuzzy msgid "Custom release template not found." -msgstr "" +msgstr "Tilpasset utgivelsesmal ikke funnet." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" @@ -1506,7 +1519,7 @@ msgstr "Egenskaper" #: editor/editor_help.cpp msgid "Properties:" -msgstr "" +msgstr "Egenskaper:" #: editor/editor_help.cpp msgid "Methods" @@ -1663,15 +1676,16 @@ msgstr "Klasse:" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" -msgstr "" +msgstr "Egenskap:" #: editor/editor_inspector.cpp msgid "Set" msgstr "Sett" #: editor/editor_inspector.cpp +#, fuzzy msgid "Set Multiple:" -msgstr "" +msgstr "Sett Mange:" #: editor/editor_log.cpp msgid "Output:" @@ -1702,7 +1716,7 @@ msgstr "Feil ved lagring av ressurs!" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp msgid "OK" -msgstr "" +msgstr "OK" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -1722,7 +1736,7 @@ msgstr "Feil under lagring." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." -msgstr "" +msgstr "Kan ikke Ã¥pne '%s'. Filen kan ha blitt flyttet eller slettet." #: editor/editor_node.cpp msgid "Error while parsing '%s'." @@ -1757,10 +1771,14 @@ msgid "This operation can't be done without a tree root." msgstr "Denne operasjonen kan ikke gjennomføres uten en trerot." #: editor/editor_node.cpp +#, fuzzy msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"Denne scenen kan ikke lagres fordi det er en sirkulær " +"instansieringsinklusjon.\n" +"Vennligst løs feilen og forsøk Ã¥ lagre igjen." #: editor/editor_node.cpp msgid "" @@ -1772,7 +1790,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Kan ikke overskrive en scene som fortsatt er Ã¥pen!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -2446,8 +2464,9 @@ msgid "Play Custom Scene" msgstr "Spill av Tilpasset Scene" #: editor/editor_node.cpp +#, fuzzy msgid "Changing the video driver requires restarting the editor." -msgstr "" +msgstr "Endring av videodriver krever omstart av redigeringsverktøyet." #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp @@ -2659,23 +2678,23 @@ msgstr "Ring" #: editor/editor_properties.cpp msgid "On" -msgstr "" +msgstr "PÃ¥" #: editor/editor_properties.cpp msgid "Layer" -msgstr "" +msgstr "Lag" #: editor/editor_properties.cpp msgid "Bit %d, value %d" -msgstr "" +msgstr "Bit %d, verdi %d" #: editor/editor_properties.cpp msgid "[Empty]" -msgstr "" +msgstr "[Tom]" #: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp msgid "Assign..." -msgstr "" +msgstr "Tilordne..." #: editor/editor_properties.cpp #, fuzzy @@ -2683,16 +2702,22 @@ msgid "Invalid RID" msgstr ": Ugyldige argumenter: " #: editor/editor_properties.cpp +#, fuzzy msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." msgstr "" +"Den valgte ressursen (%s) svarer ikke til noen forventede verdier for denne " +"egenskapen (%s)." #: editor/editor_properties.cpp +#, fuzzy msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Kan ikke opprette en ViewportTexture pÃ¥ ressurser lagret som fil.\n" +"Ressurser mÃ¥ tilhøre en scene." #: editor/editor_properties.cpp msgid "" @@ -4448,6 +4473,16 @@ msgid "Move CanvasItem" msgstr "Endre CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Kun anker" @@ -4640,7 +4675,7 @@ msgstr "Fjern Ben" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "View" -msgstr "Vis" +msgstr "Visning" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -6521,7 +6556,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6601,10 +6636,16 @@ msgid "(empty)" msgstr "(tom)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animasjoner" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animasjon" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Hastighet (FPS):" @@ -6613,8 +6654,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Animasjonsnavn:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7443,6 +7485,19 @@ msgstr "Er du sikker pÃ¥ at du vil Ã¥pne mer enn ett prosjekt?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8977,10 +9032,6 @@ msgid "Build Project" msgstr "Prosjekt" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Vis Filer" @@ -9637,6 +9688,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9792,6 +9850,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9906,10 +9971,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9995,6 +10068,19 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "Advarsler:" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Frontvisning" + +#~ msgid "Line:" +#~ msgstr "Linje:" + +#~ msgid "Col:" +#~ msgstr "Kol:" + #, fuzzy #~ msgid "Split already exists." #~ msgstr "Eksisterer allerede" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 19ef09b17b..39cb255635 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -572,21 +572,13 @@ msgstr "Uitzoomen" msgid "Reset Zoom" msgstr "Initialiseer Zoom" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Waarschuwingen:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Lettertypegrootte:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Regel:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Kolom:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -895,8 +887,8 @@ msgstr "Verwijder geselecteerde bestanden?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Verwijder" @@ -4348,6 +4340,19 @@ msgid "Move CanvasItem" msgstr "Verplaats CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Waarschuwing: De positie en grootte van de kinderen van een houder worden " +"alleen door hun ouder bepaald." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Alleen Ankers" @@ -6418,7 +6423,7 @@ msgid "Post" msgstr "Post" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6500,10 +6505,16 @@ msgid "(empty)" msgstr "(leeg)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animaties" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animatie" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Snelheid (FPS):" @@ -6512,7 +6523,8 @@ msgid "Loop" msgstr "Lus" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Animatie Frames" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7341,6 +7353,19 @@ msgstr "Weet je zeker dat je meer dan één project wilt openen?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8881,10 +8906,6 @@ msgid "Build Project" msgstr "Project" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Bekijk Bestanden" @@ -9591,6 +9612,13 @@ msgstr "" "ParallaxLayer node werkt alleen wanneer het een kind is van een " "ParallaxBackground node." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9761,6 +9789,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9882,10 +9917,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw-modus" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Huidige kleur als een preset toevoegen" @@ -9979,6 +10022,18 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Warnings:" +#~ msgstr "Waarschuwingen:" + +#~ msgid "Font Size:" +#~ msgstr "Lettertypegrootte:" + +#~ msgid "Line:" +#~ msgstr "Regel:" + +#~ msgid "Col:" +#~ msgstr "Kolom:" + #, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index f4fa56512e..5e8902e5a8 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -29,11 +29,12 @@ # Dariusz Siek <dariuszynski@gmail.com>, 2018. # Szymon Nowakowski <smnbdg13@gmail.com>, 2019. # Nie Powiem <blazek10@tlen.pl>, 2019. +# Sebastian Hojka <sibibibi1@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-19 19:22+0000\n" +"PO-Revision-Date: 2019-02-06 01:09+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" @@ -43,7 +44,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 3.4-dev\n" +"X-Generator: Weblate 3.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -568,21 +569,13 @@ msgstr "Oddal" msgid "Reset Zoom" msgstr "Wyzeruj przybliżenie" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Ostrzeżenia:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Rozmiar czcionki:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linia:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Ostrzeżenia" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Kolumna:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -883,8 +876,8 @@ msgstr "Usunąć zaznaczone pliki?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "UsuÅ„" @@ -1039,7 +1032,6 @@ msgid "Toggle Audio Bus Bypass Effects" msgstr "PrzeÅ‚Ä…cz ominiÄ™cie efektów w magistrali audio" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Select Audio Bus Send" msgstr "Wybierz szynÄ™ wysyÅ‚ki audio" @@ -1308,7 +1300,7 @@ msgstr "Zapisywanie pliku:" #: editor/editor_export.cpp msgid "No export template found at the expected path:" -msgstr "" +msgstr "Nie znaleziono szablonu eksportu w przewidywanej lokalizacji:" #: editor/editor_export.cpp msgid "Packing" @@ -1317,15 +1309,14 @@ msgstr "Pakowanie" #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp -#, fuzzy msgid "Custom debug template not found." -msgstr "Nie znaleziono pliku szablonu:" +msgstr "Nie znaleziono wÅ‚asnego szablonu debugowania." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp #: platform/osx/export/export.cpp platform/uwp/export/export.cpp msgid "Custom release template not found." -msgstr "" +msgstr "Nie znaleziono wÅ‚asnego szablonu wydania." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" @@ -1727,6 +1718,8 @@ msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"Ta scena nie może zostać zapisana, ponieważ istnieje cykliczna inkluzja.\n" +"Rozwiąż to i spróbuj zapisać ponownie." #: editor/editor_node.cpp msgid "" @@ -2618,15 +2611,16 @@ msgid "Assign..." msgstr "Przypisz..." #: editor/editor_properties.cpp -#, fuzzy msgid "Invalid RID" -msgstr "NieprawidÅ‚owa Å›cieżka" +msgstr "NieprawidÅ‚owy RID" #: editor/editor_properties.cpp msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." msgstr "" +"Wybrany zasób (%s) nie zgadza siÄ™ z żadnym rodzajem przewidywanym dla tego " +"użycia (%s)." #: editor/editor_properties.cpp msgid "" @@ -3197,7 +3191,6 @@ msgid "Group name already exists." msgstr "Nazwa grupy już istnieje." #: editor/groups_editor.cpp -#, fuzzy msgid "Invalid group name." msgstr "NiewÅ‚aÅ›ciwa nazwa grupy." @@ -3334,17 +3327,18 @@ msgstr "Importuj ponownie" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Zapisz sceny, re-importuj i zrestartuj" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Zmiana sterownika grafiki wymaga restartu edytora." +msgstr "Zmiana rodzaju importowanego pliku wymaga restartu edytora." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"OSTRZEÅ»ENIE: Istnieje zawartość używajÄ…ca tego zasobu, która może przestać " +"dziaÅ‚ać prawidÅ‚owo." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -3469,7 +3463,6 @@ msgid "Create Polygon" msgstr "Utwórz wielokÄ…t" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon" msgstr "Edytuj wielokÄ…t" @@ -3478,12 +3471,10 @@ msgid "Insert Point" msgstr "Wstaw punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon (Remove Point)" -msgstr "Edytuj wielokÄ…t (usuÅ„ punkty)" +msgstr "Edytuj wielokÄ…t (usuÅ„ punkt)" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Remove Polygon And Point" msgstr "UsuÅ„Â wielokÄ…t i punkt" @@ -3494,7 +3485,6 @@ msgid "Create points." msgstr "Utwórz punkty." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "" "Edit points.\n" "LMB: Move Point\n" @@ -4316,6 +4306,16 @@ msgid "Move CanvasItem" msgstr "PrzesuÅ„ CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Tylko zakotwiczenia" @@ -6336,7 +6336,7 @@ msgid "Post" msgstr "Po" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6413,7 +6413,13 @@ msgid "(empty)" msgstr "(pusty)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "Animacje" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" msgstr "Animacje" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6425,7 +6431,8 @@ msgid "Loop" msgstr "PÄ™tla" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Klatki animacji" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7244,6 +7251,19 @@ msgstr "Czy jesteÅ› pewny że chcesz otworzyć wiÄ™cej niż jeden projekt?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8764,10 +8784,6 @@ msgid "Build Project" msgstr "Zbuduj projekt" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Ostrzeżenia" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Pokaż logi" @@ -9450,6 +9466,13 @@ msgstr "" "WÄ™zeÅ‚ typu ParallaxLayer zadziaÅ‚a, jeÅ›li bÄ™dzie dzieckiem wÄ™zÅ‚a " "ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9643,6 +9666,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Nic nie jest widoczne, bo siatki nie zostaÅ‚y przypisane do kolejki rysowania." @@ -9771,6 +9801,10 @@ msgstr "KorzeÅ„ AnimationPlayer nie jest poprawnym wÄ™zÅ‚em." #: scene/animation/animation_tree_player.cpp msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "Ten wÄ™zeÅ‚ jest przestarzaÅ‚y. Zamiast tego użyj AnimationTree." + +#: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." msgstr "" #: scene/gui/color_picker.cpp @@ -9778,6 +9812,10 @@ msgid "Raw Mode" msgstr "Trybie RAW" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Dodaj bieżący kolor jako domyÅ›lne" @@ -9874,6 +9912,18 @@ msgstr "Przypisanie do uniformu." msgid "Varyings can only be assigned in vertex function." msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." +#~ msgid "Warnings:" +#~ msgstr "Ostrzeżenia:" + +#~ msgid "Font Size:" +#~ msgstr "Rozmiar czcionki:" + +#~ msgid "Line:" +#~ msgstr "Linia:" + +#~ msgid "Col:" +#~ msgstr "Kolumna:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "OrientedPathFollow dziaÅ‚a tylko, gdy jest wÄ™zÅ‚em podrzÄ™dnym Path." diff --git a/editor/translations/pr.po b/editor/translations/pr.po index e8240ad087..f2dbc422df 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -552,20 +552,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -863,8 +855,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4230,6 +4222,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6243,7 +6245,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6319,7 +6321,12 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "Yer functions:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6331,8 +6338,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Yer unique name be evil." #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7141,6 +7149,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8646,10 +8667,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9310,6 +9327,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9465,6 +9489,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9575,10 +9606,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index be32fed935..92aef90e91 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -34,7 +34,7 @@ # Bruno Miranda Da Silva <brunofreezee@gmail.com>, 2018. # Marcos Roberto Rodrigues Marques <contato.mroberto@gmail.com>, 2018. # Dyefferson Azevedo <gamecanalbrasil@gmail.com>, 2018. -# LucasSouza6 <lucasosouza66@gmail.com>, 2018. +# LucasSouza6 <lucasosouza66@gmail.com>, 2018, 2019. # Pedro Pacheco <pedroxixipa@hotmail.com>, 2018, 2019. # Bruno Henrique <nimbusdroid@gmail.com>, 2018, 2019. # Luciano Scilletta <lucianoscilletta@gmail.com>, 2018. @@ -48,12 +48,15 @@ # joel silva <joelgbsilva@gmail.com>, 2019. # Heitor Novais Pereira <heitornovais394@outlook.com>, 2019. # Joel Landgraf Filho <joel.landgraf@gmail.com>, 2019. +# Alan Valmorbida <alanvalmorbida@gmail.com>, 2019. +# João Vitor Ferreira Cavalcante <jvfecav@gmail.com>, 2019. +# Thiago Amendola <amendolathiago@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" -"Last-Translator: Eduardo Abreu <eduo.abreu@gmail.com>\n" +"PO-Revision-Date: 2019-02-10 12:01+0000\n" +"Last-Translator: Alan Valmorbida <alanvalmorbida@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -585,21 +588,13 @@ msgstr "Reduzir" msgid "Reset Zoom" msgstr "Redefinir Ampliação" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Avisos:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Tamanho da Fonte:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linha:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Avisos" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Coluna:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -901,8 +896,8 @@ msgstr "Excluir arquivos selecionados?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Excluir" @@ -3359,17 +3354,19 @@ msgstr "Reimportar" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Salvar cenas, reimportar e reiniciar" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Mudar o driver de vÃdeo necessita reinicializar o editor." +msgstr "" +"Mudar o tipo de um arquivo importado necessita a reinicialização do editor." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"AVISO: Existem objetos que utilizam esse recurso, eles podem parar de " +"carregar apropriadamente." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -3572,7 +3569,7 @@ msgstr "Definir posição de mescla dentro do espaço" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Select and move points, create points with RMB." -msgstr "Selecione e mova pontos, crie pontos com o Botão Direito do Mouse." +msgstr "Selecionar e mover pontos, criar pontos com o botão direito do mouse." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp @@ -4336,6 +4333,19 @@ msgid "Move CanvasItem" msgstr "Mover CanvaItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Aviso: Filhos de um container tem sua posição e tamanho determinados apenas " +"pelo pai." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Apenas âncoras" @@ -6334,7 +6344,8 @@ msgid "Post" msgstr "Pós" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "Gaveta sem nome" #: editor/plugins/sprite_editor_plugin.cpp @@ -6411,10 +6422,16 @@ msgid "(empty)" msgstr "(vazio)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animações" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animação" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Velocidade (FPS):" @@ -6423,7 +6440,8 @@ msgid "Loop" msgstr "Repetir" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Quadros da Animação" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6909,7 +6927,7 @@ msgstr "Fragmento" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Light" -msgstr "Leve" +msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" @@ -7178,11 +7196,11 @@ msgstr "Navegar" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderizador:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7191,10 +7209,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Maior qualidade visual\n" +"Todas as funções disponÃveis\n" +"IncompatÃvel com hardware antigo\n" +"Não recomendado para jogos web" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7203,10 +7225,16 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Menor qualidade visual\n" +"Algumas funções não disponÃveis\n" +"Funciona na maioria dos hardwares\n" +"Recomendado para jogos web" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"Renderizador pode ser alterado posteriormente, porém, cenas poderão " +"necessitar de ajustes." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7221,6 +7249,28 @@ msgid "Are you sure to open more than one project?" msgstr "Tem certeza de que quer abrir mais de um projeto?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"O seguinte arquivo de configurações do projeto foi gerado por uma versão " +"mais antiga do mecanismo e precisa ser convertido para esta versão:\n" +"\n" +"%s\n" +"\n" +"Você deseja realizar a conversão?\n" +"Aviso: você não poderá mais abrir o projeto com versões anteriores do " +"mecanismo." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7932,11 +7982,13 @@ msgid "Duplicate Node(s)" msgstr "Duplicar Nó(s)" #: editor/scene_tree_dock.cpp +#, fuzzy msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"Não é possÃvel re-hierarquizar nós em cenas herdadas, a ordem dos nós não " +"pode ser alterada." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Node must belong to the edited scene to become root." msgstr "Node necessita pertencer à cena editada para se tornar raiz." @@ -8751,10 +8803,6 @@ msgid "Build Project" msgstr "Compilar Projeto" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Avisos" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Ver registro" @@ -9157,12 +9205,10 @@ msgid "Set %s" msgstr "Conjunto %s" #: platform/android/export/export.cpp -#, fuzzy msgid "Package name is missing." msgstr "Nome do pacote está faltando." #: platform/android/export/export.cpp -#, fuzzy msgid "Package segments must be of non-zero length." msgstr "Seguimentos de pacote necessitam ser de tamanho diferente de zero." @@ -9179,70 +9225,76 @@ msgstr "" #: platform/android/export/export.cpp msgid "The character '%s' cannot be the first character in a package segment." msgstr "" +"O caractere '%s' não pode ser o primeiro caractere em um segmento de pacote." #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." -msgstr "" +msgstr "O pacote deve ter pelo menos um separador '.'." #: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." -msgstr "" +msgstr "Executável ADB não configurado nas opções do Editor." #: platform/android/export/export.cpp msgid "OpenJDK jarsigner not configured in the Editor Settings." -msgstr "" +msgstr "OpenJDK jarsigner não configurado nas opções do Editor." #: platform/android/export/export.cpp msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +#, fuzzy msgid "Invalid public key for APK expansion." -msgstr "" +msgstr "Chave pública inválida para expansão de APK." #: platform/android/export/export.cpp #, fuzzy msgid "Invalid package name:" -msgstr "Nome de classe inválido" +msgstr "Nome de pacote inválido:" #: platform/iphone/export/export.cpp msgid "Identifier is missing." -msgstr "" +msgstr "Identificador está ausente." #: platform/iphone/export/export.cpp +#, fuzzy msgid "Identifier segments must be of non-zero length." -msgstr "" +msgstr "O identificador deve ter comprimento diferente de zero." #: platform/iphone/export/export.cpp -#, fuzzy msgid "The character '%s' is not allowed in Identifier." -msgstr "O nome não é um identificador valido:" +msgstr "O caractere '%s' não é permitido no identificador." #: platform/iphone/export/export.cpp +#, fuzzy msgid "A digit cannot be the first character in a Identifier segment." -msgstr "" +msgstr "Um digito não pode ser o primeiro caractere de um identificador." #: platform/iphone/export/export.cpp +#, fuzzy msgid "" "The character '%s' cannot be the first character in a Identifier segment." msgstr "" +"O caractere '%s' não pode ser o primeiro caractere de um identificador." #: platform/iphone/export/export.cpp msgid "The Identifier must have at least one '.' separator." -msgstr "" +msgstr "O identificador deve ter pelo menos um separador '.'." #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." msgstr "" +"App Store Team ID não especificado - não é possÃvel configurar o projeto." #: platform/iphone/export/export.cpp -#, fuzzy msgid "Invalid Identifier:" -msgstr "O nome não é um identificador valido:" +msgstr "O nome não é um identificador válido:" #: platform/iphone/export/export.cpp +#, fuzzy msgid "Required icon is not specified in the preset." -msgstr "" +msgstr "Ãcone necessário não especificado na predefinição." #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9277,43 +9329,46 @@ msgid "Using default boot splash image." msgstr "Usando imagem boot splash padrão." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid package unique name." -msgstr "Nome único inválido." +msgstr "Nome único de pacote inválido." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid product GUID." -msgstr "Tamanho de fonte inválido." +msgstr "GUID de produto inválido." #: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid publisher GUID." -msgstr "Caminho base inválido" +msgstr "GUID do editor inválido." #: platform/uwp/export/export.cpp msgid "Invalid background color." msgstr "Cor de fundo inválida." #: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid Store Logo image dimensions (should be 50x50)." -msgstr "" +msgstr "Dimensões inválidas do logo da loja (deve ser 50x50)." #: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "" +msgstr "Dimensões inválidas do logo quadrado de 44x44 (deve ser 44x44)." #: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "" +msgstr "Dimensões inválidas do logo quadrado de 71x71 (deve ser 71x71)." #: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "" +msgstr "Dimensões inválidas do logo quadrado de 150x150 (deve ser 150x150)." #: platform/uwp/export/export.cpp +#, fuzzy msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "" +msgstr "Dimensões inválidas do logo quadrado de 310x310 (deve ser 310x310)." #: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." @@ -9433,6 +9488,13 @@ msgstr "" "O nó ParallaxLayer apenas funciona quando definido como filho de um nó " "ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9624,6 +9686,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Nada está visÃvel porque as meshes não foram atribuÃdas a passes de desenho." @@ -9756,10 +9825,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Este nó foi reprovado. Use AnimationTree em vez disso." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Bruto" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Adicionar cor atual como uma predefinição" @@ -9855,6 +9932,18 @@ msgstr "Atribuição à uniforme." msgid "Varyings can only be assigned in vertex function." msgstr "Variáveis só podem ser atribuÃdas na função de vértice." +#~ msgid "Warnings:" +#~ msgstr "Avisos:" + +#~ msgid "Font Size:" +#~ msgstr "Tamanho da Fonte:" + +#~ msgid "Line:" +#~ msgstr "Linha:" + +#~ msgid "Col:" +#~ msgstr "Coluna:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "OrientedPathFollow só funciona quando definido como filho de um nó Path." diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index c3e9b189c2..2cce74bd57 100644 --- a/editor/translations/pt_PT.po +++ b/editor/translations/pt_PT.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" -"Last-Translator: ssantos <ssantos@web.de>\n" +"PO-Revision-Date: 2019-02-01 12:09+0000\n" +"Last-Translator: João Lopes <linux-man@hotmail.com>\n" "Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_PT/>\n" "Language: pt_PT\n" @@ -554,21 +554,13 @@ msgstr "Zoom Out" msgid "Reset Zoom" msgstr "Repor Zoom" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "Avisos:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Tamanho do tipo de letra:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linha:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "Avisos" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Coluna:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -870,8 +862,8 @@ msgstr "Apagar arquivos selecionados?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Apagar" @@ -3327,17 +3319,18 @@ msgstr "Reimportar" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Guardar cenas, reimportar e reiniciar" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Alterar o driver de vÃdeo requer reiniciar o editor." +msgstr "Alterar o tipo de um ficheiro importado requer reiniciar o editor." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"AVISO: Existem Ativos que usam este recurso, podendo não ser carregados " +"corretamente." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4297,6 +4290,19 @@ msgid "Move CanvasItem" msgstr "Mover CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden 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." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Só âncoras" @@ -6291,7 +6297,8 @@ msgid "Post" msgstr "Pós" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "Bugiganga sem nome" #: editor/plugins/sprite_editor_plugin.cpp @@ -6367,10 +6374,16 @@ msgid "(empty)" msgstr "(vazio)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animações" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animação" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Velocidade (FPS):" @@ -6379,7 +6392,8 @@ msgid "Loop" msgstr "Ciclo" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Frames da Animação" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7134,11 +7148,11 @@ msgstr "Navegar" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderizador:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7147,10 +7161,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Qualidade visual superior\n" +"Todas as caracterÃsticas disponÃveis\n" +"IncompatÃvel com hardware antigo\n" +"Não recomendado para jogos Web" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7159,10 +7177,16 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Qualidade visual inferior\n" +"Algumas caracterÃsticas indisponÃveis\n" +"Funciona na maioria do hardware\n" +"Recomendado para jogos Web" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"O Renderizador pode ser alterado mais tarde, mas as cenas poderão ter de ser " +"ajustadas." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7177,6 +7201,28 @@ msgid "Are you sure to open more than one project?" msgstr "Está seguro que quer abrir mais do que um Projeto?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"A seguinte configuração do projeto foi gerada por um motor mais antigo, e " +"precisa de ser convertida para esta versão.\n" +"\n" +"%s\n" +"\n" +"Deseja convertê-la?\n" +"Aviso: Não conseguirá mais abrir o projeto em versões anteriores à deste " +"motor." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7888,7 +7934,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 "" +msgstr "ImpossÃvel mudar nó 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." @@ -8705,10 +8751,6 @@ msgid "Build Project" msgstr "Construir Projeto" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Avisos" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Ver log" @@ -9119,16 +9161,15 @@ msgstr "Os segmentos de pacote devem ser de comprimento diferente de zero." #: platform/android/export/export.cpp msgid "The character '%s' is not allowed in Android application package names." msgstr "" -"O caractere '%s' não é permitido em nomes de pacotes de aplicativos Android." +"O caráter '%s' não é permitido em nomes de pacotes de aplicações Android." #: platform/android/export/export.cpp msgid "A digit cannot be the first character in a package segment." -msgstr "Um dÃgito não pode ser o primeiro caractere num segmento de pacote." +msgstr "Um dÃgito não pode ser o primeiro caráter num segmento de pacote." #: platform/android/export/export.cpp msgid "The character '%s' cannot be the first character in a package segment." -msgstr "" -"O caractere '%s' não pode ser o primeiro caractere num segmento de pacote." +msgstr "O caráter '%s' não pode ser o primeiro caráter num segmento de pacote." #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." @@ -9166,18 +9207,18 @@ msgstr "Identificador de segmentos devem ser de comprimento diferente de zero." #: platform/iphone/export/export.cpp msgid "The character '%s' is not allowed in Identifier." -msgstr "O caractere \"%s\" não é permitido no Identificador." +msgstr "O caráter \"%s\" não é permitido no Identificador." #: platform/iphone/export/export.cpp msgid "A digit cannot be the first character in a Identifier segment." msgstr "" -"Um dÃgito não pode ser o primeiro caractere em um segmento de Identificador." +"Um dÃgito não pode ser o primeiro caráter num segmento de Identificador." #: platform/iphone/export/export.cpp msgid "" "The character '%s' cannot be the first character in a Identifier segment." msgstr "" -"O caractere \"%s\" não pode ser o primeiro caractere num segmento de " +"O caráter \"%s\" não pode ser o primeiro caráter num segmento de " "Identificador." #: platform/iphone/export/export.cpp @@ -9390,6 +9431,13 @@ msgstr "" "O Nó ParallaxLayer só funciona quando definido como filho de um Nó " "ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9579,6 +9627,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +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." @@ -9600,8 +9655,8 @@ msgid "" "PathFollow ROTATION_ORIENTED requires \"Up Vector\" enabled in its parent " "Path's Curve resource." msgstr "" -"PathFollow ROTATION_ORIENTED requer \"Up Vector\" habilitado em seu recurso " -"de Curva do caminho pai." +"PathFollow ROTATION_ORIENTED requer \"Up Vector\" habilitado no recurso de " +"Curva do Caminho do seu pai." #: scene/3d/physics_body.cpp msgid "" @@ -9711,10 +9766,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Este nó foi depreciado. Use AnimationTree em vez disso." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Raw" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Adicionar cor atual como predefinição" @@ -9810,6 +9873,18 @@ msgstr "Atribuição a uniforme." msgid "Varyings can only be assigned in vertex function." msgstr "Variações só podem ser atribuÃdas na função vértice." +#~ msgid "Warnings:" +#~ msgstr "Avisos:" + +#~ msgid "Font Size:" +#~ msgstr "Tamanho do tipo de letra:" + +#~ msgid "Line:" +#~ msgstr "Linha:" + +#~ msgid "Col:" +#~ msgstr "Coluna:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "OrientedPathFollow apenas funciona quando definido como filho de um Nó " diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 88e95546a6..5423dd4352 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -558,22 +558,13 @@ msgstr "Zoom-aÈ›i Afară" msgid "Reset Zoom" msgstr "ResetaÈ›i Zoom-area" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Dimensiunea Conturului:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Linie:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Col:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -883,8 +874,8 @@ msgstr "ÅžtergeÈ›i fiÅŸierele selectate?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "ȘtergeÈ›i" @@ -4401,6 +4392,16 @@ msgid "Move CanvasItem" msgstr "Editează ObiectulPânză" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Doar ancore" @@ -6449,7 +6450,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6529,8 +6530,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "AnimaÈ›ie" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "AnimaÈ›ie" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6541,8 +6548,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Nume AnimaÈ›ie:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7355,6 +7363,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8867,10 +8888,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "Vizualizează fiÈ™iere log" @@ -9506,6 +9523,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9661,6 +9685,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9775,10 +9806,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9864,6 +9903,16 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Dimensiunea Conturului:" + +#~ msgid "Line:" +#~ msgstr "Linie:" + +#~ msgid "Col:" +#~ msgstr "Col:" + +#, fuzzy #~ msgid "Split already exists." #~ msgstr "AutoLoad '%s' există deja!" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 901e7858ce..37dca29385 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -33,12 +33,14 @@ # ÐÑлан Снупов <aslan170505@gmail.com>, 2018. # Alexandr Eremeev <ae125529@gmail.com>, 2019. # Ruaguzov Michael <miha890r@gmail.com>, 2019. +# Alexander Danilov <modos189@protonmail.com>, 2019. +# Sergey Nakhov <true.stalin.exe@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" -"Last-Translator: Ruaguzov Michael <miha890r@gmail.com>\n" +"PO-Revision-Date: 2019-02-04 17:09+0000\n" +"Last-Translator: Sergey Nakhov <true.stalin.exe@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -571,21 +573,13 @@ msgstr "Отдалить" msgid "Reset Zoom" msgstr "СброÑить приближение" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "ПредупреждениÑ:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Размер шрифта:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Строка:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "ПредупреждениÑ" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Стлб:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -886,8 +880,8 @@ msgstr "Удалить выбранные файлы?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Удалить" @@ -3347,14 +3341,15 @@ msgid "Save scenes, re-import and restart" msgstr "" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Ð”Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´ÐµÐ¾Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° необходим перезапуÑк редактора." +msgstr "Изменение типа импортированного файла потребует перезапуÑк редактора." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"Предупреждение: ÑущеÑтвуют объекты, которые иÑпользуют Ñтот реÑурÑ, они " +"могут переÑтать загружатьÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ‹Ð¼ образом." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4316,6 +4311,19 @@ msgid "Move CanvasItem" msgstr "ПеремеÑтить CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Внимание: Положение и размер детей контейнера определÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ их " +"родителÑми." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Только ÑкорÑ" @@ -6311,7 +6319,7 @@ msgstr "ПоÑле" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "БезымÑнный штуковина" #: editor/plugins/sprite_editor_plugin.cpp @@ -6388,10 +6396,16 @@ msgid "(empty)" msgstr "(пуÑто)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Ðнимации" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "ÐнимациÑ" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "СкороÑÑ‚ÑŒ (FPS):" @@ -6400,7 +6414,8 @@ msgid "Loop" msgstr "Зациклить" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Кадры анимации" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7157,7 +7172,7 @@ msgstr "" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7196,6 +7211,27 @@ msgid "Are you sure to open more than one project?" msgstr "Ð’Ñ‹ уверены, что хотите открыть более одного проекта?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"Файл наÑтроек проекта был Ñгенерирован Ñтарой верÑией движка и должен быть " +"преобразован Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ верÑии:\n" +"\n" +"%s\n" +"\n" +"Ð’Ñ‹ хотите преобразовать его?\n" +"Внимание: Ð’Ñ‹ больше не Ñможете открыть проект предыдущими верÑиÑми движка." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -8730,10 +8766,6 @@ msgid "Build Project" msgstr "Собрать проект" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "ПредупреждениÑ" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "ПроÑмотр журнала" @@ -9405,6 +9437,13 @@ msgstr "" "Узел ParallaxLayer работает только при уÑтановке его в качеÑтве дочернего " "узла ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9597,6 +9636,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "Ðичего не видно, потому что полиÑетки не были назначены на отриÑовку." @@ -9725,10 +9771,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "Ðтот узел был удален. ВмеÑто Ñтого иÑпользуйте AnimationTree." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "RAW режим" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Добавить текущий цвет как преÑет" @@ -9829,6 +9883,18 @@ msgstr "Ðазначить форму" msgid "Varyings can only be assigned in vertex function." msgstr "Переменные могут быть назначены только в функции вершин." +#~ msgid "Warnings:" +#~ msgstr "ПредупреждениÑ:" + +#~ msgid "Font Size:" +#~ msgstr "Размер шрифта:" + +#~ msgid "Line:" +#~ msgstr "Строка:" + +#~ msgid "Col:" +#~ msgstr "Стлб:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "OrientedPathFollow работает только еÑли она дочь узла Path." diff --git a/editor/translations/si.po b/editor/translations/si.po index 286cddb867..959b76bf18 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -536,20 +536,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -843,8 +835,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4146,6 +4138,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6123,7 +6125,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6199,8 +6201,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "à·à·Šâ€à¶»à·’à¶:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "සජීවීකරණ පුනරà·à·€à¶»à·Šà¶®à¶±à¶º" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6211,7 +6219,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6990,6 +6998,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8466,10 +8487,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9095,6 +9112,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9250,6 +9274,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9359,10 +9390,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 3ba9f42b94..9af329047c 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -4,12 +4,13 @@ # This file is distributed under the same license as the Godot source code. # J08nY <johnenter@gmail.com>, 2016. # MineGame 159 <minegame459@gmail.com>, 2018. +# Zuzana Palenikova <sousana.is@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:42+0100\n" -"Last-Translator: MineGame 159 <minegame459@gmail.com>\n" +"PO-Revision-Date: 2019-02-01 12:10+0000\n" +"Last-Translator: Zuzana Palenikova <sousana.is@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/" "godot/sk/>\n" "Language: sk\n" @@ -17,7 +18,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: Poedit 2.2\n" +"X-Generator: Weblate 3.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -35,29 +36,29 @@ msgid "Invalid input %i (not passed) in expression" msgstr "" #: core/math/expression.cpp +#, fuzzy msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "self nemožno použiÅ¥ lebo inÅ¡tancia je rovná null (not passed)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "Neplatné operandy pre operátor %s, %s a %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "Neplatný index typu %s pre základný typ %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "Neplatný názov indexu '%s' pre základný typ %s" #: core/math/expression.cpp -#, fuzzy msgid "Invalid arguments to construct '%s'" -msgstr "Chybný argument convert(), použite TYPE_* konÅ¡tanty." +msgstr "Neplatné argumenty pre vytvorenie '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "Pri volanà '%s':" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -66,24 +67,23 @@ msgstr "" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "" +msgstr "Vyvážený" #: editor/animation_bezier_editor.cpp msgid "Mirror" -msgstr "" +msgstr "Zrkadlový" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" -msgstr "" +msgstr "VložiÅ¥ tu kľúÄ" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Duplicate Selected Key(s)" -msgstr "DuplikovaÅ¥ výber" +msgstr "DuplikovaÅ¥ kľúÄ(e)" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" -msgstr "" +msgstr "ZmazaÅ¥ kľúÄ(e)" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -543,20 +543,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -853,8 +845,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4228,6 +4220,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6239,7 +6241,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6316,7 +6318,12 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "Popis:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6328,8 +6335,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Popis:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7139,6 +7147,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8644,10 +8665,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Súbor:" @@ -9297,6 +9314,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9452,6 +9476,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9562,10 +9593,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 23b3436ef7..9080db9490 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -561,22 +561,14 @@ msgstr "Oddalji" msgid "Reset Zoom" msgstr "Ponastavi PoveÄavo/PomanjÅ¡avo" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Vrstica:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Stolpec:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "Metoda v ciljnem gradniku mora biti navedena!" @@ -883,8 +875,8 @@ msgstr "IzbriÅ¡em izbrane datoteke?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "IzbriÅ¡i" @@ -4385,6 +4377,16 @@ msgid "Move CanvasItem" msgstr "Uredi Platno Stvari" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Samo SidriÅ¡Äa" @@ -6423,7 +6425,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6503,8 +6505,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Animacija" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animacija" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6515,8 +6523,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Ime Animacije:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7334,6 +7343,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8840,10 +8862,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Ogled datotek" @@ -9502,6 +9520,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9657,6 +9682,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9772,10 +9804,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Neobdelan naÄin" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Dodaj trenutno barvo kot prednastavljeno" @@ -9863,6 +9903,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "Vrstica:" + +#~ msgid "Col:" +#~ msgstr "Stolpec:" + #, fuzzy #~ msgid "Split already exists." #~ msgstr "SamodejnoNalaganje '%s' že obstaja!" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index ea81392f89..ac4575f3a7 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -531,20 +531,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -838,8 +830,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4141,6 +4133,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6117,7 +6119,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6193,8 +6195,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Funksionet:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Përmirëso Animacionin" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6205,8 +6213,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Karakteristikat e animacionit." #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -6983,6 +6992,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8459,10 +8481,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9088,6 +9106,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9243,6 +9268,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9352,10 +9384,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index b74074cda1..9a2b69aea7 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -561,22 +561,13 @@ msgstr "Умањи" msgid "Reset Zoom" msgstr "РеÑетуј увеличање" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Поглед иÑпред" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Линија:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Колона:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -888,8 +879,8 @@ msgstr "Обриши одабране датотеке?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Обриши" @@ -4407,6 +4398,16 @@ msgid "Move CanvasItem" msgstr "Уреди CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Само Ñидра" @@ -6477,7 +6478,7 @@ msgid "Post" msgstr "ПоÑле" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6559,10 +6560,16 @@ msgid "(empty)" msgstr "(празно)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Ðнимације" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Ðнимација" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Брзина (FPS):" @@ -6572,7 +6579,8 @@ msgid "Loop" msgstr "ЦиклуÑ" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Ðнимационе Ñлике" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7418,6 +7426,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8936,10 +8957,6 @@ msgid "Build Project" msgstr "Пројекат" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Погледај датотеке" @@ -9582,6 +9599,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9737,6 +9761,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9851,10 +9882,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9941,6 +9980,16 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Поглед иÑпред" + +#~ msgid "Line:" +#~ msgstr "Линија:" + +#~ msgid "Col:" +#~ msgstr "Колона:" + +#, fuzzy #~ msgid "Split already exists." #~ msgstr "ÐутоматÑко учитавање '%s' већ поÑтоји!" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 7a50fedd2c..c071299b51 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -544,20 +544,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -852,8 +844,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4163,6 +4155,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6149,7 +6151,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6226,8 +6228,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Optimizuj Animaciju" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Optimizuj Animaciju" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6238,8 +6246,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Optimizuj Animaciju" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7030,6 +7039,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8511,10 +8533,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9140,6 +9158,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9295,6 +9320,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9404,10 +9436,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 6071ea21a8..cd0ec2c39a 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -580,23 +580,14 @@ msgstr "Zooma Ut" msgid "Reset Zoom" msgstr "Ã…terställ Zoom" -#: editor/code_editor.cpp +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp #, fuzzy -msgid "Warnings:" +msgid "Warnings" msgstr "Varning" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Vy framifrÃ¥n" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Rad:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Kolumn:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp #, fuzzy @@ -939,8 +930,8 @@ msgstr "Ta bort valda filer?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Ta bort" @@ -4658,6 +4649,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6761,7 +6762,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6843,10 +6844,16 @@ msgid "(empty)" msgstr "(tom)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animationer" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animation" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "" @@ -6856,8 +6863,9 @@ msgid "Loop" msgstr "Loop" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Nytt Animationsnamn:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7702,6 +7710,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -9299,11 +9320,6 @@ msgstr "Projekt" #: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy -msgid "Warnings" -msgstr "Varning" - -#: modules/mono/editor/mono_bottom_panel.cpp -#, fuzzy msgid "View log" msgstr "Visa Filer" @@ -9980,6 +9996,13 @@ msgstr "" "ParallaxLayer-Node fungerar bara när satt som en barn till en " "ParallaxBackground-Node." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -10149,6 +10172,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -10264,11 +10294,19 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" msgstr "Raw-Läge" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp #, fuzzy msgid "Add current color as a preset" msgstr "Lägg till nuvarande färg som en förinställning" @@ -10361,6 +10399,20 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Warnings:" +#~ msgstr "Varning" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Vy framifrÃ¥n" + +#~ msgid "Line:" +#~ msgstr "Rad:" + +#~ msgid "Col:" +#~ msgstr "Kolumn:" + +#, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "PathFollow2D fungerar bara när den är satt som ett barn till en Path2D-" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index a928d02019..642060561b 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -541,20 +541,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -849,8 +841,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4155,6 +4147,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6132,7 +6134,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6208,7 +6210,12 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "மாறà¯à®±à®™à¯à®•à®³à¯ˆ இதறà¯à®•à¯ அமை:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6220,7 +6227,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7001,6 +7008,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8481,10 +8501,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9110,6 +9126,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9265,6 +9288,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9374,10 +9404,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/te.po b/editor/translations/te.po index 394a3c4208..126dd37c11 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -532,20 +532,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -839,8 +831,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4142,6 +4134,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6118,7 +6120,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6194,7 +6196,11 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6206,7 +6212,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6982,6 +6988,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8458,10 +8477,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9087,6 +9102,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9242,6 +9264,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9351,10 +9380,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index afc0684350..c50ab36025 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -567,23 +567,13 @@ msgstr "ย่à¸" msgid "Reset Zoom" msgstr "รีเซ็ตซูม" -#: editor/code_editor.cpp -#, fuzzy -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "คำเตืà¸à¸™" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "ขนาดฟà¸à¸™à¸•à¹Œà¸•à¹‰à¸™à¸‰à¸šà¸±à¸š:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "บรรทัด:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "คà¸à¸¥à¸±à¸¡à¸™à¹Œ:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -890,8 +880,8 @@ msgstr "ลบไฟล์ที่เลืà¸à¸?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "ลบ" @@ -4359,6 +4349,16 @@ msgid "Move CanvasItem" msgstr "à¹à¸à¹‰à¹„ข CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "ปรับหมุดเท่านั้น" @@ -6416,7 +6416,7 @@ msgid "Post" msgstr "หลัง" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6499,7 +6499,13 @@ msgid "(empty)" msgstr "(ว่างเปล่า)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" msgstr "à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6511,7 +6517,8 @@ msgid "Loop" msgstr "วน" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "เฟรมà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7348,6 +7355,19 @@ msgstr "ยืนยันà¸à¸²à¸£à¹€à¸›à¸´à¸”โปรเจà¸à¸•à¹Œà¸¡à¸²à¸ #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8888,10 +8908,6 @@ msgid "Build Project" msgstr "Build โปรเจà¸à¸•à¹Œ" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "คำเตืà¸à¸™" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "ดูไฟล์" @@ -9541,6 +9557,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "ParallaxLayer จะทำงานได้ต้à¸à¸‡à¹€à¸›à¹‡à¸™à¹‚หนดลูà¸à¸‚à¸à¸‡à¹‚หนด ParallaxBackground" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9708,6 +9731,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "ไม่มีà¸à¸²à¸£à¹à¸ªà¸”งผลเนื่à¸à¸‡à¸ˆà¸²à¸à¹„ม่ได้à¸à¸³à¸«à¸™à¸” mesh ใน draw pass" @@ -9828,10 +9858,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "โหมด Raw" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "เพิ่มสีที่เลืà¸à¸à¹ƒà¸™à¸£à¸²à¸¢à¸à¸²à¸£à¹‚ปรด" @@ -9928,6 +9966,20 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Warnings:" +#~ msgstr "คำเตืà¸à¸™" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "ขนาดฟà¸à¸™à¸•à¹Œà¸•à¹‰à¸™à¸‰à¸šà¸±à¸š:" + +#~ msgid "Line:" +#~ msgstr "บรรทัด:" + +#~ msgid "Col:" +#~ msgstr "คà¸à¸¥à¸±à¸¡à¸™à¹Œ:" + +#, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "PathFollow2D จะทำงานได้ต้à¸à¸‡à¹€à¸›à¹‡à¸™à¹‚หนดลูà¸à¸‚à¸à¸‡à¹‚หนด Path2D" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 1f52b34675..9f4f6bcfde 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -582,23 +582,13 @@ msgstr "UzaklaÅŸtır" msgid "Reset Zoom" msgstr "YaklaÅŸmayı Sıfırla" -#: editor/code_editor.cpp -#, fuzzy -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "Uyarılar" #: editor/code_editor.cpp -#, fuzzy -msgid "Font Size:" -msgstr "Kaynak Yazı Türü Boyutu:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Satır:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "Sütun:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -907,8 +897,8 @@ msgstr "Seçili dosyalar silinsin mi?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Sil" @@ -4424,6 +4414,16 @@ msgid "Move CanvasItem" msgstr "CanvasItem Düzenle" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Sadece çapalar" @@ -6481,7 +6481,7 @@ msgid "Post" msgstr "Sonrası" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6564,10 +6564,16 @@ msgid "(empty)" msgstr "(boÅŸ)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Animasyonlar" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Animasyon" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "Hız (FPS):" @@ -6576,7 +6582,8 @@ msgid "Loop" msgstr "Döngü" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Animasyon Çerçeveleri" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7414,6 +7421,19 @@ msgstr "Birden fazla proje açmakta kararlı mısınız?" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8964,10 +8984,6 @@ msgid "Build Project" msgstr "Projeyi Ä°nÅŸa et" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "Uyarılar" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "Dosyaları Görüntüle" @@ -9642,6 +9658,13 @@ msgstr "" "ParallaxLayer, yalnızca ParallaxBackground düğümünün çocuÄŸu olduÄŸu zaman " "çalışır." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9828,6 +9851,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "HiçbirÅŸey görünebilir deÄŸil çünkü örüntüler çizim geçiÅŸlerine atanmış deÄŸil." @@ -9963,10 +9993,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Ham Kip" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Åžuanki rengi bir önayar olarak kaydet" @@ -10065,6 +10103,20 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Warnings:" +#~ msgstr "Uyarılar" + +#, fuzzy +#~ msgid "Font Size:" +#~ msgstr "Kaynak Yazı Türü Boyutu:" + +#~ msgid "Line:" +#~ msgstr "Satır:" + +#~ msgid "Col:" +#~ msgstr "Sütun:" + +#, fuzzy #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "PathFollow2D yalnızca Path2D düğümünün çocuÄŸu olarak ayarlanınca çalışır." diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 84bf261ae2..9fb767a773 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" +"PO-Revision-Date: 2019-02-01 12:10+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -552,21 +552,13 @@ msgstr "ЗменшеннÑ" msgid "Reset Zoom" msgstr "Скинути маÑштаб" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "ПопередженнÑ:" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "Розмір шрифту:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Ð Ñдок:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "ПопередженнÑ" #: editor/code_editor.cpp -msgid "Col:" -msgstr "Колонка:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -868,8 +860,8 @@ msgstr "Видалити вибрані файли?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Вилучити" @@ -3326,17 +3318,18 @@ msgstr "Переімпортувати" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Зберегти Ñцени, повторно імпортувати Ñ– перезапуÑтити" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Зміна відеодрайвера потребує перезапуÑку редактора." +msgstr "Зміна типу імпортованого файла потребує перезапуÑку редактора." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"Увага: Ñ–Ñують об'єкти, Ñкі викориÑтовують цей реÑурÑ, — вони можуть " +"припинити завантажуватиÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ чином." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4304,6 +4297,19 @@ msgid "Move CanvasItem" msgstr "ПереÑунути CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"ПопередженнÑ: дані щодо Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° розміру дочірніх об'єктів " +"визначаютьÑÑ Ð»Ð¸ÑˆÐµ їхнім батьківÑьким об'єктом." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Тільки прив'Ñзки" @@ -6300,7 +6306,8 @@ msgid "Post" msgstr "ПіÑлÑ" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +#, fuzzy +msgid "Nameless gizmo" msgstr "Штука без назви" #: editor/plugins/sprite_editor_plugin.cpp @@ -6378,10 +6385,16 @@ msgid "(empty)" msgstr "(порожньо)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" msgstr "Ðнімації" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "ÐнімаціÑ" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" msgstr "ЧаÑтота (кадри за Ñек.):" @@ -6390,7 +6403,8 @@ msgid "Loop" msgstr "Зациклити" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "Кадри анімації" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7148,11 +7162,11 @@ msgstr "Вибрати" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Обробник:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7161,10 +7175,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"ВиÑока ÑкіÑÑ‚ÑŒ зображеннÑ\n" +"ДоÑтупні уÑÑ– можливоÑÑ‚Ñ–\n" +"ÐеÑуміÑний із заÑтарілим обладнаннÑм\n" +"Ðе рекомендовано Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚-ігор" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7173,10 +7191,16 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Ðижча ÑкіÑÑ‚ÑŒ зображеннÑ\n" +"ДеÑкі можливоÑÑ‚Ñ– Ñ” недоÑтупними\n" +"Працює майже вÑюди\n" +"Рекомендовано Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚-ігор" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"Обробник можна змінити пізніше, але, можливо, виникне потреба у коригуванні " +"Ñцен." #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7191,6 +7215,28 @@ msgid "Are you sure to open more than one project?" msgstr "Ви Ñправді хочете відкрити декілька проектів одразу?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"Вказаний нижче файл параметрів проекту було Ñтворено у заÑтарілій верÑÑ–Ñ— " +"рушіÑ. Його доведетьÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ до поточної верÑÑ–Ñ—:\n" +"\n" +"%s\n" +"\n" +"Хочете виконати таке перетвореннÑ?\n" +"ПопередженнÑ: у результаті Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð¸ втратите можливіÑÑ‚ÑŒ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ " +"проекту у заÑтарілих верÑÑ–ÑÑ… рушіÑ." + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7907,6 +7953,8 @@ msgstr "Дублювати вузли" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" +"Ðе можна змінювати батьківÑький об'єкт вузлів в уÑпадкованих Ñценах — " +"порÑдок вузлів не можна змінювати." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." @@ -8723,10 +8771,6 @@ msgid "Build Project" msgstr "Зібрати проект" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "ПопередженнÑ" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "ПереглÑнути журнал" @@ -9411,6 +9455,13 @@ msgstr "" "Вузол ParallaxLayer працює, лише Ñкщо його вÑтановлено Ñк дочірній Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ð° " "ParallaxBackground." +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9601,6 +9652,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" "Ðічого не видно, оÑкільки Ñітки не було пов'Ñзано із проходами малюваннÑ." @@ -9733,10 +9791,18 @@ msgstr "" "Цей вузол вважаєтьÑÑ Ð·Ð°Ñтарілим. СкориÑтайтеÑÑ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ нього AnimationTree." #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw (Ñирий) режим" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "Додати поточний колір в ÑкоÑÑ‚Ñ– преÑету" @@ -9833,6 +9899,18 @@ msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ñ€Ñ–Ð´Ð½Ð¾Ð³Ð¾." msgid "Varyings can only be assigned in vertex function." msgstr "Змінні величини можна пов'Ñзувати лише із функцією вузлів." +#~ msgid "Warnings:" +#~ msgstr "ПопередженнÑ:" + +#~ msgid "Font Size:" +#~ msgstr "Розмір шрифту:" + +#~ msgid "Line:" +#~ msgstr "Ð Ñдок:" + +#~ msgid "Col:" +#~ msgstr "Колонка:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "OrientedPathFollow працюватиме лише Ñк дочірній елемент вузла Path." diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index e0d4e7628b..bd2de9fa57 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -540,20 +540,12 @@ msgstr "" msgid "Reset Zoom" msgstr "" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "" - -#: editor/code_editor.cpp -msgid "Line:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Col:" +msgid "Line and column numbers" msgstr "" #: editor/connections_dialog.cpp @@ -849,8 +841,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "" @@ -4194,6 +4186,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6198,7 +6200,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6275,7 +6277,11 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6287,7 +6293,7 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7091,6 +7097,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8590,10 +8609,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9225,6 +9240,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9380,6 +9402,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9489,10 +9518,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index ad0feaa6a1..843dc4355f 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -557,23 +557,14 @@ msgstr "Thu nhá»" msgid "Reset Zoom" msgstr "Äặt lại phóng" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "Dòng:" - -#: editor/code_editor.cpp -#, fuzzy -msgid "Col:" -msgstr "Col:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "Cách thức trong Node được chá»n phải được ghi rõ!" @@ -876,8 +867,8 @@ msgstr "" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "Xóa" @@ -4263,6 +4254,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6270,7 +6271,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6347,8 +6348,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "Các Công cụ Animation" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "Tạo Animation má»›i" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6359,8 +6366,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "Tên Animation:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7165,6 +7173,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8658,10 +8679,6 @@ msgid "Build Project" msgstr "" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "" @@ -9295,6 +9312,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9450,6 +9474,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9560,10 +9591,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9650,6 +9689,13 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "Dòng:" + +#, fuzzy +#~ msgid "Col:" +#~ msgstr "Col:" + #, fuzzy #~ msgid "Remove Split" #~ msgstr "Bá» lá»±a chá»n" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 6071ac66c8..334c7494c2 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -40,12 +40,13 @@ # Jsheng <yangea@outlook.com>, 2019. # Zhang Zhibo <zzhibo98@gmail.com>, 2019. # ws00010203 <ws00010203@hotmail.com>, 2019. +# Song DongHui <14729626293@163.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2019-01-26 21:22+0000\n" -"Last-Translator: ws00010203 <ws00010203@hotmail.com>\n" +"PO-Revision-Date: 2019-02-03 21:20+0000\n" +"Last-Translator: Song DongHui <14729626293@163.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" "Language: zh_CN\n" @@ -573,21 +574,13 @@ msgstr "缩å°" msgid "Reset Zoom" msgstr "é‡ç½®ç¼©æ”¾" -#: editor/code_editor.cpp -msgid "Warnings:" -msgstr "è¦å‘Šï¼š" - -#: editor/code_editor.cpp -msgid "Font Size:" -msgstr "å—体大å°:" - -#: editor/code_editor.cpp -msgid "Line:" -msgstr "è¡Œ:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "è¦å‘Š" #: editor/code_editor.cpp -msgid "Col:" -msgstr "列:" +msgid "Line and column numbers" +msgstr "" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" @@ -880,8 +873,8 @@ msgstr "åˆ é™¤é€‰ä¸çš„文件?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "åˆ é™¤" @@ -3282,17 +3275,16 @@ msgstr "é‡æ–°å¯¼å…¥" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "ä¿å˜åœºæ™¯ï¼Œé‡æ–°å¯¼å…¥ï¼Œä»Žå¤´å¼€å§‹" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "改å˜è§†é¢‘驱动需è¦é‡å¯ç¼–辑器。" +msgstr "改å˜è¿™ä¸ªå¯¼å…¥çš„文件类型åŽéœ€è¦é‡å¯ç¼–辑器." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." -msgstr "" +msgstr "è¦å‘Šï¼šèµ„æºä½¿ç”¨å†²çªï¼Œå°†ä¼šåœæ¢åŠ 载." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -4241,6 +4233,17 @@ msgid "Move CanvasItem" msgstr "移动 CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "è¦å‘Šï¼šå®¹å™¨å级的ä½ç½®ä¸Žå¤§å°åªèƒ½ç”±å®ƒçš„父级确定。" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "仅锚点" @@ -5194,9 +5197,8 @@ msgid "Points" msgstr "点" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Polygons" -msgstr "多边形->UV" +msgstr "多边形-" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Bones" @@ -6230,7 +6232,7 @@ msgid "Post" msgstr "å‘布(Post)" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6306,7 +6308,13 @@ msgid "(empty)" msgstr "(空)" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" +#, fuzzy +msgid "Animations:" +msgstr "动画" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" msgstr "动画" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6318,7 +6326,8 @@ msgid "Loop" msgstr "循环" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" +#, fuzzy +msgid "Animation Frames:" msgstr "动画帧" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6737,7 +6746,7 @@ msgstr "新建目录" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Icon" -msgstr "" +msgstr "设置纹ç†å›¾æ ‡" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6766,7 +6775,7 @@ msgstr "粘贴ä½æŽ©ç 。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Clear Tile Bitmask" -msgstr "" +msgstr "清除ä½æŽ©ç " #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6795,7 +6804,7 @@ msgstr "编辑ç›é€‰å™¨" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Tile Z Index" -msgstr "" +msgstr "编辑纹ç†çš„Zåæ ‡" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6945,7 +6954,7 @@ msgstr "使用下列密ç åŠ å¯†" #: editor/project_export.cpp msgid "Invalid Encryption Key (must be 64 characters long)" -msgstr "" +msgstr "æ— æ•ˆçš„åŠ å¯†å¯†é’¥ï¼ˆé•¿åº¦å¿…é¡»ä¸º64个å—符)" #: editor/project_export.cpp msgid "Script Encryption Key (256-bits as hex):" @@ -7088,11 +7097,11 @@ msgstr "æµè§ˆ" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "渲染器:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7101,6 +7110,10 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"更高的视觉质é‡\n" +"所有å¯ç”¨åŠŸèƒ½\n" +"与旧硬件ä¸å…¼å®¹\n" +"ä¸æŽ¨è用于网络游æˆ" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" @@ -7113,25 +7126,46 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"较低的视觉质é‡\n" +"æŸäº›åŠŸèƒ½ä¸å¯ç”¨\n" +"适用于大多数硬件\n" +"推è用于网络游æˆ" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." -msgstr "" +msgstr "渲染器å¯ä»¥ç¨åŽæ›´æ”¹ï¼Œä½†å¯èƒ½éœ€è¦è°ƒæ•´åœºæ™¯ã€‚" #: editor/project_manager.cpp msgid "Unnamed Project" msgstr "未命å项目" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project at '%s'." -msgstr "æ— æ³•æ‰“å¼€é¡¹ç›®" +msgstr "æ— æ³•æ‰“å¼€ä½äºŽâ€œ%sâ€çš„相应项目." #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" msgstr "您确定è¦æ‰“开多个项目å—?" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" +"以下项目设置文件是由旧的引擎版本生æˆçš„,需è¦ä¸ºæ¤ç‰ˆæœ¬è½¬æ¢ï¼š\n" +"%s\n" +"是å¦è¦è½¬æ¢å®ƒï¼Ÿ\n" +"è¦å‘Šï¼šæ‚¨å°†æ— 法å†ä½¿ç”¨ä»¥å‰ç‰ˆæœ¬çš„引擎打开项目。" + +#: editor/project_manager.cpp msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7142,12 +7176,16 @@ msgid "" "Warning: You will not be able to open the project with previous versions of " "the engine anymore." msgstr "" +"以下项目设置文件是由旧的引擎版本生æˆçš„,需è¦ä¸ºæ¤ç‰ˆæœ¬è½¬æ¢ï¼š\n" +"%s\n" +"是å¦è¦è½¬æ¢å®ƒï¼Ÿ\n" +"è¦å‘Šï¼šæ‚¨å°†æ— 法å†ä½¿ç”¨ä»¥å‰ç‰ˆæœ¬çš„引擎打开项目。" #: editor/project_manager.cpp msgid "" "The project settings were created by a newer engine version, whose settings " "are not compatible with this version." -msgstr "" +msgstr "项目设置是由更新的引擎版本创建的,其设置与æ¤ç‰ˆæœ¬ä¸å…¼å®¹ã€‚" #: editor/project_manager.cpp msgid "" @@ -7824,16 +7862,18 @@ msgid "Duplicate Node(s)" msgstr "å¤åˆ¶èŠ‚点" #: editor/scene_tree_dock.cpp +#, fuzzy msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." -msgstr "" +msgstr "æ— æ³•é‡æ–°è®¾ç½®ç»§æ‰¿åœºæ™¯ä¸çš„节点,节点顺åºæ— 法更改。" #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." -msgstr "" +msgstr "节点必须属于已编辑的场景æ‰èƒ½æˆä¸ºæ ¹èŠ‚点。" #: editor/scene_tree_dock.cpp +#, fuzzy msgid "Instantiated scenes can't become root" -msgstr "" +msgstr "实例化的场景ä¸èƒ½æˆä¸ºæ ¹èŠ‚点" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)?" @@ -8634,10 +8674,6 @@ msgid "Build Project" msgstr "构建项目" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "è¦å‘Š" - -#: modules/mono/editor/mono_bottom_panel.cpp msgid "View log" msgstr "查看日志" @@ -9028,43 +9064,43 @@ msgstr "设值 %s" #: platform/android/export/export.cpp msgid "Package name is missing." -msgstr "" +msgstr "缺包å." #: platform/android/export/export.cpp msgid "Package segments must be of non-zero length." -msgstr "" +msgstr "包段的长度必须为éžé›¶ã€‚" #: platform/android/export/export.cpp msgid "The character '%s' is not allowed in Android application package names." -msgstr "" +msgstr "Android应用程åºåŒ…å称ä¸ä¸å…许使用å—符“%sâ€ã€‚" #: platform/android/export/export.cpp msgid "A digit cannot be the first character in a package segment." -msgstr "" +msgstr "包段ä¸çš„第一个å—符ä¸èƒ½æ˜¯æ•°å—。" #: platform/android/export/export.cpp msgid "The character '%s' cannot be the first character in a package segment." -msgstr "" +msgstr "包段ä¸çš„第一个å—符ä¸èƒ½æ˜¯â€œ%sâ€ã€‚" #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." -msgstr "" +msgstr "包必须至少有一个“.â€åˆ†éš”符。" #: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." -msgstr "" +msgstr "未在编辑器设置ä¸é…ç½®ADBå¯æ‰§è¡Œæ–‡ä»¶ã€‚" #: platform/android/export/export.cpp msgid "OpenJDK jarsigner not configured in the Editor Settings." -msgstr "" +msgstr "未在编辑器设置ä¸é…ç½®OpenJDK Jarsigner。" #: platform/android/export/export.cpp msgid "Debug keystore not configured in the Editor Settings nor in the preset." -msgstr "" +msgstr "未在编辑器设置或预设ä¸é…置调试密钥库。" #: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." -msgstr "" +msgstr "APKæ‰©å±•çš„å…¬é’¥æ— æ•ˆã€‚" #: platform/android/export/export.cpp #, fuzzy @@ -9073,11 +9109,11 @@ msgstr "ç±»åéžæ³•" #: platform/iphone/export/export.cpp msgid "Identifier is missing." -msgstr "" +msgstr "ç¼ºå°‘æ ‡è¯†ç¬¦ã€‚" #: platform/iphone/export/export.cpp msgid "Identifier segments must be of non-zero length." -msgstr "" +msgstr "æ ‡è¯†ç¬¦å—段ä¸èƒ½ä¸ºç©º." #: platform/iphone/export/export.cpp #, fuzzy @@ -9086,20 +9122,20 @@ msgstr "å称ä¸æ˜¯æœ‰æ•ˆçš„æ ‡è¯†ç¬¦ï¼š" #: platform/iphone/export/export.cpp msgid "A digit cannot be the first character in a Identifier segment." -msgstr "" +msgstr "æ ‡è¯†ç¬¦æ®µä¸çš„第一个å—符ä¸èƒ½æ˜¯æ•°å—。" #: platform/iphone/export/export.cpp msgid "" "The character '%s' cannot be the first character in a Identifier segment." -msgstr "" +msgstr "æ ‡è¯†ç¬¦æ®µä¸çš„第一个å—符ä¸èƒ½æ˜¯\"%s\"。" #: platform/iphone/export/export.cpp msgid "The Identifier must have at least one '.' separator." -msgstr "" +msgstr "æ ‡è¯†ç¬¦å¿…é¡»è‡³å°‘æœ‰ä¸€ä¸ªâ€œ.â€åˆ†éš”符。" #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." -msgstr "" +msgstr "未指定应用商店团队ID-æ— æ³•é…置项目。" #: platform/iphone/export/export.cpp #, fuzzy @@ -9108,7 +9144,7 @@ msgstr "å称ä¸æ˜¯æœ‰æ•ˆçš„æ ‡è¯†ç¬¦ï¼š" #: platform/iphone/export/export.cpp msgid "Required icon is not specified in the preset." -msgstr "" +msgstr "预设ä¸æœªæŒ‡å®šå¿…éœ€çš„å›¾æ ‡ã€‚" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9283,6 +9319,13 @@ msgid "" msgstr "" "ParallaxLayer类型的节点必须作为ParallaxBackgroundçš„å节点æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9451,6 +9494,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "ç²’åä¸å¯è§ï¼Œå› ä¸ºæ²¡æœ‰ç½‘æ ¼(meshe)指定到绘制通é“(draw passes)。" @@ -9572,10 +9622,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "这个节点已被弃用。请使用Animation Tree代替。" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw 模å¼" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "将当å‰é¢œè‰²æ·»åŠ 为预设" @@ -9666,6 +9724,18 @@ msgstr "对uniform的赋值。" msgid "Varyings can only be assigned in vertex function." msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" +#~ msgid "Warnings:" +#~ msgstr "è¦å‘Šï¼š" + +#~ msgid "Font Size:" +#~ msgstr "å—体大å°:" + +#~ msgid "Line:" +#~ msgstr "è¡Œ:" + +#~ msgid "Col:" +#~ msgstr "列:" + #~ msgid "OrientedPathFollow only works when set as a child of a Path node." #~ msgstr "" #~ "OrientedPathFollow 类型的节点åªæœ‰ä½œä¸ºPath类型节点的å节点æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 7b072a4123..e076abd623 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -579,23 +579,14 @@ msgstr "縮å°" msgid "Reset Zoom" msgstr "é‡è¨ç¸®æ”¾æ¯”例" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -#, fuzzy -msgid "Line:" -msgstr "è¡Œ:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "列:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" msgstr "" @@ -900,8 +891,8 @@ msgstr "è¦åˆªé™¤é¸ä¸æª”案?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "刪除" @@ -4444,6 +4435,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6503,7 +6504,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6584,8 +6585,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "新增動畫" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "æ–°çš„å‹•ç•«å稱:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6596,8 +6603,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "æ–°çš„å‹•ç•«å稱:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7430,6 +7438,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8977,10 +8998,6 @@ msgid "Build Project" msgstr "專案" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "檔案" @@ -9638,6 +9655,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9793,6 +9817,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9906,10 +9937,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "" @@ -9995,6 +10034,13 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Line:" +#~ msgstr "è¡Œ:" + +#~ msgid "Col:" +#~ msgstr "列:" + +#, fuzzy #~ msgid "Split already exists." #~ msgstr "AutoLoad '%s'å·²å˜åœ¨ï¼" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index 58c3085900..5b9aeb74be 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -12,12 +12,13 @@ # Qing <icinriiq@gmail.com>, 2018. # Sam Pan <sampan66@gmail.com>, 2016. # ken l <macauhome@gmail.com>, 2018. +# Eric K <eric900601@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:44+0100\n" -"Last-Translator: ken l <macauhome@gmail.com>\n" +"PO-Revision-Date: 2019-02-01 12:09+0000\n" +"Last-Translator: Eric K <eric900601@gmail.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\n" @@ -25,34 +26,35 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Weblate 3.5-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Invalid type argument to convert(), use TYPE_* constants." -msgstr "" +msgstr "Convert()函數所收到的åƒæ•¸éŒ¯èª¤ï¼Œè«‹è©¦è‘—以 TYPE_ 作為開é 。" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp msgid "Not enough bytes for decoding bytes, or invalid format." -msgstr "解碼å—節ä½å…ƒä¸è¶³ï¼Œæˆ–ç‚ºç„¡æ•ˆæ ¼å¼ã€‚" +msgstr "輸入的解碼å—節ä¸è¶³ã€æˆ–ç‚ºç„¡æ•ˆæ ¼å¼ã€‚" #: core/math/expression.cpp +#, fuzzy msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "所輸入的 %i 於表ç¾å¼ä¸ç„¡æ•ˆ" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "å› è©²å¯¦ä¾‹(instance)為空,self 無法被使用" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "æ¤æ•¸å€¼ç„¡æ³•è¢« %sã€%s å’Œ %s é‹ç®—。" #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "無效的內å˜åœ°å€é¡žåž‹ %sï¼ŒåŸºç¤Žåž‹å¼ %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" @@ -80,47 +82,44 @@ msgid "Mirror" msgstr "" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Insert Key Here" -msgstr "動畫新增按éµ" +msgstr "在æ¤æ’å…¥ç•«æ ¼" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Duplicate Selected Key(s)" -msgstr "複製所é¸" +msgstr "複製所é¸ç•«æ ¼" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Delete Selected Key(s)" -msgstr "確定刪除所é¸æ“‡çš„檔案嗎?" +msgstr "刪除所é¸ç•«æ ¼" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" -msgstr "複製動畫關éµç•«æ ¼" +msgstr "複製關éµç•«æ ¼" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Delete Keys" -msgstr "刪除動畫關éµç•«æ ¼" +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" -msgstr "動畫更改座標" +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 "Property Track" @@ -152,9 +151,8 @@ msgid "Add Track" msgstr "æ·»åŠ å‹•ç•«è»Œ" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Length Time (seconds)" -msgstr "動畫長度 (秒)。" +msgstr "動畫長度(秒)" #: editor/animation_track_editor.cpp #, fuzzy @@ -258,11 +256,11 @@ msgstr "刪除動畫軌" #: editor/animation_track_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "%s 新增新軌並æ’å…¥ç•«æ ¼?" +msgstr "為 %s 新增動畫軌並æ’å…¥ç•«æ ¼ï¼Ÿ" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" -msgstr "創建 %d 個新軌並æ’å…¥ç•«æ ¼?" +msgstr "創建 %d 個動畫軌並æ’å…¥ç•«æ ¼ï¼Ÿ" #: editor/animation_track_editor.cpp editor/create_dialog.cpp #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp @@ -283,7 +281,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" -msgstr "動畫建立與æ’å…¥" +msgstr "新增/æ’入動畫" #: editor/animation_track_editor.cpp #, fuzzy @@ -292,7 +290,7 @@ msgstr "動畫新增軌跡與按éµ" #: editor/animation_track_editor.cpp msgid "Anim Insert Key" -msgstr "動畫新增按éµ" +msgstr "新增關éµç•«æ ¼" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." @@ -336,7 +334,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Anim Move Keys" -msgstr "ç§»å‹•å‹•ç•«ç•«æ ¼" +msgstr "移動關éµç•«æ ¼" #: editor/animation_track_editor.cpp msgid "Clipboard is empty" @@ -399,7 +397,7 @@ msgstr "縮放所é¸" #: editor/animation_track_editor.cpp msgid "Scale From Cursor" -msgstr "由游標ä½ç½®ç¸®æ”¾" +msgstr "由游標縮放" #: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp msgid "Duplicate Selection" @@ -407,7 +405,7 @@ msgstr "複製所é¸" #: editor/animation_track_editor.cpp msgid "Duplicate Transposed" -msgstr "é‡è¤‡è½‰ç½®" +msgstr "複製並轉置" #: editor/animation_track_editor.cpp #, fuzzy @@ -426,7 +424,7 @@ msgstr "往上一æ¥" #: editor/animation_track_editor.cpp msgid "Optimize Animation" -msgstr "最佳化動畫" +msgstr "動畫最佳化" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation" @@ -463,11 +461,11 @@ msgstr "最佳化" #: editor/animation_track_editor.cpp msgid "Remove invalid keys" -msgstr "移除無效按éµ" +msgstr "移除無效的關éµç•«æ ¼" #: editor/animation_track_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "刪除未解決或是空的軌é“" +msgstr "刪除未處ç†çš„空白軌é“" #: editor/animation_track_editor.cpp msgid "Clean-up all animations" @@ -475,7 +473,7 @@ msgstr "清除所有動畫" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation(s) (NO UNDO!)" -msgstr "清除動畫 (無法復原!)" +msgstr "永久刪除動畫(無法復原ï¼ï¼‰" #: editor/animation_track_editor.cpp msgid "Clean-Up" @@ -523,7 +521,7 @@ msgstr "無符åˆæ¢ä»¶" #: editor/code_editor.cpp msgid "Replaced %d occurrence(s)." -msgstr "å–代了 %d 個" +msgstr "å–代了 %d 個。" #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Match Case" @@ -531,7 +529,7 @@ msgstr "符åˆå¤§å°å¯«" #: editor/code_editor.cpp editor/find_in_files.cpp msgid "Whole Words" -msgstr "整個å—" +msgstr "符åˆå®Œæ•´å–®å—" #: editor/code_editor.cpp editor/rename_dialog.cpp msgid "Replace" @@ -561,31 +559,23 @@ msgstr "縮å°" msgid "Reset Zoom" msgstr "é‡è¨ç¸®æ”¾å¤§å°" -#: editor/code_editor.cpp -msgid "Warnings:" +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" msgstr "" #: editor/code_editor.cpp -msgid "Font Size:" +msgid "Line and column numbers" msgstr "" -#: editor/code_editor.cpp -msgid "Line:" -msgstr "è¡Œ:" - -#: editor/code_editor.cpp -msgid "Col:" -msgstr "列:" - #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" -msgstr "需指定在目標節點上的方法!" +msgstr "å¿…é ˆæŒ‡å®šå°ç›®æ¨™ç¯€é»žçš„行為ï¼" #: editor/connections_dialog.cpp msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." -msgstr "找ä¸åˆ°ç›®æ¨™æ–¹æ³•! 指定一個å°çš„æ–¹æ³•æˆ–é™„åŠ ä¸€å€‹è…³æœ¬åˆ°ç›®æ¨™çš„ç¯€é»žä¸Šã€‚" +msgstr "找ä¸åˆ°ç›®æ¨™æ–¹æ³•ï¼è«‹æŒ‡å®šæœ‰æ•ˆæ–¹æ³•ã€æˆ–å°‡è…³æœ¬é™„åŠ è‡³ç›®æ¨™ç¯€é»žä¸Šã€‚" #: editor/connections_dialog.cpp msgid "Connect To Node:" @@ -881,8 +871,8 @@ msgstr "確定刪除所é¸æ“‡çš„檔案嗎?" #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp -#: editor/project_export.cpp editor/project_settings_editor.cpp -#: editor/scene_tree_dock.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp msgid "Delete" msgstr "刪除" @@ -1869,7 +1859,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." -msgstr "è«‹å…ˆå˜æª”æ‰èƒ½åŸ·è¡Œè©²å ´æ™¯" +msgstr "在é‹è¡Œå ´æ™¯å‰ï¼Œè«‹å…ˆå˜æª”。" #: editor/editor_node.cpp msgid "Could not start subprocess!" @@ -1906,7 +1896,7 @@ msgstr "å¦å˜å ´æ™¯ç‚º..." #: editor/editor_node.cpp msgid "No" -msgstr "" +msgstr "ä¸æ˜¯" #: editor/editor_node.cpp msgid "Yes" @@ -1918,7 +1908,7 @@ msgstr "æ¤å ´æ™¯å°šæœªå˜æª”, 執行å‰è«‹å…ˆå˜æª”" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "This operation can't be done without a scene." -msgstr "" +msgstr "在è¨ç½®å ´æ™¯å‰ï¼Œç„¡æ³•å®Œæˆè©²æŒ‡å®šæ“作。" #: editor/editor_node.cpp msgid "Export Mesh Library" @@ -1926,20 +1916,19 @@ msgstr "" #: editor/editor_node.cpp msgid "This operation can't be done without a root node." -msgstr "æ¤æ“ä½œç„¡æ³•åœ¨æ²’æœ‰æ ¹ç¯€é»žçš„æƒ…æ³ä¸‹é€²è¡Œã€‚" +msgstr "在è¨ç½®æ ¹ç¯€é»ž(root node)å‰ï¼Œç„¡æ³•å®Œæˆè©²æŒ‡å®šæ“作。" #: editor/editor_node.cpp msgid "Export Tile Set" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "This operation can't be done without a selected node." -msgstr "æ¤æ“作需è¦æœ‰é¸æ“‡è‘—節點æ‰èƒ½é€²è¡Œã€‚" +msgstr "在è¨ç½®è‘—節點(selected node)å‰ï¼Œç„¡æ³•å®Œæˆè©²æŒ‡å®šæ“作。" #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "ç›®å‰çš„å ´æ™¯å°šæœªå˜æª”, ä¾ç„¶è¦é–‹å•Ÿå—Ž?" +msgstr "ç›®å‰çš„å ´æ™¯å°šæœªå˜æª”,ä»è¦é–‹å•Ÿå—Žï¼Ÿ" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." @@ -1950,12 +1939,13 @@ msgid "Revert" msgstr "還原" #: editor/editor_node.cpp +#, fuzzy msgid "This action cannot be undone. Revert anyway?" -msgstr "æ¤æ“作無法復原, 確定è¦é‚„原嗎?" +msgstr "æ¤æ“作無法被, 確定è¦é‚„原嗎?" #: editor/editor_node.cpp msgid "Quick Run Scene..." -msgstr "å¿«é€ŸåŸ·è¡Œå ´æ™¯..." +msgstr "å¿«é€ŸåŸ·è¡Œå ´æ™¯â€¦" #: editor/editor_node.cpp msgid "Quit" @@ -1963,89 +1953,93 @@ msgstr "離開" #: editor/editor_node.cpp msgid "Exit the editor?" -msgstr "離開編輯器嗎?" +msgstr "è¦çµæŸç·¨è¼¯å™¨å—Žï¼Ÿ" #: editor/editor_node.cpp msgid "Open Project Manager?" -msgstr "" +msgstr "è¦é–‹å•Ÿå°ˆæ¡ˆç®¡ç†å—Žï¼Ÿ" #: editor/editor_node.cpp msgid "Save & Quit" -msgstr "" +msgstr "儲å˜ä¸¦é›¢é–‹" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" -msgstr "" +msgstr "關閉å‰ï¼Œè¦å„²å˜ä¿®æ”¹çš„å ´æ™¯å—Žï¼Ÿ" #: editor/editor_node.cpp msgid "Save changes the following scene(s) before opening Project Manager?" -msgstr "" +msgstr "開啟專案管ç†å‰ï¼Œè¦å„²å˜ä¿®æ”¹çš„å ´æ™¯å—Žï¼Ÿ" #: editor/editor_node.cpp msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." -msgstr "" +msgstr "ä¸æŽ¨è–¦æ¤é¸é …。被強制é‡æ–°æ•´ç†çš„情形,å¯èƒ½æ˜¯å› 程å¼éŒ¯èª¤å°Žè‡´ã€‚è«‹å›žå ±ã€‚" #: editor/editor_node.cpp msgid "Pick a Main Scene" -msgstr "挑一個主è¦å ´æ™¯" +msgstr "é¸å–一個主è¦å ´æ™¯" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." -msgstr "" +msgstr "無法在: \"%s\" 上啟動擴充功能,è¨å®šè§£æžå¤±æ•—。" #: editor/editor_node.cpp msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." -msgstr "" +msgstr "在æ’件目錄 'res://addons/%s' ä¸ï¼Œæ‰¾ä¸åˆ°è…³æœ¬ã€‚" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." -msgstr "" +msgstr "無法從 '%s' ä¸é †åˆ©è®€å–腳本。" #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." -msgstr "" +msgstr "無法從 '%s' ä¸é †åˆ©è®€å–腳本。å¯èƒ½å‡ºè‡ªç·¨ç¢¼éŒ¯èª¤ï¼Œè«‹æª¢å¯Ÿèªžæ³•æ˜¯å¦æ£ç¢ºã€‚" #: editor/editor_node.cpp msgid "" "Unable to load addon script from path: '%s' Base type is not EditorPlugin." -msgstr "" +msgstr "無法從 '%s' ä¸é †åˆ©è®€å–腳本。基本類型 的腳本並ä¸å±¬æ–¼ 編輯類æ’件。" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s' Script is not in tool mode." -msgstr "" +msgstr "無法從 '%s' ä¸é †åˆ©è®€å–腳本。æ¤è…³æœ¬ä¸¦ä¸è™•æ–¼å·¥å…·æ¨¡å¼ä¸‹ã€‚" #: editor/editor_node.cpp msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" +"å ´æ™¯\"%s\"為自動導入,並ä¸èƒ½è¢«ä¿®æ”¹ã€‚\n" +"è‹¥è¦é€²è¡Œæ›´æ”¹ï¼Œè«‹å»ºç«‹æ–°çš„å ´æ™¯ã€‚" #: editor/editor_node.cpp msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." msgstr "" +"讀å–å ´æ™¯æ™‚ç™¼ç”ŸéŒ¯èª¤ï¼Œå ´æ™¯å¿…é ˆæ”¾ç½®æ–¼å°ˆæ¡ˆè³‡æ–™å¤¾å…§ã€‚è«‹ç”¨ã€Œå°Žå…¥ã€é–‹å•Ÿè©²å ´æ™¯å¾Œï¼Œå†" +"儲å˜æ–¼å°ˆæ¡ˆè³‡æ–™å¤¾ã€‚" #: editor/editor_node.cpp +#, fuzzy msgid "Scene '%s' has broken dependencies:" -msgstr "" +msgstr "å ´æ™¯ '%s' çš„ä¾å˜é—œä¿‚å·²è¢«ç ´å£žã€‚" #: editor/editor_node.cpp -#, fuzzy msgid "Clear Recent Scenes" -msgstr "é—œé–‰å ´æ™¯" +msgstr "æ¸…é™¤æœ€è¿‘é–‹å•Ÿçš„å ´æ™¯" #: editor/editor_node.cpp msgid "Save Layout" -msgstr "" +msgstr "儲å˜ä½ˆå±€" #: editor/editor_node.cpp msgid "Delete Layout" -msgstr "" +msgstr "刪除佈局" #: editor/editor_node.cpp editor/import_dock.cpp #: editor/script_create_dialog.cpp @@ -2054,28 +2048,24 @@ msgstr "é è¨" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" -msgstr "在檔案管ç†å“¡å…§é¡¯ç¤º" +msgstr "在檔案系統ä¸é¡¯ç¤º" #: editor/editor_node.cpp -#, fuzzy msgid "Play This Scene" -msgstr "æš«åœå ´æ™¯" +msgstr "é‹è¡Œæ¤å ´æ™¯" #: editor/editor_node.cpp -#, fuzzy msgid "Close Tab" -msgstr "關閉" +msgstr "關閉分é " #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "切æ›å ´æ™¯åˆ†é " #: editor/editor_node.cpp -#, fuzzy msgid "%d more files or folders" -msgstr "還有 %d 個檔案或資料夾" +msgstr "還有 %d 個檔案/資料夾" #: editor/editor_node.cpp #, fuzzy @@ -2083,26 +2073,24 @@ msgid "%d more folders" msgstr "還有 %d 個檔案" #: editor/editor_node.cpp -#, fuzzy msgid "%d more files" msgstr "還有 %d 個檔案" #: editor/editor_node.cpp msgid "Dock Position" -msgstr "" +msgstr "版é¢ä½ç½®" #: editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "" +msgstr "無干擾模å¼" #: editor/editor_node.cpp msgid "Toggle distraction-free mode." -msgstr "" +msgstr "切æ›ç‚ºç„¡å¹²æ“¾æ¨¡å¼ã€‚" #: editor/editor_node.cpp -#, fuzzy msgid "Add a new scene." -msgstr "æ›´æ–°å ´æ™¯ä¸..." +msgstr "æ–°å¢žå ´æ™¯ã€‚" #: editor/editor_node.cpp #, fuzzy @@ -2111,35 +2099,35 @@ msgstr "å ´æ™¯" #: editor/editor_node.cpp msgid "Go to previously opened scene." -msgstr "" +msgstr "å‰å¾€ä¸Šæ¬¡é–‹å•Ÿçš„å ´æ™¯ã€‚" #: editor/editor_node.cpp msgid "Next tab" -msgstr "下個分é " +msgstr "下一個分é " #: editor/editor_node.cpp msgid "Previous tab" -msgstr "上個分é " +msgstr "上一個分é " #: editor/editor_node.cpp msgid "Filter Files..." -msgstr "éŽæ¿¾æª”案..." +msgstr "篩é¸æª”案..." #: editor/editor_node.cpp msgid "Operations with scene files." -msgstr "" +msgstr "æ“ä½œå ´æ™¯æ–‡ä»¶ã€‚" #: editor/editor_node.cpp msgid "New Scene" -msgstr "" +msgstr "æ–°å ´æ™¯" #: editor/editor_node.cpp msgid "New Inherited Scene..." -msgstr "" +msgstr "從ç¾æœ‰å ´æ™¯ä¸å»ºç«‹â€¦" #: editor/editor_node.cpp msgid "Open Scene..." -msgstr "é–‹å•Ÿå ´æ™¯..." +msgstr "é–‹å•Ÿå ´æ™¯â€¦" #: editor/editor_node.cpp msgid "Save Scene" @@ -2156,42 +2144,41 @@ msgstr "é—œé–‰å ´æ™¯" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Open Recent" -msgstr "開啟最近å˜å–" +msgstr "æœ€è¿‘é–‹å•Ÿçš„å ´æ™¯" #: editor/editor_node.cpp msgid "Convert To..." -msgstr "轉æ›æˆ..." +msgstr "轉æ›æˆâ€¦" #: editor/editor_node.cpp msgid "MeshLibrary..." -msgstr "" +msgstr "網狀資料庫(MeshLibrary)…" #: editor/editor_node.cpp msgid "TileSet..." -msgstr "" +msgstr "å€å¡Šç´ æ…" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Undo" -msgstr "復原" +msgstr "還原" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" -msgstr "å–消「復原ã€" +msgstr "é‡ä½œ" #: editor/editor_node.cpp msgid "Revert Scene" -msgstr "" +msgstr "æ¢å¾©å ´æ™¯" #: editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." -msgstr "" +msgstr "其他專案或全螢幕工具。" #: editor/editor_node.cpp -#, fuzzy msgid "Project" -msgstr "專案è¨å®š" +msgstr "專案" #: editor/editor_node.cpp msgid "Project Settings" @@ -2206,32 +2193,31 @@ msgid "Tools" msgstr "工具" #: editor/editor_node.cpp -#, fuzzy msgid "Open Project Data Folder" -msgstr "專案創始人" +msgstr "開啟專案資料夾" #: editor/editor_node.cpp msgid "Quit to Project List" -msgstr "" +msgstr "退出到專案列表" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp msgid "Debug" -msgstr "" +msgstr "åµéŒ¯" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "" +msgstr "使用é 端åµéŒ¯" #: editor/editor_node.cpp msgid "" "When exporting or deploying, the resulting executable will attempt to " "connect to the IP of this computer in order to be debugged." -msgstr "" +msgstr "當輸出或發布專案後,å¯åŸ·è¡Œæ–‡ä»¶(exe)將會嘗試連çµæœ¬æ©Ÿï¼©ï¼°ï¼Œä»¥é€²è¡ŒåµéŒ¯ã€‚" #: editor/editor_node.cpp msgid "Small Deploy with Network FS" -msgstr "" +msgstr "å°åž‹éƒ¨å±¬ & 網路文件系統(NFS)" #: editor/editor_node.cpp msgid "" @@ -2242,30 +2228,34 @@ msgid "" "On Android, deploy will use the USB cable for faster performance. This " "option speeds up testing for games with a large footprint." msgstr "" +"啟用æ¤é¸é …後,在輸出/ç™¼å¸ƒé …ç›®æ™‚ï¼ŒåŸ·è¡Œæª”æœƒå£“ç¸®è‡³æœ€å°ã€‚\n" +"至於文件系統,則以網路與編輯器的連çµä¾†ä¾›çµ¦ã€‚\n" +"在Androidå¹³å°ï¼Œé€éŽUSB發布能ç²å¾—更快的效率。\n" +"æ¤é¸é …ç”¨æ–¼åŠ é€ŸéŠæˆ²(尤其是檔案ç¹å¤š)的測試。" #: editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "" +msgstr "碰撞å€åŸŸçš„顯示" #: editor/editor_node.cpp msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." -msgstr "" +msgstr "啟用æ¤é¸é …後,碰撞å€åŸŸ/射線節點 將會於éŠæˆ²ä¸é¡¯ç¤ºã€‚" #: editor/editor_node.cpp msgid "Visible Navigation" -msgstr "" +msgstr "導航的顯示" #: editor/editor_node.cpp msgid "" "Navigation meshes and polygons will be visible on the running game if this " "option is turned on." -msgstr "" +msgstr "啟用æ¤é¸é …後,導航所用的網線/多邊形 將會於éŠæˆ²ä¸é¡¯ç¤ºã€‚" #: editor/editor_node.cpp msgid "Sync Scene Changes" -msgstr "" +msgstr "åŒæ¥å ´æ™¯çš„變更" #: editor/editor_node.cpp msgid "" @@ -2274,10 +2264,12 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"啟用æ¤é¸é …後,編輯器ä¸çš„所有修改,都會立å³åæ˜ æ–¼é‹è¡Œä¸çš„éŠæˆ²ã€‚\n" +"在é 端è£ç½®æ¸¬è©¦æ™‚,é…åˆç¶²è·¯æ–‡ä»¶ç³»çµ±(NFS)使用能更æ高效率。" #: editor/editor_node.cpp msgid "Sync Script Changes" -msgstr "" +msgstr "åŒæ¥è…³æœ¬çš„變更" #: editor/editor_node.cpp msgid "" @@ -2286,42 +2278,44 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" +"啟用æ¤é¸é …後,腳本的所有修改,都會立å³åæ˜ æ–¼é‹è¡Œä¸çš„éŠæˆ²ã€‚\n" +"在é 端è£ç½®æ¸¬è©¦æ™‚,é…åˆç¶²è·¯æ–‡ä»¶ç³»çµ±(NFS)使用能更æ高效率。" #: editor/editor_node.cpp msgid "Editor" -msgstr "" +msgstr "編輯器" #: editor/editor_node.cpp editor/settings_config_dialog.cpp msgid "Editor Settings" -msgstr "" +msgstr "編輯器è¨å®š" #: editor/editor_node.cpp msgid "Editor Layout" -msgstr "" +msgstr "編輯器佈局" #: editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "" +msgstr "全螢幕顯示" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" -msgstr "" +msgstr "é–‹å•Ÿ 編輯器數據/è¨å®š 資料夾" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "" +msgstr "é–‹å•Ÿ 編輯器數據 資料夾" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" -msgstr "" +msgstr "é–‹å•Ÿ 編輯器è¨å®š 資料夾" #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" -msgstr "" +msgstr "管ç†è¼¸å‡ºæ¨¡æ¿" #: editor/editor_node.cpp msgid "Help" -msgstr "" +msgstr "幫助" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -2333,15 +2327,16 @@ msgstr "æœå°‹" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Online Docs" -msgstr "" +msgstr "線上文件" #: editor/editor_node.cpp msgid "Q&A" -msgstr "" +msgstr "Q&A" #: editor/editor_node.cpp +#, fuzzy msgid "Issue Tracker" -msgstr "" +msgstr "å•é¡Œè¿½è¹¤å™¨" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -2353,11 +2348,11 @@ msgstr "關於" #: editor/editor_node.cpp msgid "Play the project." -msgstr "éŠçŽ©æ¤å°ˆæ¡ˆ" +msgstr "é‹è¡Œæ¤å°ˆæ¡ˆã€‚" #: editor/editor_node.cpp msgid "Play" -msgstr "開始" +msgstr "é‹è¡Œ" #: editor/editor_node.cpp msgid "Pause the scene" @@ -2377,58 +2372,57 @@ msgstr "åœæ¢" #: editor/editor_node.cpp msgid "Play the edited scene." -msgstr "" +msgstr "é‹è¡Œç·¨è¼¯éŽçš„å ´æ™¯ã€‚" #: editor/editor_node.cpp msgid "Play Scene" -msgstr "" +msgstr "é‹è¡Œå ´æ™¯" #: editor/editor_node.cpp msgid "Play custom scene" -msgstr "" +msgstr "é‹è¡Œè‡ªå®šç¾©å ´æ™¯" #: editor/editor_node.cpp msgid "Play Custom Scene" -msgstr "" +msgstr "é‹è¡Œè‡ªå®šç¾©å ´æ™¯" #: editor/editor_node.cpp msgid "Changing the video driver requires restarting the editor." -msgstr "" +msgstr "åœ¨æ›´å‹•é¡¯ç¤ºé©…å‹•å¾Œï¼Œå¿…é ˆé‡æ–°é–‹å•Ÿç·¨è¼¯å™¨ã€‚" #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Save & Restart" -msgstr "å¦å˜æ–°æª”" +msgstr "儲å˜ä¸¦é‡å•Ÿ" #: editor/editor_node.cpp msgid "Spins when the editor window repaints!" -msgstr "" +msgstr "在é‡æ–°ç¹ªè£½(repaint)編輯器視窗時,來個旋轉ï¼" #: editor/editor_node.cpp msgid "Update Always" -msgstr "" +msgstr "總是自動更新" #: editor/editor_node.cpp msgid "Update Changes" -msgstr "" +msgstr "有更動時自動更新" #: editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "" +msgstr "ç¦æ¢è‡ªå‹•æ›´æ–°" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp #: editor/project_manager.cpp msgid "Import" -msgstr "" +msgstr "å°Žå…¥" #: editor/editor_node.cpp msgid "FileSystem" -msgstr "" +msgstr "文件系統" #: editor/editor_node.cpp msgid "Inspector" -msgstr "" +msgstr "屬性é¢æ¿" #: editor/editor_node.cpp #, fuzzy @@ -2437,96 +2431,95 @@ msgstr "節點" #: editor/editor_node.cpp msgid "Expand Bottom Panel" -msgstr "" +msgstr "展開底部é¢æ¿" #: editor/editor_node.cpp scene/resources/visual_shader.cpp msgid "Output" -msgstr "" +msgstr "輸出(output)" #: editor/editor_node.cpp msgid "Don't Save" -msgstr "" +msgstr "ä¸è¦å„²å˜" #: editor/editor_node.cpp msgid "Import Templates From ZIP File" -msgstr "" +msgstr "導入模æ¿ï¼ˆé€éŽZIP檔案)" #: editor/editor_node.cpp editor/project_export.cpp msgid "Export Project" -msgstr "" +msgstr "輸出專案" #: editor/editor_node.cpp msgid "Export Library" -msgstr "" +msgstr "輸出函å¼åº«" #: editor/editor_node.cpp msgid "Merge With Existing" -msgstr "" +msgstr "與ç¾æœ‰å‡½å¼åº«åˆä½µ" #: editor/editor_node.cpp msgid "Password:" -msgstr "" +msgstr "密碼:" #: editor/editor_node.cpp msgid "Open & Run a Script" -msgstr "" +msgstr "開啟並é‹è¡Œè…³æœ¬" #: editor/editor_node.cpp msgid "New Inherited" -msgstr "" +msgstr "從ç¾æœ‰å ´æ™¯ä¸å»ºç«‹" #: editor/editor_node.cpp msgid "Load Errors" -msgstr "" +msgstr "讀å–時出ç¾éŒ¯èª¤" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" -msgstr "" +msgstr "é¸æ“‡" #: editor/editor_node.cpp msgid "Open 2D Editor" -msgstr "" +msgstr "é–‹å•Ÿ2D編輯器" #: editor/editor_node.cpp msgid "Open 3D Editor" -msgstr "" +msgstr "é–‹å•Ÿ3D編輯器" #: editor/editor_node.cpp msgid "Open Script Editor" -msgstr "" +msgstr "開啟腳本編輯器" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Open Asset Library" -msgstr "" +msgstr "é–‹å•Ÿç´ æ倉庫" #: editor/editor_node.cpp -#, fuzzy msgid "Open the next Editor" -msgstr "離開編輯器嗎?" +msgstr "開啟下一個編輯器" #: editor/editor_node.cpp msgid "Open the previous Editor" -msgstr "" +msgstr "開啟上一個編輯器" #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" -msgstr "" +msgstr "å‰µå»ºç¶²æ ¼é 覽" #: editor/editor_plugin.cpp msgid "Thumbnail..." -msgstr "" +msgstr "縮圖…" #: editor/editor_plugin_settings.cpp msgid "Edit Plugin" -msgstr "" +msgstr "編輯擴充功能" #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" -msgstr "" +msgstr "已安è£çš„擴充功能:" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp msgid "Update" -msgstr "" +msgstr "æ›´æ–°" #: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -4333,6 +4326,16 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "" @@ -6373,7 +6376,7 @@ msgid "Post" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Name-less gizmo" +msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6453,8 +6456,14 @@ msgid "(empty)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animations" -msgstr "" +#, fuzzy +msgid "Animations:" +msgstr "動畫空間。" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "New Animation" +msgstr "動畫最佳化" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" @@ -6465,8 +6474,9 @@ msgid "Loop" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "Animation Frames" -msgstr "" +#, fuzzy +msgid "Animation Frames:" +msgstr "動畫空間。" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" @@ -7288,6 +7298,19 @@ msgstr "" #: editor/project_manager.cpp msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You will not be able to open the project with previous versions of " +"the engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" "\n" @@ -8827,10 +8850,6 @@ msgid "Build Project" msgstr "專案è¨å®š" #: modules/mono/editor/mono_bottom_panel.cpp -msgid "Warnings" -msgstr "" - -#: modules/mono/editor/mono_bottom_panel.cpp #, fuzzy msgid "View log" msgstr "éŽæ¿¾æª”案..." @@ -9483,6 +9502,13 @@ msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + #: scene/2d/particles_2d.cpp scene/3d/particles.cpp msgid "" "A material to process the particles is not assigned, so no behavior is " @@ -9638,6 +9664,13 @@ msgstr "" #: scene/3d/particles.cpp msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" "Nothing is visible because meshes have not been assigned to draw passes." msgstr "" @@ -9751,10 +9784,18 @@ msgid "This node has been deprecated. Use AnimationTree instead." msgstr "" #: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" #: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp msgid "Add current color as a preset" msgstr "將目å‰é¡è‰²è¨ç‚ºé è¨" @@ -9841,6 +9882,12 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Line:" +#~ msgstr "è¡Œ:" + +#~ msgid "Col:" +#~ msgstr "列:" + #, fuzzy #~ msgid "Split already exists." #~ msgstr "Autoload「%sã€å·²ç¶“å˜åœ¨!" diff --git a/main/tests/test_gdscript.cpp b/main/tests/test_gdscript.cpp index 60f9568fbd..27ff2addf3 100644 --- a/main/tests/test_gdscript.cpp +++ b/main/tests/test_gdscript.cpp @@ -911,11 +911,14 @@ MainLoop *test(TestType p_type) { List<String> cmdlargs = OS::get_singleton()->get_cmdline_args(); if (cmdlargs.empty()) { - //try editor! return NULL; } String test = cmdlargs.back()->get(); + if (!test.ends_with(".gd") && !test.ends_with(".gdc")) { + print_line("This test expects a path to a GDScript file as its last parameter. Got: " + test); + return NULL; + } FileAccess *fa = FileAccess::open(test, FileAccess::READ); diff --git a/main/tests/test_image.cpp b/main/tests/test_image.cpp deleted file mode 100644 index ee4f43bae0..0000000000 --- a/main/tests/test_image.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/*************************************************************************/ -/* test_image.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#include "test_image.h" - -#include "core/io/image_loader.h" -#include "core/math/math_funcs.h" -#include "core/os/main_loop.h" -#include "core/print_string.h" - -namespace TestImage { - -class TestMainLoop : public MainLoop { - - bool quit; - -public: - virtual void input_event(const Ref<InputEvent> &p_event) { - } - - virtual void init() { - - quit = false; - } - virtual bool iteration(float p_time) { - - return quit; - } - - virtual bool idle(float p_time) { - return quit; - } - - virtual void finish() { - } -}; - -MainLoop *test() { - - return memnew(TestMainLoop); -} -} // namespace TestImage diff --git a/main/tests/test_image.h b/main/tests/test_image.h deleted file mode 100644 index b9b3c0cb48..0000000000 --- a/main/tests/test_image.h +++ /dev/null @@ -1,45 +0,0 @@ -/*************************************************************************/ -/* test_image.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#ifndef TEST_IMAGE_H -#define TEST_IMAGE_H - -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - -#include "core/os/main_loop.h" - -namespace TestImage { - -MainLoop *test(); -} - -#endif diff --git a/main/tests/test_main.cpp b/main/tests/test_main.cpp index 49f5cc5a18..22f1d7319f 100644 --- a/main/tests/test_main.cpp +++ b/main/tests/test_main.cpp @@ -36,7 +36,6 @@ #include "test_astar.h" #include "test_gdscript.h" #include "test_gui.h" -#include "test_image.h" #include "test_math.h" #include "test_oa_hash_map.h" #include "test_ordered_hash_map.h" @@ -61,7 +60,6 @@ const char **tests_get_names() { "gd_parser", "gd_compiler", "gd_bytecode", - "image", "ordered_hash_map", "astar", NULL @@ -134,11 +132,6 @@ MainLoop *test_main(String p_test, const List<String> &p_args) { return TestGDScript::test(TestGDScript::TEST_BYTECODE); } - if (p_test == "image") { - - return TestImage::test(); - } - if (p_test == "ordered_hash_map") { return TestOrderedHashMap::test(); @@ -149,6 +142,7 @@ MainLoop *test_main(String p_test, const List<String> &p_args) { return TestAStar::test(); } + print_line("Unknown test: " + p_test); return NULL; } diff --git a/main/tests/test_math.cpp b/main/tests/test_math.cpp index a082abcaba..f341159079 100644 --- a/main/tests/test_math.cpp +++ b/main/tests/test_math.cpp @@ -30,9 +30,9 @@ #include "test_math.h" +#include "core/math/basis.h" #include "core/math/camera_matrix.h" #include "core/math/math_funcs.h" -#include "core/math/matrix3.h" #include "core/math/transform.h" #include "core/os/file_access.h" #include "core/os/keyboard.h" diff --git a/main/tests/test_shader_lang.cpp b/main/tests/test_shader_lang.cpp index ebaf7fd602..8441748cc0 100644 --- a/main/tests/test_shader_lang.cpp +++ b/main/tests/test_shader_lang.cpp @@ -110,7 +110,7 @@ static String dump_node_code(SL::Node *p_node, int p_level) { for (Map<StringName, SL::ShaderNode::Uniform>::Element *E = pnode->uniforms.front(); E; E = E->next()) { String ucode = "uniform "; - ucode += _prestr(E->get().precission); + ucode += _prestr(E->get().precision); ucode += _typestr(E->get().type); ucode += " " + String(E->key()); @@ -137,7 +137,7 @@ static String dump_node_code(SL::Node *p_node, int p_level) { for (Map<StringName, SL::ShaderNode::Varying>::Element *E = pnode->varyings.front(); E; E = E->next()) { String vcode = "varying "; - vcode += _prestr(E->get().precission); + vcode += _prestr(E->get().precision); vcode += _typestr(E->get().type); vcode += " " + String(E->key()); diff --git a/methods.py b/methods.py index f8fc6c64ef..42eac7ca75 100644 --- a/methods.py +++ b/methods.py @@ -61,14 +61,22 @@ def update_version(module_version_string=""): # NOTE: It is safe to generate this file here, since this is still executed serially fhash = open("core/version_hash.gen.h", "w") githash = "" - if os.path.isfile(".git/HEAD"): - head = open(".git/HEAD", "r").readline().strip() + gitfolder = ".git" + + if os.path.isfile(".git"): + module_folder = open(".git", "r").readline().strip() + if module_folder.startswith("gitdir: "): + gitfolder = module_folder[8:] + + if os.path.isfile(os.path.join(gitfolder, "HEAD")): + head = open(os.path.join(gitfolder, "HEAD"), "r").readline().strip() if head.startswith("ref: "): - head = ".git/" + head[5:] + head = os.path.join(gitfolder, head[5:]) if os.path.isfile(head): githash = open(head, "r").readline().strip() else: githash = head + fhash.write("#define VERSION_HASH \"" + githash + "\"") fhash.close() diff --git a/misc/dist/linux/godot.6 b/misc/dist/linux/godot.6 index e6fd1b9991..078f8bcf91 100644 --- a/misc/dist/linux/godot.6 +++ b/misc/dist/linux/godot.6 @@ -56,7 +56,7 @@ Remote filesystem (<host/IP>[:<port>] address). Password for remote filesystem. .TP \fB\-\-audio\-driver\fR <driver> -Audio driver ('PulseAudio', 'ALSA'). +Audio driver ('PulseAudio', 'ALSA', 'Dummy'). .TP \fB\-\-video\-driver\fR <driver> Video driver ('GLES3', 'GLES2'). @@ -133,7 +133,7 @@ Only parse for errors and quit (use with --script). \fB\-\-export\fR <target> Export the project using the given export target. Export only main pack if path ends with .pck or .zip. .TP -\fB\-\-export\-debug\fR +\fB\-\-export\-debug\fR <target> Like \-\-export, but use debug template. .TP \fB\-\-doctool\fR <path> @@ -149,7 +149,7 @@ Build the scripting solutions (e.g. for C# projects). Generate JSON dump of the Godot API for GDNative bindings. .TP \fB\-\-test\fR <test> -Run a unit test ('string', 'math', 'physics', 'physics_2d', 'render', 'oa_hash_map', 'gui', 'shaderlang', 'gd_tokenizer', 'gd_parser', 'gd_compiler', 'gd_bytecode', 'image', 'ordered_hash_map'). +Run a unit test ('string', 'math', 'physics', 'physics_2d', 'render', 'oa_hash_map', 'gui', 'shaderlang', 'gd_tokenizer', 'gd_parser', 'gd_compiler', 'gd_bytecode', 'ordered_hash_map', 'astar'). .SH FILES XDG_DATA_CONFIG/godot/ or ~/.config/godot/ .RS diff --git a/misc/dist/osx_tools.app/Contents/Info.plist b/misc/dist/osx_tools.app/Contents/Info.plist index 97d769c824..2d6fa4d059 100755 --- a/misc/dist/osx_tools.app/Contents/Info.plist +++ b/misc/dist/osx_tools.app/Contents/Info.plist @@ -19,11 +19,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>3.0</string> + <string>3.1</string> <key>CFBundleSignature</key> <string>godot</string> <key>CFBundleVersion</key> - <string>3.0</string> + <string>3.1</string> <key>NSHumanReadableCopyright</key> <string>© 2007-2019 Juan Linietsky, Ariel Manzur & Godot Engine contributors</string> <key>LSMinimumSystemVersion</key> diff --git a/modules/bullet/SCsub b/modules/bullet/SCsub index 0416dd7f5f..7e714ba43f 100644 --- a/modules/bullet/SCsub +++ b/modules/bullet/SCsub @@ -187,8 +187,8 @@ if env['builtin_bullet']: thirdparty_sources = [thirdparty_dir + file for file in bullet2_src] env_bullet.Append(CPPPATH=[thirdparty_dir]) - if env['target'] == "debug" or env['target'] == "release_debug": - env_bullet.Append(CCFLAGS=['-DBT_DEBUG']) + # if env['target'] == "debug" or env['target'] == "release_debug": + # env_bullet.Append(CCFLAGS=['-DBT_DEBUG']) env_thirdparty = env_bullet.Clone() env_thirdparty.disable_warnings() diff --git a/modules/bullet/bullet_types_converter.h b/modules/bullet/bullet_types_converter.h index 57c3300b3d..ba36331d07 100644 --- a/modules/bullet/bullet_types_converter.h +++ b/modules/bullet/bullet_types_converter.h @@ -31,7 +31,7 @@ #ifndef BULLET_TYPES_CONVERTER_H #define BULLET_TYPES_CONVERTER_H -#include "core/math/matrix3.h" +#include "core/math/basis.h" #include "core/math/transform.h" #include "core/math/vector3.h" #include "core/typedefs.h" diff --git a/modules/bullet/collision_object_bullet.cpp b/modules/bullet/collision_object_bullet.cpp index 91a5ed095a..ef5f21fc21 100644 --- a/modules/bullet/collision_object_bullet.cpp +++ b/modules/bullet/collision_object_bullet.cpp @@ -69,8 +69,12 @@ void CollisionObjectBullet::ShapeWrapper::claim_bt_shape(const btVector3 &body_s CollisionObjectBullet::CollisionObjectBullet(Type p_type) : RIDBullet(), type(p_type), + instance_id(0), + collisionLayer(0), + collisionMask(0), collisionsEnabled(true), m_isStatic(false), + ray_pickable(false), bt_collision_object(NULL), body_scale(1., 1., 1.), force_shape_reset(false), diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp index f62e6f5c40..f274fff3f3 100644 --- a/modules/csg/csg_shape.cpp +++ b/modules/csg/csg_shape.cpp @@ -531,6 +531,13 @@ void CSGShape::_notification(int p_what) { } } + if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { + + if (parent) { + parent->_make_dirty(); + } + } + if (p_what == NOTIFICATION_EXIT_TREE) { if (parent) diff --git a/modules/csg/doc_classes/CSGShape.xml b/modules/csg/doc_classes/CSGShape.xml index 56087cbb82..d304d0179f 100644 --- a/modules/csg/doc_classes/CSGShape.xml +++ b/modules/csg/doc_classes/CSGShape.xml @@ -29,6 +29,12 @@ Returns an individual bit on the collision mask. </description> </method> + <method name="get_meshes" qualifiers="const"> + <return type="Array"> + </return> + <description> + </description> + </method> <method name="is_root_shape" qualifiers="const"> <return type="bool"> </return> diff --git a/modules/gdnative/gdnative/basis.cpp b/modules/gdnative/gdnative/basis.cpp index 4441a03ca1..d77c7d91ac 100644 --- a/modules/gdnative/gdnative/basis.cpp +++ b/modules/gdnative/gdnative/basis.cpp @@ -30,7 +30,7 @@ #include "gdnative/basis.h" -#include "core/math/matrix3.h" +#include "core/math/basis.h" #include "core/variant.h" #ifdef __cplusplus diff --git a/modules/gdnative/gdnative_builders.py b/modules/gdnative/gdnative_builders.py index cd356ce513..5fd5971fd1 100644 --- a/modules/gdnative/gdnative_builders.py +++ b/modules/gdnative/gdnative_builders.py @@ -213,7 +213,7 @@ def _build_gdnative_api_struct_source(api): 'extern const godot_gdnative_core_api_struct api_struct = {', '\tGDNATIVE_' + api['core']['type'] + ',', '\t{' + str(api['core']['version']['major']) + ', ' + str(api['core']['version']['minor']) + '},', - '\tNULL,', + '\t(const godot_gdnative_api_struct *)&api_1_1,', '\t' + str(len(api['extensions'])) + ',', '\tgdnative_extensions_pointers,', ] diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 08ad101967..3daa006353 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -615,6 +615,9 @@ static GDScriptCompletionIdentifier _type_from_gdtype(const GDScriptDataType &p_ ci.type.script_type = p_gdtype.script_type; switch (p_gdtype.kind) { + case GDScriptDataType::UNINITIALIZED: { + ERR_EXPLAIN("Uninitialized completion. Please report a bug."); + } break; case GDScriptDataType::BUILTIN: { ci.type.kind = GDScriptParser::DataType::BUILTIN; } break; diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp index 966c02d4ec..98871ddec3 100644 --- a/modules/gdscript/gdscript_function.cpp +++ b/modules/gdscript/gdscript_function.cpp @@ -1083,7 +1083,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a if (argc >= 1) { methodstr = String(*argptrs[0]) + " (via call)"; if (err.error == Variant::CallError::CALL_ERROR_INVALID_ARGUMENT) { - err.argument -= 1; + err.argument += 1; } } } else if (methodstr == "free") { diff --git a/modules/gdscript/gdscript_function.h b/modules/gdscript/gdscript_function.h index f4058664ff..a412b2950f 100644 --- a/modules/gdscript/gdscript_function.h +++ b/modules/gdscript/gdscript_function.h @@ -45,10 +45,11 @@ class GDScript; struct GDScriptDataType { bool has_type; enum { + UNINITIALIZED, BUILTIN, NATIVE, SCRIPT, - GDSCRIPT + GDSCRIPT, } kind; Variant::Type builtin_type; StringName native_type; @@ -58,6 +59,8 @@ struct GDScriptDataType { if (!has_type) return true; // Can't type check switch (kind) { + case UNINITIALIZED: + break; case BUILTIN: { Variant::Type var_type = p_variant.get_type(); bool valid = builtin_type == var_type; @@ -113,6 +116,8 @@ struct GDScriptDataType { PropertyInfo info; if (has_type) { switch (kind) { + case UNINITIALIZED: + break; case BUILTIN: { info.type = builtin_type; } break; @@ -134,7 +139,9 @@ struct GDScriptDataType { } GDScriptDataType() : - has_type(false) {} + has_type(false), + kind(UNINITIALIZED), + builtin_type(Variant::NIL) {} }; class GDScriptFunction { diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index af189fdb7e..d620065e70 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -3494,16 +3494,20 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { tokenizer->advance(); if ((tokenizer->get_token() == GDScriptTokenizer::TK_CONSTANT && tokenizer->get_token_constant().get_type() == Variant::STRING)) { - Variant constant = tokenizer->get_token_constant(); - String icon_path = constant.operator String(); +#ifdef TOOLS_ENABLED + if (Engine::get_singleton()->is_editor_hint()) { + Variant constant = tokenizer->get_token_constant(); + String icon_path = constant.operator String(); - String abs_icon_path = icon_path.is_rel_path() ? self_path.get_base_dir().plus_file(icon_path).simplify_path() : icon_path; - if (!FileAccess::exists(abs_icon_path)) { - _set_error("No class icon found at: " + abs_icon_path); - return; - } + String abs_icon_path = icon_path.is_rel_path() ? self_path.get_base_dir().plus_file(icon_path).simplify_path() : icon_path; + if (!FileAccess::exists(abs_icon_path)) { + _set_error("No class icon found at: " + abs_icon_path); + return; + } - p_class->icon_path = icon_path; + p_class->icon_path = icon_path; + } +#endif tokenizer->advance(); } else { @@ -4553,6 +4557,7 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { //variale declaration and (eventual) initialization ClassNode::Member member; + bool autoexport = tokenizer->get_token(-1) == GDScriptTokenizer::TK_PR_EXPORT; if (current_export.type != Variant::NIL) { member._export = current_export; @@ -4720,6 +4725,25 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { _set_error("Type-less export needs a constant expression assigned to infer type."); return; } + + if (member._export.type != Variant::NIL) { + IdentifierNode *id = alloc_node<IdentifierNode>(); + id->name = member.identifier; + + ConstantNode *cn = alloc_node<ConstantNode>(); + + Variant::CallError ce; + cn->value = Variant::construct(member._export.type, NULL, 0, ce); + + OperatorNode *op = alloc_node<OperatorNode>(); + op->op = OperatorNode::OP_INIT_ASSIGN; + op->arguments.push_back(id); + op->arguments.push_back(cn); + + p_class->initializer->statements.push_back(op); + + member.initial_assignment = op; + } } if (autoexport && member.data_type.has_type) { @@ -5594,6 +5618,9 @@ GDScriptParser::DataType GDScriptParser::_type_from_gdtype(const GDScriptDataTyp result.script_type = p_gdtype.script_type; switch (p_gdtype.kind) { + case GDScriptDataType::UNINITIALIZED: { + ERR_EXPLAIN("Uninitialized datatype. Please report a bug."); + } break; case GDScriptDataType::BUILTIN: { result.kind = DataType::BUILTIN; } break; diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h index b4a705c9e7..d1ddf9aa12 100644 --- a/modules/gdscript/gdscript_parser.h +++ b/modules/gdscript/gdscript_parser.h @@ -95,6 +95,7 @@ public: } DataType() : + kind(UNRESOLVED), has_type(false), is_constant(false), is_meta_type(false), @@ -168,6 +169,7 @@ public: MultiplayerAPI::RPCMode rpc_mode; int usages; }; + struct Constant { Node *expression; DataType type; diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 0b21ba3347..5da1344595 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -139,14 +139,24 @@ void CSharpLanguage::finish() { } #endif - // Release gchandle bindings before finalizing mono runtime - script_bindings.clear(); + // Make sure all script binding gchandles are released before finalizing GDMono + for (Map<Object *, CSharpScriptBinding>::Element *E = script_bindings.front(); E; E = E->next()) { + CSharpScriptBinding &script_binding = E->value(); + + if (script_binding.gchandle.is_valid()) { + script_binding.gchandle->release(); + script_binding.inited = false; + } + } if (gdmono) { memdelete(gdmono); gdmono = NULL; } + // Clear here, after finalizing all domains to make sure there is nothing else referencing the elements. + script_bindings.clear(); + finalizing = false; } @@ -578,7 +588,7 @@ void CSharpLanguage::frame() { if (exc) { GDMonoUtils::debug_unhandled_exception(exc); - _UNREACHABLE_(); + GD_UNREACHABLE(); } } } @@ -1054,12 +1064,14 @@ CSharpLanguage::~CSharpLanguage() { singleton = NULL; } -void *CSharpLanguage::alloc_instance_binding_data(Object *p_object) { +bool CSharpLanguage::setup_csharp_script_binding(CSharpScriptBinding &r_script_binding, Object *p_object) { #ifdef DEBUG_ENABLED // I don't trust you - if (p_object->get_script_instance()) - CRASH_COND(NULL != CAST_CSHARP_INSTANCE(p_object->get_script_instance())); + if (p_object->get_script_instance()) { + CSharpInstance *csharp_instance = CAST_CSHARP_INSTANCE(p_object->get_script_instance()); + CRASH_COND(csharp_instance != NULL && !csharp_instance->is_destructing_script_instance()); + } #endif StringName type_name = p_object->get_class_name(); @@ -1068,29 +1080,21 @@ void *CSharpLanguage::alloc_instance_binding_data(Object *p_object) { const ClassDB::ClassInfo *classinfo = ClassDB::classes.getptr(type_name); while (classinfo && !classinfo->exposed) classinfo = classinfo->inherits_ptr; - ERR_FAIL_NULL_V(classinfo, NULL); + ERR_FAIL_NULL_V(classinfo, false); type_name = classinfo->name; GDMonoClass *type_class = GDMonoUtils::type_get_proxy_class(type_name); - ERR_FAIL_NULL_V(type_class, NULL); + ERR_FAIL_NULL_V(type_class, false); MonoObject *mono_object = GDMonoUtils::create_managed_for_godot_object(type_class, type_name, p_object); - ERR_FAIL_NULL_V(mono_object, NULL); - - CSharpScriptBinding script_binding; - - script_binding.type_name = type_name; - script_binding.wrapper_class = type_class; // cache - script_binding.gchandle = MonoGCHandle::create_strong(mono_object); + ERR_FAIL_NULL_V(mono_object, false); - void *data; - - { - SCOPED_MUTEX_LOCK(language_bind_mutex); - data = (void *)script_bindings.insert(p_object, script_binding); - } + r_script_binding.inited = true; + r_script_binding.type_name = type_name; + r_script_binding.wrapper_class = type_class; // cache + r_script_binding.gchandle = MonoGCHandle::create_strong(mono_object); // Tie managed to unmanaged Reference *ref = Object::cast_to<Reference>(p_object); @@ -1104,6 +1108,23 @@ void *CSharpLanguage::alloc_instance_binding_data(Object *p_object) { ref->reference(); } + return true; +} + +void *CSharpLanguage::alloc_instance_binding_data(Object *p_object) { + + CSharpScriptBinding script_binding; + + if (!setup_csharp_script_binding(script_binding, p_object)) + return NULL; + + void *data; + + { + SCOPED_MUTEX_LOCK(language_bind_mutex); + data = (void *)script_bindings.insert(p_object, script_binding); + } + return data; } @@ -1125,10 +1146,15 @@ void CSharpLanguage::free_instance_binding_data(void *p_data) { Map<Object *, CSharpScriptBinding>::Element *data = (Map<Object *, CSharpScriptBinding>::Element *)p_data; - // Set the native instance field to IntPtr.Zero, if not yet garbage collected - MonoObject *mono_object = data->value().gchandle->get_target(); - if (mono_object) { - CACHED_FIELD(GodotObject, ptr)->set_value_raw(mono_object, NULL); + CSharpScriptBinding &script_binding = data->value(); + + if (script_binding.inited) { + // Set the native instance field to IntPtr.Zero, if not yet garbage collected. + // This is done to avoid trying to dispose the native instance from Dispose(bool). + MonoObject *mono_object = script_binding.gchandle->get_target(); + if (mono_object) { + CACHED_FIELD(GodotObject, ptr)->set_value_raw(mono_object, NULL); + } } script_bindings.erase(data); @@ -1144,9 +1170,10 @@ void CSharpLanguage::refcount_incremented_instance_binding(Object *p_object) { #endif void *data = p_object->get_script_instance_binding(get_language_index()); - if (!data) - return; - Ref<MonoGCHandle> &gchandle = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get().gchandle; + CRASH_COND(!data); + + CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get(); + Ref<MonoGCHandle> &gchandle = script_binding.gchandle; if (ref_owner->reference_get_count() > 1 && gchandle->is_weak()) { // The managed side also holds a reference, hence 1 instead of 0 // The reference count was increased after the managed side was the only one referencing our owner. @@ -1175,9 +1202,10 @@ bool CSharpLanguage::refcount_decremented_instance_binding(Object *p_object) { int refcount = ref_owner->reference_get_count(); void *data = p_object->get_script_instance_binding(get_language_index()); - if (!data) - return refcount == 0; - Ref<MonoGCHandle> &gchandle = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get().gchandle; + CRASH_COND(!data); + + CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get(); + Ref<MonoGCHandle> &gchandle = script_binding.gchandle; if (refcount == 1 && gchandle.is_valid() && !gchandle->is_weak()) { // The managed side also holds a reference, hence 1 instead of 0 // If owner owner is no longer referenced by the unmanaged side, @@ -1223,6 +1251,10 @@ MonoObject *CSharpInstance::get_mono_object() const { return gchandle->get_target(); } +Object *CSharpInstance::get_owner() { + return owner; +} + bool CSharpInstance::set(const StringName &p_name, const Variant &p_value) { ERR_FAIL_COND_V(!script.is_valid(), false); @@ -1483,14 +1515,8 @@ bool CSharpInstance::_unreference_owner_unsafe() { // Unsafe refcount decrement. The managed instance also counts as a reference. // See: _reference_owner_unsafe() - bool die = static_cast<Reference *>(owner)->unreference(); - - if (die) { - memdelete(owner); - owner = NULL; - } - - return die; + // Destroying the owner here means self destructing, so we defer the owner destruction to the caller. + return static_cast<Reference *>(owner)->unreference(); } MonoObject *CSharpInstance::_internal_new_managed() { @@ -1503,27 +1529,33 @@ MonoObject *CSharpInstance::_internal_new_managed() { ERR_FAIL_NULL_V(owner, NULL); ERR_FAIL_COND_V(script.is_null(), NULL); - if (base_ref) - _reference_owner_unsafe(); - MonoObject *mono_object = mono_object_new(SCRIPTS_DOMAIN, script->script_class->get_mono_ptr()); if (!mono_object) { + // Important to clear this before destroying the script instance here script = Ref<CSharpScript>(); - owner->set_script_instance(NULL); + owner = NULL; + + bool die = _unreference_owner_unsafe(); + // Not ok for the owner to die here. If there is a situation where this can happen, it will be considered a bug. + CRASH_COND(die == true); + ERR_EXPLAIN("Failed to allocate memory for the object"); ERR_FAIL_V(NULL); } + // Tie managed to unmanaged + gchandle = MonoGCHandle::create_strong(mono_object); + + if (base_ref) + _reference_owner_unsafe(); // Here, after assigning the gchandle (for the refcount_incremented callback) + CACHED_FIELD(GodotObject, ptr)->set_value_raw(mono_object, owner); // Construct GDMonoMethod *ctor = script->script_class->get_method(CACHED_STRING_NAME(dotctor), 0); ctor->invoke_raw(mono_object, NULL); - // Tie managed to unmanaged - gchandle = MonoGCHandle::create_strong(mono_object); - return mono_object; } @@ -1536,25 +1568,36 @@ void CSharpInstance::mono_object_disposed(MonoObject *p_obj) { CSharpLanguage::get_singleton()->release_script_gchandle(p_obj, gchandle); } -void CSharpInstance::mono_object_disposed_baseref(MonoObject *p_obj, bool p_is_finalizer, bool &r_owner_deleted) { +void CSharpInstance::mono_object_disposed_baseref(MonoObject *p_obj, bool p_is_finalizer, bool &r_delete_owner, bool &r_remove_script_instance) { #ifdef DEBUG_ENABLED CRASH_COND(!base_ref); CRASH_COND(gchandle.is_null()); #endif + + r_remove_script_instance = false; + if (_unreference_owner_unsafe()) { - r_owner_deleted = true; + // Safe to self destruct here with memdelete(owner), but it's deferred to the caller to prevent future mistakes. + r_delete_owner = true; } else { - r_owner_deleted = false; + r_delete_owner = false; CSharpLanguage::get_singleton()->release_script_gchandle(p_obj, gchandle); - if (p_is_finalizer && !GDMono::get_singleton()->is_finalizing_scripts_domain()) { - // If the native instance is still alive, then it was - // referenced from another thread before the finalizer could - // unreference it and delete it, so we want to keep it. - // GC.ReRegisterForFinalize(this) is not safe because the objects - // referenced by this could have already been collected. - // Instead we will create a new managed instance here. - _internal_new_managed(); + + if (!p_is_finalizer) { + // If the native instance is still alive and Dispose() was called + // (instead of the finalizer), then we remove the script instance. + r_remove_script_instance = true; + } else if (!GDMono::get_singleton()->is_finalizing_scripts_domain()) { + // If the native instance is still alive and this is called from the finalizer, + // then it was referenced from another thread before the finalizer could + // unreference and delete it, so we want to keep it. + // GC.ReRegisterForFinalize(this) is not safe because the objects referenced by 'this' + // could have already been collected. Instead we will create a new managed instance here. + MonoObject *new_managed = _internal_new_managed(); + if (!new_managed) { + r_remove_script_instance = true; + } } } } @@ -1608,7 +1651,7 @@ bool CSharpInstance::refcount_decremented() { return ref_dying; } -MultiplayerAPI::RPCMode CSharpInstance::_member_get_rpc_mode(GDMonoClassMember *p_member) const { +MultiplayerAPI::RPCMode CSharpInstance::_member_get_rpc_mode(IMonoClassMember *p_member) const { if (p_member->has_attribute(CACHED_CLASS(RemoteAttribute))) return MultiplayerAPI::RPC_MODE_REMOTE; @@ -1750,6 +1793,8 @@ CSharpInstance::CSharpInstance() : CSharpInstance::~CSharpInstance() { + destructing_script_instance = true; + if (gchandle.is_valid()) { if (!predelete_notified && !ref_dying) { // This destructor is not called from the owners destructor. @@ -1762,9 +1807,7 @@ CSharpInstance::~CSharpInstance() { if (mono_object) { MonoException *exc = NULL; - destructing_script_instance = true; GDMonoUtils::dispose(mono_object, &exc); - destructing_script_instance = false; if (exc) { GDMonoUtils::set_pending_exception(exc); @@ -1772,11 +1815,23 @@ CSharpInstance::~CSharpInstance() { } } - gchandle->release(); // Make sure it's released + gchandle->release(); // Make sure the gchandle is released } - if (base_ref && !ref_dying && owner) { // it may be called from the owner's destructor - _unreference_owner_unsafe(); + // If not being called from the owner's destructor, and we still hold a reference to the owner + if (base_ref && !ref_dying && owner && unsafe_referenced) { + // The owner's script or script instance is being replaced (or removed) + + // Transfer ownership to an "instance binding" + + void *data = owner->get_script_instance_binding(CSharpLanguage::get_singleton()->get_language_index()); + CRASH_COND(data == NULL); + + CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get(); + CRASH_COND(!script_binding.inited); + + bool die = _unreference_owner_unsafe(); + CRASH_COND(die == true); // The "instance binding" should be holding a reference } if (script.is_valid() && owner) { @@ -2019,7 +2074,7 @@ bool CSharpScript::_get_signal(GDMonoClass *p_class, GDMonoClass *p_delegate, Ve * Returns false if there was an error, otherwise true. * If there was an error, r_prop_info and r_exported are not assigned any value. */ -bool CSharpScript::_get_member_export(GDMonoClass *p_class, GDMonoClassMember *p_member, PropertyInfo &r_prop_info, bool &r_exported) { +bool CSharpScript::_get_member_export(GDMonoClass *p_class, IMonoClassMember *p_member, PropertyInfo &r_prop_info, bool &r_exported) { StringName name = p_member->get_name(); @@ -2034,9 +2089,9 @@ bool CSharpScript::_get_member_export(GDMonoClass *p_class, GDMonoClassMember *p ManagedType type; - if (p_member->get_member_type() == GDMonoClassMember::MEMBER_TYPE_FIELD) { + if (p_member->get_member_type() == IMonoClassMember::MEMBER_TYPE_FIELD) { type = static_cast<GDMonoField *>(p_member)->get_type(); - } else if (p_member->get_member_type() == GDMonoClassMember::MEMBER_TYPE_PROPERTY) { + } else if (p_member->get_member_type() == IMonoClassMember::MEMBER_TYPE_PROPERTY) { type = static_cast<GDMonoProperty *>(p_member)->get_type(); } else { CRASH_NOW(); @@ -2050,7 +2105,7 @@ bool CSharpScript::_get_member_export(GDMonoClass *p_class, GDMonoClassMember *p return true; } - if (p_member->get_member_type() == GDMonoClassMember::MEMBER_TYPE_PROPERTY) { + if (p_member->get_member_type() == IMonoClassMember::MEMBER_TYPE_PROPERTY) { GDMonoProperty *property = static_cast<GDMonoProperty *>(p_member); if (!property->has_getter() || !property->has_setter()) { ERR_PRINTS("Cannot export property because it does not provide a getter or a setter: " + p_class->get_full_name() + "." + name.operator String()); @@ -2327,6 +2382,32 @@ StringName CSharpScript::get_instance_base_type() const { CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, bool p_isref, Variant::CallError &r_error) { /* STEP 1, CREATE */ + Ref<Reference> ref; + if (p_isref) { + // Hold it alive. Important if we have to dispose a script instance binding before creating the CSharpInstance. + ref = Ref<Reference>(static_cast<Reference *>(p_owner)); + } + + // If the object had a script instance binding, dispose it before adding the CSharpInstance + if (p_owner->has_script_instance_binding(CSharpLanguage::get_singleton()->get_language_index())) { + void *data = p_owner->get_script_instance_binding(CSharpLanguage::get_singleton()->get_language_index()); + CRASH_COND(data == NULL); + + CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get(); + if (script_binding.inited && script_binding.gchandle.is_valid()) { + MonoObject *mono_object = script_binding.gchandle->get_target(); + if (mono_object) { + MonoException *exc = NULL; + GDMonoUtils::dispose(mono_object, &exc); + + if (exc) { + GDMonoUtils::set_pending_exception(exc); + } + } + + script_binding.inited = false; + } + } CSharpInstance *instance = memnew(CSharpInstance); instance->base_ref = p_isref; @@ -2334,16 +2415,20 @@ CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_arg instance->owner = p_owner; instance->owner->set_script_instance(instance); - if (instance->base_ref) - instance->_reference_owner_unsafe(); - /* STEP 2, INITIALIZE AND CONSTRUCT */ MonoObject *mono_object = mono_object_new(SCRIPTS_DOMAIN, script_class->get_mono_ptr()); if (!mono_object) { + // Important to clear this before destroying the script instance here instance->script = Ref<CSharpScript>(); - instance->owner->set_script_instance(NULL); + instance->owner = NULL; + + bool die = instance->_unreference_owner_unsafe(); + // Not ok for the owner to die here. If there is a situation where this can happen, it will be considered a bug. + CRASH_COND(die == true); + + p_owner->set_script_instance(NULL); r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL; ERR_EXPLAIN("Failed to allocate memory for the object"); ERR_FAIL_V(NULL); @@ -2352,6 +2437,9 @@ CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_arg // Tie managed to unmanaged instance->gchandle = MonoGCHandle::create_strong(mono_object); + if (instance->base_ref) + instance->_reference_owner_unsafe(); // Here, after assigning the gchandle (for the refcount_incremented callback) + { SCOPED_MUTEX_LOCK(CSharpLanguage::get_singleton()->script_instances_mutex); instances.insert(instance->owner); diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h index 8a09be79a6..db9d6a73a2 100644 --- a/modules/mono/csharp_script.h +++ b/modules/mono/csharp_script.h @@ -127,7 +127,7 @@ class CSharpScript : public Script { bool _update_exports(); #ifdef TOOLS_ENABLED - bool _get_member_export(GDMonoClass *p_class, GDMonoClassMember *p_member, PropertyInfo &r_prop_info, bool &r_exported); + bool _get_member_export(GDMonoClass *p_class, IMonoClassMember *p_member, PropertyInfo &r_prop_info, bool &r_exported); #endif CSharpInstance *_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, bool p_isref, Variant::CallError &r_error); @@ -206,8 +206,15 @@ class CSharpInstance : public ScriptInstance { Ref<MonoGCHandle> gchandle; bool _reference_owner_unsafe(); + + /* + * If true is returned, the caller must memdelete the script instance's owner. + */ bool _unreference_owner_unsafe(); + /* + * If NULL is returned, the caller must destroy the script instance by removing it from its owner. + */ MonoObject *_internal_new_managed(); // Do not use unless you know what you are doing @@ -216,13 +223,15 @@ class CSharpInstance : public ScriptInstance { void _call_multilevel(MonoObject *p_mono_object, const StringName &p_method, const Variant **p_args, int p_argcount); - MultiplayerAPI::RPCMode _member_get_rpc_mode(GDMonoClassMember *p_member) const; + MultiplayerAPI::RPCMode _member_get_rpc_mode(IMonoClassMember *p_member) const; public: MonoObject *get_mono_object() const; _FORCE_INLINE_ bool is_destructing_script_instance() { return destructing_script_instance; } + virtual Object *get_owner(); + virtual bool set(const StringName &p_name, const Variant &p_value); virtual bool get(const StringName &p_name, Variant &r_ret) const; virtual void get_property_list(List<PropertyInfo> *p_properties) const; @@ -235,7 +244,12 @@ public: virtual void call_multilevel_reversed(const StringName &p_method, const Variant **p_args, int p_argcount); void mono_object_disposed(MonoObject *p_obj); - void mono_object_disposed_baseref(MonoObject *p_obj, bool p_is_finalizer, bool &r_owner_deleted); + + /* + * If 'r_delete_owner' is set to true, the caller must memdelete the script instance's owner. Otherwise, if + * 'r_remove_script_instance' is set to true, the caller must destroy the script instance by removing it from its owner. + */ + void mono_object_disposed_baseref(MonoObject *p_obj, bool p_is_finalizer, bool &r_delete_owner, bool &r_remove_script_instance); virtual void refcount_incremented(); virtual bool refcount_decremented(); @@ -255,6 +269,7 @@ public: }; struct CSharpScriptBinding { + bool inited; StringName type_name; GDMonoClass *wrapper_class; Ref<MonoGCHandle> gchandle; @@ -391,6 +406,8 @@ public: virtual void refcount_incremented_instance_binding(Object *p_object); virtual bool refcount_decremented_instance_binding(Object *p_object); + bool setup_csharp_script_binding(CSharpScriptBinding &r_script_binding, Object *p_object); + #ifdef DEBUG_ENABLED Vector<StackInfo> stack_trace_get_info(MonoObject *p_stack_trace); #endif diff --git a/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs b/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs index 4137f5eaef..e7d0486c76 100644 --- a/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs +++ b/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs @@ -18,8 +18,6 @@ namespace GodotSharpTools.Build [MethodImpl(MethodImplOptions.InternalCall)] private extern static string godot_icall_BuildInstance_get_MSBuildPath(); [MethodImpl(MethodImplOptions.InternalCall)] - private extern static string godot_icall_BuildInstance_get_FrameworkPath(); - [MethodImpl(MethodImplOptions.InternalCall)] private extern static string godot_icall_BuildInstance_get_MonoWindowsBinDir(); [MethodImpl(MethodImplOptions.InternalCall)] private extern static bool godot_icall_BuildInstance_get_UsingMonoMSBuildOnWindows(); @@ -34,11 +32,6 @@ namespace GodotSharpTools.Build return msbuildPath; } - private static string GetFrameworkPath() - { - return godot_icall_BuildInstance_get_FrameworkPath(); - } - private static string MonoWindowsBinDir { get @@ -85,11 +78,6 @@ namespace GodotSharpTools.Build if (customProperties != null) customPropertiesList.AddRange(customProperties); - string frameworkPath = GetFrameworkPath(); - - if (!string.IsNullOrEmpty(frameworkPath)) - customPropertiesList.Add("FrameworkPathOverride=" + frameworkPath); - string compilerArgs = BuildArguments(loggerAssemblyPath, loggerOutputDir, customPropertiesList); ProcessStartInfo startInfo = new ProcessStartInfo(GetMSBuildPath(), compilerArgs); @@ -145,11 +133,6 @@ namespace GodotSharpTools.Build if (customProperties != null) customPropertiesList.AddRange(customProperties); - string frameworkPath = GetFrameworkPath(); - - if (!string.IsNullOrEmpty(frameworkPath)) - customPropertiesList.Add("FrameworkPathOverride=" + frameworkPath); - string compilerArgs = BuildArguments(loggerAssemblyPath, loggerOutputDir, customPropertiesList); ProcessStartInfo startInfo = new ProcessStartInfo(GetMSBuildPath(), compilerArgs); diff --git a/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj b/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj index f9e9f41977..9a5dd24bb1 100644 --- a/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj +++ b/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj @@ -8,6 +8,7 @@ <RootNamespace>GodotSharpTools</RootNamespace> <AssemblyName>GodotSharpTools</AssemblyName> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + <BaseIntermediateOutputPath>obj</BaseIntermediateOutputPath> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> diff --git a/modules/mono/editor/godotsharp_builds.cpp b/modules/mono/editor/godotsharp_builds.cpp index 5d9f4d8d54..5e1c9875f0 100644 --- a/modules/mono/editor/godotsharp_builds.cpp +++ b/modules/mono/editor/godotsharp_builds.cpp @@ -100,22 +100,24 @@ MonoString *godot_icall_BuildInstance_get_MSBuildPath() { if (msbuild_tools_path.empty() || !FileAccess::exists(msbuild_tools_path)) { // Try to search it again if it wasn't found last time or if it was removed from its location msbuild_tools_path = MonoRegUtils::find_msbuild_tools_path(); - } - - if (msbuild_tools_path.length()) { - if (!msbuild_tools_path.ends_with("\\")) - msbuild_tools_path += "\\"; - return GDMonoMarshal::mono_string_from_godot(msbuild_tools_path + "MSBuild.exe"); + if (msbuild_tools_path.empty()) { + ERR_PRINTS("Cannot find executable for '" PROP_NAME_MSBUILD_VS "'. Tried with path: " + msbuild_tools_path); + return NULL; + } } - print_verbose("Cannot find executable for '" PROP_NAME_MSBUILD_VS "'. Trying with '" PROP_NAME_MSBUILD_MONO "'..."); - } // FALL THROUGH + if (!msbuild_tools_path.ends_with("\\")) + msbuild_tools_path += "\\"; + + return GDMonoMarshal::mono_string_from_godot(msbuild_tools_path + "MSBuild.exe"); + } break; case GodotSharpBuilds::MSBUILD_MONO: { String msbuild_path = GDMono::get_singleton()->get_mono_reg_info().bin_dir.plus_file("msbuild.bat"); if (!FileAccess::exists(msbuild_path)) { - WARN_PRINTS("Cannot find executable for '" PROP_NAME_MSBUILD_MONO "'. Tried with path: " + msbuild_path); + ERR_PRINTS("Cannot find executable for '" PROP_NAME_MSBUILD_MONO "'. Tried with path: " + msbuild_path); + return NULL; } return GDMonoMarshal::mono_string_from_godot(msbuild_path); @@ -124,7 +126,8 @@ MonoString *godot_icall_BuildInstance_get_MSBuildPath() { String xbuild_path = GDMono::get_singleton()->get_mono_reg_info().bin_dir.plus_file("xbuild.bat"); if (!FileAccess::exists(xbuild_path)) { - WARN_PRINTS("Cannot find executable for '" PROP_NAME_XBUILD "'. Tried with path: " + xbuild_path); + ERR_PRINTS("Cannot find executable for '" PROP_NAME_XBUILD "'. Tried with path: " + xbuild_path); + return NULL; } return GDMonoMarshal::mono_string_from_godot(xbuild_path); @@ -144,7 +147,7 @@ MonoString *godot_icall_BuildInstance_get_MSBuildPath() { } if (xbuild_path.empty()) { - WARN_PRINT("Cannot find binary for '" PROP_NAME_XBUILD "'"); + ERR_PRINT("Cannot find binary for '" PROP_NAME_XBUILD "'"); return NULL; } } else { @@ -154,7 +157,7 @@ MonoString *godot_icall_BuildInstance_get_MSBuildPath() { } if (msbuild_path.empty()) { - WARN_PRINT("Cannot find binary for '" PROP_NAME_MSBUILD_MONO "'"); + ERR_PRINT("Cannot find binary for '" PROP_NAME_MSBUILD_MONO "'"); return NULL; } } @@ -168,22 +171,6 @@ MonoString *godot_icall_BuildInstance_get_MSBuildPath() { #endif } -MonoString *godot_icall_BuildInstance_get_FrameworkPath() { - -#if defined(WINDOWS_ENABLED) - const MonoRegInfo &mono_reg_info = GDMono::get_singleton()->get_mono_reg_info(); - if (mono_reg_info.assembly_dir.length()) { - String framework_path = path_join(mono_reg_info.assembly_dir, "mono", "4.5"); - return GDMonoMarshal::mono_string_from_godot(framework_path); - } - - ERR_EXPLAIN("Cannot find Mono's assemblies directory in the registry"); - ERR_FAIL_V(NULL); -#else - return NULL; -#endif -} - MonoString *godot_icall_BuildInstance_get_MonoWindowsBinDir() { #if defined(WINDOWS_ENABLED) @@ -216,7 +203,6 @@ void GodotSharpBuilds::register_internal_calls() { mono_add_internal_call("GodotSharpTools.Build.BuildSystem::godot_icall_BuildInstance_ExitCallback", (void *)godot_icall_BuildInstance_ExitCallback); mono_add_internal_call("GodotSharpTools.Build.BuildInstance::godot_icall_BuildInstance_get_MSBuildPath", (void *)godot_icall_BuildInstance_get_MSBuildPath); - mono_add_internal_call("GodotSharpTools.Build.BuildInstance::godot_icall_BuildInstance_get_FrameworkPath", (void *)godot_icall_BuildInstance_get_FrameworkPath); mono_add_internal_call("GodotSharpTools.Build.BuildInstance::godot_icall_BuildInstance_get_MonoWindowsBinDir", (void *)godot_icall_BuildInstance_get_MonoWindowsBinDir); mono_add_internal_call("GodotSharpTools.Build.BuildInstance::godot_icall_BuildInstance_get_UsingMonoMSBuildOnWindows", (void *)godot_icall_BuildInstance_get_UsingMonoMSBuildOnWindows); } @@ -459,7 +445,11 @@ GodotSharpBuilds::GodotSharpBuilds() { // Build tool settings EditorSettings *ed_settings = EditorSettings::get_singleton(); +#ifdef WINDOWS_ENABLED + EDITOR_DEF("mono/builds/build_tool", MSBUILD_VS); +#else EDITOR_DEF("mono/builds/build_tool", MSBUILD_MONO); +#endif ed_settings->add_property_hint(PropertyInfo(Variant::INT, "mono/builds/build_tool", PROPERTY_HINT_ENUM, PROP_NAME_MSBUILD_MONO @@ -517,7 +507,7 @@ void GodotSharpBuilds::BuildProcess::start(bool p_blocking) { // Remove old issues file - String issues_file = "msbuild_issues.csv"; + String issues_file = get_msbuild_issues_filename(); DirAccessRef d = DirAccess::create_for_path(log_dirpath); if (d->file_exists(issues_file)) { Error err = d->remove(issues_file); @@ -584,7 +574,8 @@ void GodotSharpBuilds::BuildProcess::start(bool p_blocking) { exit_code = klass->get_field("exitCode")->get_int_value(mono_object); if (exit_code != 0) { - print_verbose("MSBuild finished with exit code " + itos(exit_code)); + String log_filepath = build_info.get_log_dirpath().plus_file(get_msbuild_log_filename()); + print_verbose("MSBuild exited with code: " + itos(exit_code) + ". Log file: " + log_filepath); } build_tab->on_build_exit(exit_code == 0 ? MonoBuildTab::RESULT_SUCCESS : MonoBuildTab::RESULT_ERROR); diff --git a/modules/mono/editor/godotsharp_builds.h b/modules/mono/editor/godotsharp_builds.h index 2d53583916..652d30538a 100644 --- a/modules/mono/editor/godotsharp_builds.h +++ b/modules/mono/editor/godotsharp_builds.h @@ -76,6 +76,9 @@ public: static void show_build_error_dialog(const String &p_message); + static const char *get_msbuild_issues_filename() { return "msbuild_issues.csv"; } + static const char *get_msbuild_log_filename() { return "msbuild_log.txt"; } + void build_exit_callback(const MonoBuildInfo &p_build_info, int p_exit_code); void restart_build(MonoBuildTab *p_build_tab); diff --git a/modules/mono/editor/godotsharp_editor.cpp b/modules/mono/editor/godotsharp_editor.cpp index cee4405826..17e29fba19 100644 --- a/modules/mono/editor/godotsharp_editor.cpp +++ b/modules/mono/editor/godotsharp_editor.cpp @@ -30,6 +30,7 @@ #include "godotsharp_editor.h" +#include "core/message_queue.h" #include "core/os/os.h" #include "core/project_settings.h" #include "scene/gui/control.h" @@ -114,10 +115,33 @@ bool GodotSharpEditor::_create_project_solution() { void GodotSharpEditor::_make_api_solutions_if_needed() { // I'm sick entirely of ProgressDialog + + static int attempts_left = 100; + + if (MessageQueue::get_singleton()->is_flushing() || !SceneTree::get_singleton()) { + ERR_FAIL_COND(attempts_left == 0); // You've got to be kidding + + if (SceneTree::get_singleton()) { + SceneTree::get_singleton()->connect("idle_frame", this, "_make_api_solutions_if_needed", Vector<Variant>()); + } else { + call_deferred("_make_api_solutions_if_needed"); + } + + attempts_left--; + return; + } + + // Recursion guard needed because signals don't play well with ProgressDialog either, but unlike + // the message queue, with signals the collateral damage should be minimal in the worst case. static bool recursion_guard = false; if (!recursion_guard) { recursion_guard = true; + + // Oneshot signals don't play well with ProgressDialog either, so we do it this way instead + SceneTree::get_singleton()->disconnect("idle_frame", this, "_make_api_solutions_if_needed"); + _make_api_solutions_if_needed_impl(); + recursion_guard = false; } } @@ -248,19 +272,50 @@ Error GodotSharpEditor::open_in_external_editor(const Ref<Script> &p_script, int static String vscode_path; if (vscode_path.empty() || !FileAccess::exists(vscode_path)) { - static List<String> vscode_name; - vscode_name.push_back("code"); - vscode_name.push_back("code-oss"); - vscode_name.push_back("vscode"); - vscode_name.push_back("vscode-oss"); - vscode_name.push_back("visual-studio-code"); - vscode_name.push_back("visual-studio-code-oss"); // Try to search it again if it wasn't found last time or if it was removed from its location - for (int i = 0; i < vscode_name.size(); i++) { - vscode_path = path_which(vscode_name[i]); - if (!vscode_path.empty() || FileAccess::exists(vscode_path)) + bool found = false; + + // TODO: Use initializer lists once C++11 is allowed + + // Try with hint paths + static Vector<String> hint_paths; +#ifdef WINDOWS_ENABLED + if (hint_paths.empty()) { + hint_paths.push_back(OS::get_singleton()->get_environment("ProgramFiles") + "\\Microsoft VS Code\\Code.exe"); + if (sizeof(size_t) == 8) { + hint_paths.push_back(OS::get_singleton()->get_environment("ProgramFiles(x86)") + "\\Microsoft VS Code\\Code.exe"); + } + } +#endif + for (int i = 0; i < hint_paths.size(); i++) { + vscode_path = hint_paths[i]; + if (FileAccess::exists(vscode_path)) { + found = true; break; + } + } + + if (!found) { + static Vector<String> vscode_names; + if (vscode_names.empty()) { + vscode_names.push_back("code"); + vscode_names.push_back("code-oss"); + vscode_names.push_back("vscode"); + vscode_names.push_back("vscode-oss"); + vscode_names.push_back("visual-studio-code"); + vscode_names.push_back("visual-studio-code-oss"); + } + for (int i = 0; i < vscode_names.size(); i++) { + vscode_path = path_which(vscode_names[i]); + if (!vscode_path.empty()) { + found = true; + break; + } + } } + + if (!found) + vscode_path.clear(); // Not found, clear so next time the empty() check is enough } List<String> args; @@ -434,7 +489,7 @@ GodotSharpEditor::GodotSharpEditor(EditorNode *p_editor) { String csproj_path = GodotSharpDirs::get_project_csproj_path(); if (FileAccess::exists(sln_path) && FileAccess::exists(csproj_path)) { - // We can't use EditorProgress here. It calls Main::iterarion() and the main loop is not initialized yet. + // Defer this task because EditorProgress calls Main::iterarion() and the main loop is not yet initialized. call_deferred("_make_api_solutions_if_needed"); } else { bottom_panel_btn->hide(); @@ -452,7 +507,7 @@ GodotSharpEditor::GodotSharpEditor(EditorNode *p_editor) { EditorSettings *ed_settings = EditorSettings::get_singleton(); EDITOR_DEF("mono/editor/external_editor", EDITOR_NONE); - String settings_hint_str = "None"; + String settings_hint_str = "Disabled"; #ifdef WINDOWS_ENABLED settings_hint_str += ",MonoDevelop,Visual Studio Code"; diff --git a/modules/mono/editor/godotsharp_export.cpp b/modules/mono/editor/godotsharp_export.cpp index 47341e3555..7e2487a6e7 100644 --- a/modules/mono/editor/godotsharp_export.cpp +++ b/modules/mono/editor/godotsharp_export.cpp @@ -124,7 +124,7 @@ void GodotSharpExport::_export_begin(const Set<String> &p_features, bool p_debug ERR_FAIL_COND(!load_success); Vector<String> search_dirs; - GDMonoAssembly::fill_search_dirs(search_dirs); + GDMonoAssembly::fill_search_dirs(search_dirs, build_config); Error depend_error = _get_assembly_dependencies(scripts_assembly, search_dirs, dependencies); ERR_FAIL_COND(depend_error != OK); } diff --git a/modules/mono/editor/mono_bottom_panel.cpp b/modules/mono/editor/mono_bottom_panel.cpp index 55a334bc4e..cc9822e319 100644 --- a/modules/mono/editor/mono_bottom_panel.cpp +++ b/modules/mono/editor/mono_bottom_panel.cpp @@ -156,10 +156,20 @@ void MonoBottomPanel::_build_project_pressed() { if (!FileAccess::exists(GodotSharpDirs::get_project_sln_path())) return; // No solution to build - String scripts_metadata_path = GodotSharpDirs::get_res_metadata_dir().plus_file("scripts_metadata.editor"); - Error metadata_err = CSharpProject::generate_scripts_metadata(GodotSharpDirs::get_project_csproj_path(), scripts_metadata_path); + String scripts_metadata_path_editor = GodotSharpDirs::get_res_metadata_dir().plus_file("scripts_metadata.editor"); + String scripts_metadata_path_player = GodotSharpDirs::get_res_metadata_dir().plus_file("scripts_metadata.editor_player"); + + Error metadata_err = CSharpProject::generate_scripts_metadata(GodotSharpDirs::get_project_csproj_path(), scripts_metadata_path_editor); ERR_FAIL_COND(metadata_err != OK); + if (FileAccess::exists(scripts_metadata_path_editor)) { + DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES); + Error copy_err = da->copy(scripts_metadata_path_editor, scripts_metadata_path_player); + + ERR_EXPLAIN("Failed to copy scripts metadata file"); + ERR_FAIL_COND(copy_err != OK); + } + bool build_success = GodotSharpBuilds::get_singleton()->build_project_blocking("Tools"); if (build_success) { @@ -187,7 +197,7 @@ void MonoBottomPanel::_view_log_pressed() { String log_dirpath = build_tab->get_build_info().get_log_dirpath(); - OS::get_singleton()->shell_open(log_dirpath.plus_file("msbuild_log.txt")); + OS::get_singleton()->shell_open(log_dirpath.plus_file(GodotSharpBuilds::get_msbuild_log_filename())); } } @@ -421,7 +431,7 @@ void MonoBuildTab::on_build_exit(BuildResult result) { build_exited = true; build_result = result; - _load_issues_from_file(logs_dir.plus_file("msbuild_issues.csv")); + _load_issues_from_file(logs_dir.plus_file(GodotSharpBuilds::get_msbuild_issues_filename())); _update_issues_list(); MonoBottomPanel::get_singleton()->raise_build_tab(this); diff --git a/modules/mono/glue/Managed/Files/Transform2D.cs b/modules/mono/glue/Managed/Files/Transform2D.cs index c9e5b560b2..f89c99cff2 100644 --- a/modules/mono/glue/Managed/Files/Transform2D.cs +++ b/modules/mono/glue/Managed/Files/Transform2D.cs @@ -13,16 +13,11 @@ namespace Godot { public Vector2 x; public Vector2 y; - public Vector2 o; - - public Vector2 Origin - { - get { return o; } - } + public Vector2 origin; public real_t Rotation { - get { return Mathf.Atan2(y.x, o.y); } + get { return Mathf.Atan2(y.x, origin.y); } } public Vector2 Scale @@ -41,7 +36,7 @@ namespace Godot case 1: return y; case 2: - return o; + return origin; default: throw new IndexOutOfRangeException(); } @@ -57,7 +52,7 @@ namespace Godot y = value; return; case 2: - o = value; + origin = value; return; default: throw new IndexOutOfRangeException(); @@ -106,9 +101,9 @@ namespace Godot { return new Transform2D ( - float.NaN, float.NaN, - float.NaN, float.NaN, - float.NaN, float.NaN + real_t.NaN, real_t.NaN, + real_t.NaN, real_t.NaN, + real_t.NaN, real_t.NaN ); } @@ -168,8 +163,8 @@ namespace Godot } // Extract parameters - Vector2 p1 = Origin; - Vector2 p2 = m.Origin; + Vector2 p1 = origin; + Vector2 p2 = m.origin; // Construct matrix var res = new Transform2D(Mathf.Atan2(v.y, v.x), p1.LinearInterpolate(p2, c)); @@ -189,7 +184,7 @@ namespace Godot inv.x.y = inv.y.x; inv.y.x = temp; - inv.o = inv.BasisXform(-inv.o); + inv.origin = inv.BasisXform(-inv.origin); return inv; } @@ -221,7 +216,7 @@ namespace Godot var copy = this; copy.x *= scale; copy.y *= scale; - copy.o *= scale; + copy.origin *= scale; return copy; } @@ -238,43 +233,43 @@ namespace Godot public Transform2D Translated(Vector2 offset) { var copy = this; - copy.o += copy.BasisXform(offset); + copy.origin += copy.BasisXform(offset); return copy; } public Vector2 Xform(Vector2 v) { - return new Vector2(Tdotx(v), Tdoty(v)) + o; + return new Vector2(Tdotx(v), Tdoty(v)) + origin; } public Vector2 XformInv(Vector2 v) { - Vector2 vInv = v - o; + Vector2 vInv = v - origin; return new Vector2(x.Dot(vInv), y.Dot(vInv)); } // Constants - private static readonly Transform2D _identity = new Transform2D(new Vector2(1f, 0f), new Vector2(0f, 1f), Vector2.Zero); - private static readonly Transform2D _flipX = new Transform2D(new Vector2(-1f, 0f), new Vector2(0f, 1f), Vector2.Zero); - private static readonly Transform2D _flipY = new Transform2D(new Vector2(1f, 0f), new Vector2(0f, -1f), Vector2.Zero); + private static readonly Transform2D _identity = new Transform2D(1, 0, 0, 1, 0, 0); + private static readonly Transform2D _flipX = new Transform2D(-1, 0, 0, 1, 0, 0); + private static readonly Transform2D _flipY = new Transform2D(1, 0, 0, -1, 0, 0); public static Transform2D Identity { get { return _identity; } } public static Transform2D FlipX { get { return _flipX; } } public static Transform2D FlipY { get { return _flipY; } } // Constructors - public Transform2D(Vector2 xAxis, Vector2 yAxis, Vector2 origin) + public Transform2D(Vector2 xAxis, Vector2 yAxis, Vector2 originPos) { x = xAxis; y = yAxis; - o = origin; + origin = originPos; } public Transform2D(real_t xx, real_t xy, real_t yx, real_t yy, real_t ox, real_t oy) { x = new Vector2(xx, xy); y = new Vector2(yx, yy); - o = new Vector2(ox, oy); + origin = new Vector2(ox, oy); } public Transform2D(real_t rot, Vector2 pos) @@ -282,15 +277,15 @@ namespace Godot real_t cr = Mathf.Cos(rot); real_t sr = Mathf.Sin(rot); x.x = cr; - y.y = cr; x.y = -sr; y.x = sr; - o = pos; + y.y = cr; + origin = pos; } public static Transform2D operator *(Transform2D left, Transform2D right) { - left.o = left.Xform(right.o); + left.origin = left.Xform(right.origin); real_t x0, x1, y0, y1; @@ -329,12 +324,12 @@ namespace Godot public bool Equals(Transform2D other) { - return x.Equals(other.x) && y.Equals(other.y) && o.Equals(other.o); + return x.Equals(other.x) && y.Equals(other.y) && origin.Equals(other.origin); } public override int GetHashCode() { - return x.GetHashCode() ^ y.GetHashCode() ^ o.GetHashCode(); + return x.GetHashCode() ^ y.GetHashCode() ^ origin.GetHashCode(); } public override string ToString() @@ -343,7 +338,7 @@ namespace Godot { x.ToString(), y.ToString(), - o.ToString() + origin.ToString() }); } @@ -353,7 +348,7 @@ namespace Godot { x.ToString(format), y.ToString(format), - o.ToString(format) + origin.ToString(format) }); } } diff --git a/modules/mono/glue/base_object_glue.cpp b/modules/mono/glue/base_object_glue.cpp index 88adc3e256..2963619b79 100644 --- a/modules/mono/glue/base_object_glue.cpp +++ b/modules/mono/glue/base_object_glue.cpp @@ -65,9 +65,12 @@ void godot_icall_Object_Disposed(MonoObject *p_obj, Object *p_ptr) { void *data = p_ptr->get_script_instance_binding(CSharpLanguage::get_singleton()->get_language_index()); if (data) { - Ref<MonoGCHandle> &gchandle = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get().gchandle; - if (gchandle.is_valid()) { - CSharpLanguage::release_script_gchandle(p_obj, gchandle); + CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get(); + if (script_binding.inited) { + Ref<MonoGCHandle> &gchandle = script_binding.gchandle; + if (gchandle.is_valid()) { + CSharpLanguage::release_script_gchandle(p_obj, gchandle); + } } } } @@ -85,11 +88,14 @@ void godot_icall_Reference_Disposed(MonoObject *p_obj, Object *p_ptr, bool p_is_ CSharpInstance *cs_instance = CAST_CSHARP_INSTANCE(ref->get_script_instance()); if (cs_instance) { if (!cs_instance->is_destructing_script_instance()) { - bool r_owner_deleted; - cs_instance->mono_object_disposed_baseref(p_obj, p_is_finalizer, r_owner_deleted); - if (!r_owner_deleted && !p_is_finalizer) { - // If the native instance is still alive and Dispose() was called - // (instead of the finalizer), then we remove the script instance. + bool delete_owner; + bool remove_script_instance; + + cs_instance->mono_object_disposed_baseref(p_obj, p_is_finalizer, delete_owner, remove_script_instance); + + if (delete_owner) { + memdelete(ref); + } else if (remove_script_instance) { ref->set_script_instance(NULL); } } @@ -105,9 +111,12 @@ void godot_icall_Reference_Disposed(MonoObject *p_obj, Object *p_ptr, bool p_is_ void *data = ref->get_script_instance_binding(CSharpLanguage::get_singleton()->get_language_index()); if (data) { - Ref<MonoGCHandle> &gchandle = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get().gchandle; - if (gchandle.is_valid()) { - CSharpLanguage::release_script_gchandle(p_obj, gchandle); + CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->get(); + if (script_binding.inited) { + Ref<MonoGCHandle> &gchandle = script_binding.gchandle; + if (gchandle.is_valid()) { + CSharpLanguage::release_script_gchandle(p_obj, gchandle); + } } } } @@ -138,7 +147,7 @@ MonoObject *godot_icall_Object_weakref(Object *p_obj) { wref->set_obj(p_obj); } - return GDMonoUtils::create_managed_for_godot_object(CACHED_CLASS(WeakRef), Reference::get_class_static(), Object::cast_to<Object>(wref.ptr())); + return GDMonoUtils::unmanaged_get_managed(wref.ptr()); } Error godot_icall_SignalAwaiter_connect(Object *p_source, MonoString *p_signal, Object *p_target, MonoObject *p_awaiter) { diff --git a/modules/mono/mono_gc_handle.cpp b/modules/mono/mono_gc_handle.cpp index b6c9b5f7dd..a9e2136a19 100644 --- a/modules/mono/mono_gc_handle.cpp +++ b/modules/mono/mono_gc_handle.cpp @@ -65,7 +65,7 @@ Ref<MonoGCHandle> MonoGCHandle::create_weak(MonoObject *p_object) { void MonoGCHandle::release() { #ifdef DEBUG_ENABLED - CRASH_COND(GDMono::get_singleton() == NULL); + CRASH_COND(!released && GDMono::get_singleton() == NULL); #endif if (!released && GDMono::get_singleton()->is_runtime_initialized()) { diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index 900caefe1c..b45046cb6d 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -54,17 +54,6 @@ #include "main/main.h" #endif -#ifdef MONO_PRINT_HANDLER_ENABLED -void gdmono_MonoPrintCallback(const char *string, mono_bool is_stdout) { - - if (is_stdout) { - OS::get_singleton()->print(string); - } else { - OS::get_singleton()->printerr(string); - } -} -#endif - GDMono *GDMono::singleton = NULL; namespace { @@ -132,7 +121,7 @@ void gdmono_debug_init() { CharString da_args = OS::get_singleton()->get_environment("GODOT_MONO_DEBUGGER_AGENT").utf8(); - if (da_args == "") { + if (da_args.length() == 0) { da_args = String("--debugger-agent=transport=dt_socket,address=127.0.0.1:" + itos(da_port) + ",embedding=1,server=y,suspend=" + (da_suspend ? "y,timeout=" + itos(da_timeout) : "n")) .utf8(); @@ -150,6 +139,40 @@ void gdmono_debug_init() { } // namespace +void GDMono::add_mono_shared_libs_dir_to_path() { + // By default Mono seems to search shared libraries in the following directories: + // Current working directory, @executable_path@ and PATH + // The parent directory of the image file (assembly where the dllimport method is declared) + // @executable_path@/../lib + // @executable_path@/../Libraries (__MACH__ only) + + // This does not work when embedding Mono unless we use the same directory structure. + // To fix this we append the directory containing our shared libraries to PATH. + +#if defined(WINDOWS_ENABLED) || defined(UNIX_ENABLED) + String path_var("PATH"); + String path_value = OS::get_singleton()->get_environment(path_var); + +#ifdef WINDOWS_ENABLED + path_value += ';'; + + String bundled_bin_dir = GodotSharpDirs::get_data_mono_bin_dir(); + path_value += DirAccess::exists(bundled_bin_dir) ? bundled_bin_dir : mono_reg_info.bin_dir; +#else + path_value += ':'; + + String bundled_lib_dir = GodotSharpDirs::get_data_mono_lib_dir(); + if (DirAccess::exists(bundled_lib_dir)) { + path_value += bundled_lib_dir; + } else { + // TODO: Do we need to add the lib dir when using the system installed Mono on Unix platforms? + } +#endif + + OS::get_singleton()->set_environment(path_var, path_value); +#endif +} + void GDMono::initialize() { ERR_FAIL_NULL(Engine::get_singleton()); @@ -162,11 +185,6 @@ void GDMono::initialize() { GDMonoLog::get_singleton()->initialize(); -#ifdef MONO_PRINT_HANDLER_ENABLED - mono_trace_set_print_handler(gdmono_MonoPrintCallback); - mono_trace_set_printerr_handler(gdmono_MonoPrintCallback); -#endif - String assembly_rootdir; String config_dir; @@ -223,6 +241,8 @@ void GDMono::initialize() { mono_set_dirs(assembly_rootdir.length() ? assembly_rootdir.utf8().get_data() : NULL, config_dir.length() ? config_dir.utf8().get_data() : NULL); + add_mono_shared_libs_dir_to_path(); + GDMonoAssembly::initialize(); #ifdef DEBUG_ENABLED @@ -233,6 +253,29 @@ void GDMono::initialize() { mono_install_unhandled_exception_hook(&unhandled_exception_hook, NULL); +#ifdef TOOLS_ENABLED + if (!DirAccess::exists("res://.mono")) { + // 'res://.mono/' is missing so there is nothing to load. We don't need to initialize mono, but + // we still do so unless mscorlib is missing (which is the case for projects that don't use C#). + + String mscorlib_fname("mscorlib.dll"); + + Vector<String> search_dirs; + GDMonoAssembly::fill_search_dirs(search_dirs); + + bool found = false; + for (int i = 0; i < search_dirs.size(); i++) { + if (FileAccess::exists(search_dirs[i].plus_file(mscorlib_fname))) { + found = true; + break; + } + } + + if (!found) + return; // mscorlib is missing, do not initialize mono + } +#endif + root_domain = mono_jit_init_version("GodotEngine.RootDomain", "v4.0.30319"); ERR_EXPLAIN("Mono: Failed to initialize runtime"); @@ -327,7 +370,7 @@ namespace GodotSharpBindings { uint64_t get_core_api_hash(); #ifdef TOOLS_ENABLED uint64_t get_editor_api_hash(); -#endif // TOOLS_ENABLED +#endif uint32_t get_bindings_version(); void register_generated_icalls(); @@ -344,29 +387,20 @@ void GDMono::_register_internal_calls() { #endif } -#ifdef DEBUG_METHODS_ENABLED void GDMono::_initialize_and_check_api_hashes() { - api_core_hash = ClassDB::get_api_hash(ClassDB::API_CORE); - #ifdef MONO_GLUE_ENABLED - if (api_core_hash != GodotSharpBindings::get_core_api_hash()) { + if (get_api_core_hash() != GodotSharpBindings::get_core_api_hash()) { ERR_PRINT("Mono: Core API hash mismatch!"); } -#endif #ifdef TOOLS_ENABLED - api_editor_hash = ClassDB::get_api_hash(ClassDB::API_EDITOR); - -#ifdef MONO_GLUE_ENABLED - if (api_editor_hash != GodotSharpBindings::get_editor_api_hash()) { + if (get_api_editor_hash() != GodotSharpBindings::get_editor_api_hash()) { ERR_PRINT("Mono: Editor API hash mismatch!"); } -#endif - #endif // TOOLS_ENABLED +#endif // MONO_GLUE_ENABLED } -#endif // DEBUG_METHODS_ENABLED void GDMono::add_assembly(uint32_t p_domain_id, GDMonoAssembly *p_assembly) { @@ -915,7 +949,7 @@ void GDMono::unhandled_exception_hook(MonoObject *p_exc, void *) { ScriptDebugger::get_singleton()->idle_poll(); #endif abort(); - _UNREACHABLE_(); + GD_UNREACHABLE(); } GDMono::GDMono() { @@ -946,12 +980,10 @@ GDMono::GDMono() { editor_tools_assembly = NULL; #endif -#ifdef DEBUG_METHODS_ENABLED api_core_hash = 0; #ifdef TOOLS_ENABLED api_editor_hash = 0; #endif -#endif } GDMono::~GDMono() { @@ -1074,17 +1106,9 @@ void _GodotSharp::_bind_methods() { _GodotSharp::_GodotSharp() { singleton = this; - queue_empty = true; -#ifndef NO_THREADS - queue_mutex = Mutex::create(); -#endif } _GodotSharp::~_GodotSharp() { singleton = NULL; - - if (queue_mutex) { - memdelete(queue_mutex); - } } diff --git a/modules/mono/mono_gd/gd_mono.h b/modules/mono/mono_gd/gd_mono.h index 13de3061b3..785b65ce13 100644 --- a/modules/mono/mono_gd/gd_mono.h +++ b/modules/mono/mono_gd/gd_mono.h @@ -134,13 +134,11 @@ class GDMono { Error _load_tools_domain(); #endif -#ifdef DEBUG_METHODS_ENABLED uint64_t api_core_hash; #ifdef TOOLS_ENABLED uint64_t api_editor_hash; #endif void _initialize_and_check_api_hashes(); -#endif GDMonoLog *gdmono_log; @@ -148,15 +146,23 @@ class GDMono { MonoRegInfo mono_reg_info; #endif + void add_mono_shared_libs_dir_to_path(); + protected: static GDMono *singleton; public: -#ifdef DEBUG_METHODS_ENABLED - uint64_t get_api_core_hash() { return api_core_hash; } + uint64_t get_api_core_hash() { + if (api_core_hash == 0) + api_core_hash = ClassDB::get_api_hash(ClassDB::API_CORE); + return api_core_hash; + } #ifdef TOOLS_ENABLED - uint64_t get_api_editor_hash() { return api_editor_hash; } -#endif + uint64_t get_api_editor_hash() { + if (api_editor_hash == 0) + api_editor_hash = ClassDB::get_api_hash(ClassDB::API_EDITOR); + return api_editor_hash; + } #endif #ifdef TOOLS_ENABLED @@ -268,12 +274,6 @@ class _GodotSharp : public Object { List<NodePath *> np_delete_queue; List<RID *> rid_delete_queue; - bool queue_empty; - -#ifndef NO_THREADS - Mutex *queue_mutex; -#endif - protected: static _GodotSharp *singleton; static void _bind_methods(); diff --git a/modules/mono/mono_gd/gd_mono_class_member.h b/modules/mono/mono_gd/gd_mono_class_member.h index 5bd21178ba..3058b18c05 100644 --- a/modules/mono/mono_gd/gd_mono_class_member.h +++ b/modules/mono/mono_gd/gd_mono_class_member.h @@ -35,7 +35,7 @@ #include <mono/metadata/object.h> -class GDMonoClassMember { +class IMonoClassMember { public: enum Visibility { PRIVATE, @@ -51,7 +51,7 @@ public: MEMBER_TYPE_METHOD }; - virtual ~GDMonoClassMember() {} + virtual ~IMonoClassMember() {} virtual MemberType get_member_type() = 0; diff --git a/modules/mono/mono_gd/gd_mono_field.cpp b/modules/mono/mono_gd/gd_mono_field.cpp index a9d993412e..48fa380456 100644 --- a/modules/mono/mono_gd/gd_mono_field.cpp +++ b/modules/mono/mono_gd/gd_mono_field.cpp @@ -505,20 +505,20 @@ bool GDMonoField::is_static() { return mono_field_get_flags(mono_field) & MONO_FIELD_ATTR_STATIC; } -GDMonoClassMember::Visibility GDMonoField::get_visibility() { +IMonoClassMember::Visibility GDMonoField::get_visibility() { switch (mono_field_get_flags(mono_field) & MONO_FIELD_ATTR_FIELD_ACCESS_MASK) { case MONO_FIELD_ATTR_PRIVATE: - return GDMonoClassMember::PRIVATE; + return IMonoClassMember::PRIVATE; case MONO_FIELD_ATTR_FAM_AND_ASSEM: - return GDMonoClassMember::PROTECTED_AND_INTERNAL; + return IMonoClassMember::PROTECTED_AND_INTERNAL; case MONO_FIELD_ATTR_ASSEMBLY: - return GDMonoClassMember::INTERNAL; + return IMonoClassMember::INTERNAL; case MONO_FIELD_ATTR_FAMILY: - return GDMonoClassMember::PROTECTED; + return IMonoClassMember::PROTECTED; case MONO_FIELD_ATTR_PUBLIC: - return GDMonoClassMember::PUBLIC; + return IMonoClassMember::PUBLIC; default: - ERR_FAIL_V(GDMonoClassMember::PRIVATE); + ERR_FAIL_V(IMonoClassMember::PRIVATE); } } diff --git a/modules/mono/mono_gd/gd_mono_field.h b/modules/mono/mono_gd/gd_mono_field.h index 319e895ab9..a3244101d8 100644 --- a/modules/mono/mono_gd/gd_mono_field.h +++ b/modules/mono/mono_gd/gd_mono_field.h @@ -35,7 +35,7 @@ #include "gd_mono_class_member.h" #include "gd_mono_header.h" -class GDMonoField : public GDMonoClassMember { +class GDMonoField : public IMonoClassMember { GDMonoClass *owner; MonoClassField *mono_field; @@ -47,15 +47,15 @@ class GDMonoField : public GDMonoClassMember { MonoCustomAttrInfo *attributes; public: - virtual MemberType get_member_type() { return MEMBER_TYPE_FIELD; } + virtual MemberType get_member_type() GD_FINAL { return MEMBER_TYPE_FIELD; } - virtual StringName get_name() { return name; } + virtual StringName get_name() GD_FINAL { return name; } - virtual bool is_static(); - virtual Visibility get_visibility(); + virtual bool is_static() GD_FINAL; + virtual Visibility get_visibility() GD_FINAL; - virtual bool has_attribute(GDMonoClass *p_attr_class); - virtual MonoObject *get_attribute(GDMonoClass *p_attr_class); + virtual bool has_attribute(GDMonoClass *p_attr_class) GD_FINAL; + virtual MonoObject *get_attribute(GDMonoClass *p_attr_class) GD_FINAL; void fetch_attributes(); _FORCE_INLINE_ ManagedType get_type() const { return type; } diff --git a/modules/mono/mono_gd/gd_mono_header.h b/modules/mono/mono_gd/gd_mono_header.h index 23306d11b9..dd8c047386 100644 --- a/modules/mono/mono_gd/gd_mono_header.h +++ b/modules/mono/mono_gd/gd_mono_header.h @@ -35,7 +35,7 @@ class GDMonoAssembly; class GDMonoClass; -class GDMonoClassMember; +class IMonoClassMember; class GDMonoField; class GDMonoProperty; class GDMonoMethod; diff --git a/modules/mono/mono_gd/gd_mono_internals.cpp b/modules/mono/mono_gd/gd_mono_internals.cpp index 0574b0025d..0daa394e63 100644 --- a/modules/mono/mono_gd/gd_mono_internals.cpp +++ b/modules/mono/mono_gd/gd_mono_internals.cpp @@ -72,7 +72,7 @@ void tie_managed_to_unmanaged(MonoObject *managed, Object *unmanaged) { void unhandled_exception(MonoException *p_exc) { mono_unhandled_exception((MonoObject *)p_exc); // prints the exception as well abort(); - _UNREACHABLE_(); + GD_UNREACHABLE(); } } // namespace GDMonoInternals diff --git a/modules/mono/mono_gd/gd_mono_internals.h b/modules/mono/mono_gd/gd_mono_internals.h index 09cb59ee6b..2d77bde27c 100644 --- a/modules/mono/mono_gd/gd_mono_internals.h +++ b/modules/mono/mono_gd/gd_mono_internals.h @@ -45,7 +45,7 @@ void tie_managed_to_unmanaged(MonoObject *managed, Object *unmanaged); * Do not call this function directly. * Use GDMonoUtils::debug_unhandled_exception(MonoException *) instead. */ -_NO_RETURN_ void unhandled_exception(MonoException *p_exc); +GD_NORETURN void unhandled_exception(MonoException *p_exc); } // namespace GDMonoInternals diff --git a/modules/mono/mono_gd/gd_mono_log.cpp b/modules/mono/mono_gd/gd_mono_log.cpp index fa4850ca8c..ec89df1959 100644 --- a/modules/mono/mono_gd/gd_mono_log.cpp +++ b/modules/mono/mono_gd/gd_mono_log.cpp @@ -52,7 +52,7 @@ static int log_level_get_id(const char *p_log_level) { return -1; } -void gdmono_MonoLogCallback(const char *log_domain, const char *log_level, const char *message, mono_bool fatal, void *user_data) { +static void mono_log_callback(const char *log_domain, const char *log_level, const char *message, mono_bool fatal, void *user_data) { FileAccess *f = GDMonoLog::get_singleton()->get_log_file(); @@ -153,7 +153,7 @@ void GDMonoLog::initialize() { if (log_file) { print_verbose("Mono: Logfile is " + log_file_path); - mono_trace_set_log_handler(gdmono_MonoLogCallback, this); + mono_trace_set_log_handler(mono_log_callback, this); } else { OS::get_singleton()->printerr("Mono: No log file, using default log handler\n"); } diff --git a/modules/mono/mono_gd/gd_mono_marshal.h b/modules/mono/mono_gd/gd_mono_marshal.h index 5e2deea43c..4f86e02f87 100644 --- a/modules/mono/mono_gd/gd_mono_marshal.h +++ b/modules/mono/mono_gd/gd_mono_marshal.h @@ -206,9 +206,10 @@ enum { // In the future we may force this if we want to ref return these structs #ifdef GD_MONO_FORCE_INTEROP_STRUCT_COPY -// Sometimes clang-format can be an ass -GD_STATIC_ASSERT(MATCHES_Vector2 &&MATCHES_Rect2 &&MATCHES_Transform2D &&MATCHES_Vector3 && - MATCHES_Basis &&MATCHES_Quat &&MATCHES_Transform &&MATCHES_AABB &&MATCHES_Color &&MATCHES_Plane); +/* clang-format off */ +GD_STATIC_ASSERT(MATCHES_Vector2 && MATCHES_Rect2 && MATCHES_Transform2D && MATCHES_Vector3 && + MATCHES_Basis && MATCHES_Quat && MATCHES_Transform && MATCHES_AABB && MATCHES_Color &&MATCHES_Plane); +/* clang-format on */ #endif } // namespace InteropLayout diff --git a/modules/mono/mono_gd/gd_mono_method.cpp b/modules/mono/mono_gd/gd_mono_method.cpp index 071d852ce7..7f11e4671d 100644 --- a/modules/mono/mono_gd/gd_mono_method.cpp +++ b/modules/mono/mono_gd/gd_mono_method.cpp @@ -78,20 +78,20 @@ bool GDMonoMethod::is_static() { return mono_method_get_flags(mono_method, NULL) & MONO_METHOD_ATTR_STATIC; } -GDMonoClassMember::Visibility GDMonoMethod::get_visibility() { +IMonoClassMember::Visibility GDMonoMethod::get_visibility() { switch (mono_method_get_flags(mono_method, NULL) & MONO_METHOD_ATTR_ACCESS_MASK) { case MONO_METHOD_ATTR_PRIVATE: - return GDMonoClassMember::PRIVATE; + return IMonoClassMember::PRIVATE; case MONO_METHOD_ATTR_FAM_AND_ASSEM: - return GDMonoClassMember::PROTECTED_AND_INTERNAL; + return IMonoClassMember::PROTECTED_AND_INTERNAL; case MONO_METHOD_ATTR_ASSEM: - return GDMonoClassMember::INTERNAL; + return IMonoClassMember::INTERNAL; case MONO_METHOD_ATTR_FAMILY: - return GDMonoClassMember::PROTECTED; + return IMonoClassMember::PROTECTED; case MONO_METHOD_ATTR_PUBLIC: - return GDMonoClassMember::PUBLIC; + return IMonoClassMember::PUBLIC; default: - ERR_FAIL_V(GDMonoClassMember::PRIVATE); + ERR_FAIL_V(IMonoClassMember::PRIVATE); } } diff --git a/modules/mono/mono_gd/gd_mono_method.h b/modules/mono/mono_gd/gd_mono_method.h index c4a994177e..fc035d387c 100644 --- a/modules/mono/mono_gd/gd_mono_method.h +++ b/modules/mono/mono_gd/gd_mono_method.h @@ -35,7 +35,7 @@ #include "gd_mono_class_member.h" #include "gd_mono_header.h" -class GDMonoMethod : public GDMonoClassMember { +class GDMonoMethod : public IMonoClassMember { StringName name; @@ -57,17 +57,17 @@ class GDMonoMethod : public GDMonoClassMember { MonoMethod *mono_method; public: - virtual MemberType get_member_type() { return MEMBER_TYPE_METHOD; } + virtual MemberType get_member_type() GD_FINAL { return MEMBER_TYPE_METHOD; } - virtual StringName get_name() { return name; } + virtual StringName get_name() GD_FINAL { return name; } - virtual bool is_static(); + virtual bool is_static() GD_FINAL; - virtual Visibility get_visibility(); + virtual Visibility get_visibility() GD_FINAL; - virtual bool has_attribute(GDMonoClass *p_attr_class); - virtual MonoObject *get_attribute(GDMonoClass *p_attr_class); - virtual void fetch_attributes(); + virtual bool has_attribute(GDMonoClass *p_attr_class) GD_FINAL; + virtual MonoObject *get_attribute(GDMonoClass *p_attr_class) GD_FINAL; + void fetch_attributes(); _FORCE_INLINE_ int get_parameters_count() { return params_count; } _FORCE_INLINE_ ManagedType get_return_type() { return return_type; } diff --git a/modules/mono/mono_gd/gd_mono_property.cpp b/modules/mono/mono_gd/gd_mono_property.cpp index 04fd8b8e63..5842e26241 100644 --- a/modules/mono/mono_gd/gd_mono_property.cpp +++ b/modules/mono/mono_gd/gd_mono_property.cpp @@ -80,24 +80,24 @@ bool GDMonoProperty::is_static() { return mono_method_get_flags(prop_method, NULL) & MONO_METHOD_ATTR_STATIC; } -GDMonoClassMember::Visibility GDMonoProperty::get_visibility() { +IMonoClassMember::Visibility GDMonoProperty::get_visibility() { MonoMethod *prop_method = mono_property_get_get_method(mono_property); if (prop_method == NULL) prop_method = mono_property_get_set_method(mono_property); switch (mono_method_get_flags(prop_method, NULL) & MONO_METHOD_ATTR_ACCESS_MASK) { case MONO_METHOD_ATTR_PRIVATE: - return GDMonoClassMember::PRIVATE; + return IMonoClassMember::PRIVATE; case MONO_METHOD_ATTR_FAM_AND_ASSEM: - return GDMonoClassMember::PROTECTED_AND_INTERNAL; + return IMonoClassMember::PROTECTED_AND_INTERNAL; case MONO_METHOD_ATTR_ASSEM: - return GDMonoClassMember::INTERNAL; + return IMonoClassMember::INTERNAL; case MONO_METHOD_ATTR_FAMILY: - return GDMonoClassMember::PROTECTED; + return IMonoClassMember::PROTECTED; case MONO_METHOD_ATTR_PUBLIC: - return GDMonoClassMember::PUBLIC; + return IMonoClassMember::PUBLIC; default: - ERR_FAIL_V(GDMonoClassMember::PRIVATE); + ERR_FAIL_V(IMonoClassMember::PRIVATE); } } diff --git a/modules/mono/mono_gd/gd_mono_property.h b/modules/mono/mono_gd/gd_mono_property.h index 934ce68904..d8a9f69ffb 100644 --- a/modules/mono/mono_gd/gd_mono_property.h +++ b/modules/mono/mono_gd/gd_mono_property.h @@ -35,7 +35,7 @@ #include "gd_mono_class_member.h" #include "gd_mono_header.h" -class GDMonoProperty : public GDMonoClassMember { +class GDMonoProperty : public IMonoClassMember { GDMonoClass *owner; MonoProperty *mono_property; @@ -47,15 +47,15 @@ class GDMonoProperty : public GDMonoClassMember { MonoCustomAttrInfo *attributes; public: - virtual MemberType get_member_type() { return MEMBER_TYPE_PROPERTY; } + virtual MemberType get_member_type() GD_FINAL { return MEMBER_TYPE_PROPERTY; } - virtual StringName get_name() { return name; } + virtual StringName get_name() GD_FINAL { return name; } - virtual bool is_static(); - virtual Visibility get_visibility(); + virtual bool is_static() GD_FINAL; + virtual Visibility get_visibility() GD_FINAL; - virtual bool has_attribute(GDMonoClass *p_attr_class); - virtual MonoObject *get_attribute(GDMonoClass *p_attr_class); + virtual bool has_attribute(GDMonoClass *p_attr_class) GD_FINAL; + virtual MonoObject *get_attribute(GDMonoClass *p_attr_class) GD_FINAL; void fetch_attributes(); bool has_getter(); diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp index 97a00a504d..ac6ccac3a7 100644 --- a/modules/mono/mono_gd/gd_mono_utils.cpp +++ b/modules/mono/mono_gd/gd_mono_utils.cpp @@ -265,61 +265,70 @@ void clear_cache() { } MonoObject *unmanaged_get_managed(Object *unmanaged) { - if (unmanaged) { - if (unmanaged->get_script_instance()) { - CSharpInstance *cs_instance = CAST_CSHARP_INSTANCE(unmanaged->get_script_instance()); - if (cs_instance) { - return cs_instance->get_mono_object(); - } + if (!unmanaged) + return NULL; + + if (unmanaged->get_script_instance()) { + CSharpInstance *cs_instance = CAST_CSHARP_INSTANCE(unmanaged->get_script_instance()); + + if (cs_instance) { + return cs_instance->get_mono_object(); } + } + + // If the owner does not have a CSharpInstance... + + void *data = unmanaged->get_script_instance_binding(CSharpLanguage::get_singleton()->get_language_index()); + + if (!data) + return NULL; - // If the owner does not have a CSharpInstance... + CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->value(); - void *data = unmanaged->get_script_instance_binding(CSharpLanguage::get_singleton()->get_language_index()); + if (!script_binding.inited) { + // Already had a binding that needs to be setup + CSharpLanguage::get_singleton()->setup_csharp_script_binding(script_binding, unmanaged); - if (data) { - CSharpScriptBinding &script_binding = ((Map<Object *, CSharpScriptBinding>::Element *)data)->value(); + if (!script_binding.inited) + return NULL; + } - Ref<MonoGCHandle> &gchandle = script_binding.gchandle; - ERR_FAIL_COND_V(gchandle.is_null(), NULL); + Ref<MonoGCHandle> &gchandle = script_binding.gchandle; + ERR_FAIL_COND_V(gchandle.is_null(), NULL); - MonoObject *target = gchandle->get_target(); + MonoObject *target = gchandle->get_target(); - if (target) - return target; + if (target) + return target; - CSharpLanguage::get_singleton()->release_script_gchandle(gchandle); + CSharpLanguage::get_singleton()->release_script_gchandle(gchandle); - // Create a new one + // Create a new one #ifdef DEBUG_ENABLED - CRASH_COND(script_binding.type_name == StringName()); - CRASH_COND(script_binding.wrapper_class == NULL); + CRASH_COND(script_binding.type_name == StringName()); + CRASH_COND(script_binding.wrapper_class == NULL); #endif - MonoObject *mono_object = GDMonoUtils::create_managed_for_godot_object(script_binding.wrapper_class, script_binding.type_name, unmanaged); - ERR_FAIL_NULL_V(mono_object, NULL); - - gchandle->set_handle(MonoGCHandle::new_strong_handle(mono_object), MonoGCHandle::STRONG_HANDLE); + MonoObject *mono_object = GDMonoUtils::create_managed_for_godot_object(script_binding.wrapper_class, script_binding.type_name, unmanaged); + ERR_FAIL_NULL_V(mono_object, NULL); - // Tie managed to unmanaged - Reference *ref = Object::cast_to<Reference>(unmanaged); + gchandle->set_handle(MonoGCHandle::new_strong_handle(mono_object), MonoGCHandle::STRONG_HANDLE); - if (ref) { - // Unsafe refcount increment. The managed instance also counts as a reference. - // This way if the unmanaged world has no references to our owner - // but the managed instance is alive, the refcount will be 1 instead of 0. - // See: godot_icall_Reference_Dtor(MonoObject *p_obj, Object *p_ptr) + // Tie managed to unmanaged + Reference *ref = Object::cast_to<Reference>(unmanaged); - ref->reference(); - } + if (ref) { + // Unsafe refcount increment. The managed instance also counts as a reference. + // This way if the unmanaged world has no references to our owner + // but the managed instance is alive, the refcount will be 1 instead of 0. + // See: godot_icall_Reference_Dtor(MonoObject *p_obj, Object *p_ptr) - return mono_object; - } + ref->reference(); } - return NULL; + return mono_object; } void set_main_thread(MonoThread *p_thread) { @@ -565,7 +574,7 @@ void debug_send_unhandled_exception_error(MonoException *p_exc) { if (unexpected_exc) { GDMonoInternals::unhandled_exception(unexpected_exc); - _UNREACHABLE_(); + GD_UNREACHABLE(); } Vector<ScriptLanguage::StackInfo> _si; @@ -604,7 +613,7 @@ void debug_unhandled_exception(MonoException *p_exc) { ScriptDebugger::get_singleton()->idle_poll(); #endif GDMonoInternals::unhandled_exception(p_exc); // prints the exception as well - _UNREACHABLE_(); + GD_UNREACHABLE(); } void print_unhandled_exception(MonoException *p_exc) { @@ -615,7 +624,7 @@ void set_pending_exception(MonoException *p_exc) { #ifdef HAS_PENDING_EXCEPTIONS if (get_runtime_invoke_count() == 0) { debug_unhandled_exception(p_exc); - _UNREACHABLE_(); + GD_UNREACHABLE(); } if (!mono_runtime_set_pending_exception(p_exc, false)) { @@ -624,7 +633,7 @@ void set_pending_exception(MonoException *p_exc) { } #else debug_unhandled_exception(p_exc); - _UNREACHABLE_(); + GD_UNREACHABLE(); #endif } diff --git a/modules/mono/mono_gd/gd_mono_utils.h b/modules/mono/mono_gd/gd_mono_utils.h index 6febc50a5f..e88bf1ced9 100644 --- a/modules/mono/mono_gd/gd_mono_utils.h +++ b/modules/mono/mono_gd/gd_mono_utils.h @@ -44,7 +44,7 @@ #define UNLIKELY_UNHANDLED_EXCEPTION(m_exc) \ if (unlikely(m_exc != NULL)) { \ GDMonoUtils::debug_unhandled_exception(m_exc); \ - _UNREACHABLE_(); \ + GD_UNREACHABLE(); \ } namespace GDMonoUtils { @@ -214,7 +214,7 @@ void set_exception_message(MonoException *p_exc, String message); void debug_print_unhandled_exception(MonoException *p_exc); void debug_send_unhandled_exception_error(MonoException *p_exc); -_NO_RETURN_ void debug_unhandled_exception(MonoException *p_exc); +GD_NORETURN void debug_unhandled_exception(MonoException *p_exc); void print_unhandled_exception(MonoException *p_exc); /** diff --git a/modules/mono/utils/macros.h b/modules/mono/utils/macros.h index 94e1193adf..e44f254e1c 100644 --- a/modules/mono/utils/macros.h +++ b/modules/mono/utils/macros.h @@ -31,39 +31,53 @@ #ifndef UTIL_MACROS_H #define UTIL_MACROS_H -#define _GD_VARNAME_CONCAT_B(m_ignore, m_name) m_name -#define _GD_VARNAME_CONCAT_A(m_a, m_b, m_c) _GD_VARNAME_CONCAT_B(hello there, m_a##m_b##m_c) -#define _GD_VARNAME_CONCAT(m_a, m_b, m_c) _GD_VARNAME_CONCAT_A(m_a, m_b, m_c) -#define GD_UNIQUE_NAME(m_name) _GD_VARNAME_CONCAT(m_name, _, __COUNTER__) +#define _GD_VARNAME_CONCAT_B_(m_ignore, m_name) m_name +#define _GD_VARNAME_CONCAT_A_(m_a, m_b, m_c) _GD_VARNAME_CONCAT_B_(hello there, m_a##m_b##m_c) +#define _GD_VARNAME_CONCAT_(m_a, m_b, m_c) _GD_VARNAME_CONCAT_A_(m_a, m_b, m_c) +#define GD_UNIQUE_NAME(m_name) _GD_VARNAME_CONCAT_(m_name, _, __COUNTER__) -// noreturn +// static assert +// TODO: Get rid of this macro once we upgrade to C++11 -#if __cpp_static_assert +#ifdef __cpp_static_assert #define GD_STATIC_ASSERT(m_cond) static_assert((m_cond), "Condition '" #m_cond "' failed") #else #define GD_STATIC_ASSERT(m_cond) typedef int GD_UNIQUE_NAME(godot_static_assert)[((m_cond) ? 1 : -1)] #endif -#undef _NO_RETURN_ +// final +// TODO: Get rid of this macro once we upgrade to C++11 + +#if (__cplusplus >= 201103L) +#define GD_FINAL final +#else +#define GD_FINAL +#endif + +// noreturn +// TODO: Get rid of this macro once we upgrade to C++11 -#ifdef __GNUC__ -#define _NO_RETURN_ __attribute__((noreturn)) -#elif _MSC_VER -#define _NO_RETURN_ __declspec(noreturn) +#if (__cplusplus >= 201103L) +#define GD_NORETURN [[noreturn]] +#elif defined(__GNUC__) +#define GD_NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define GD_NORETURN __declspec(noreturn) #else -#error Platform or compiler not supported +#define GD_NORETURN +#pragma message "Macro GD_NORETURN will have no effect" #endif // unreachable #if defined(_MSC_VER) -#define _UNREACHABLE_() __assume(0) +#define GD_UNREACHABLE() __assume(0) #elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 -#define _UNREACHABLE_() __builtin_unreachable() +#define GD_UNREACHABLE() __builtin_unreachable() #else -#define _UNREACHABLE_() \ - CRASH_NOW(); \ - do { \ +#define GD_UNREACHABLE() \ + CRASH_NOW(); \ + do { \ } while (true); #endif diff --git a/modules/mono/utils/osx_utils.cpp b/modules/mono/utils/osx_utils.cpp index 5ed982200f..f1362be249 100644 --- a/modules/mono/utils/osx_utils.cpp +++ b/modules/mono/utils/osx_utils.cpp @@ -30,10 +30,10 @@ #include "osx_utils.h" -#include "core/print_string.h" - #ifdef OSX_ENABLED +#include "core/print_string.h" + #include <CoreFoundation/CoreFoundation.h> #include <CoreServices/CoreServices.h> diff --git a/modules/visual_script/doc_classes/VisualScriptCondition.xml b/modules/visual_script/doc_classes/VisualScriptCondition.xml index 4657436c8f..a7b1028c0c 100644 --- a/modules/visual_script/doc_classes/VisualScriptCondition.xml +++ b/modules/visual_script/doc_classes/VisualScriptCondition.xml @@ -4,7 +4,7 @@ A Visual Script node which branches the flow. </brief_description> <description> - A Visual Script node that checks a [bool] input port. If [code]true[/code], it will exit via the “true†sequence port. If [code]false[/code], it will exit via the "false" sequence port. After exiting either, it exits via the “done†port. Sequence ports may be left disconnected. + A Visual Script node that checks a [bool] input port. If [code]true[/code], it will exit via the "true" sequence port. If [code]false[/code], it will exit via the "false" sequence port. After exiting either, it exits via the "done" port. Sequence ports may be left disconnected. [b]Input Ports:[/b] - Sequence: [code]if (cond) is[/code] - Data (boolean): [code]cond[/code] diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 3f80d19fa1..6b65c1a529 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -282,7 +282,9 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt NSWindow *window = (NSWindow *)[notification object]; CGFloat newBackingScaleFactor = [window backingScaleFactor]; CGFloat oldBackingScaleFactor = [[[notification userInfo] objectForKey:@"NSBackingPropertyOldScaleFactorKey"] doubleValue]; - [OS_OSX::singleton->window_view setWantsBestResolutionOpenGLSurface:YES]; + if (OS_OSX::singleton->is_hidpi_allowed()) { + [OS_OSX::singleton->window_view setWantsBestResolutionOpenGLSurface:YES]; + } if (newBackingScaleFactor != oldBackingScaleFactor) { //Set new display scale and window size diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp index ea0193b8ed..ea4f63b49c 100644 --- a/platform/uwp/os_uwp.cpp +++ b/platform/uwp/os_uwp.cpp @@ -739,6 +739,11 @@ String OSUWP::get_environment(const String &p_var) const { return ""; }; +bool OSUWP::set_environment(const String &p_var, const String &p_value) const { + + return false; +} + String OSUWP::get_stdin_string(bool p_block) { return String(); diff --git a/platform/uwp/os_uwp.h b/platform/uwp/os_uwp.h index 491c9bce03..5475c4e60a 100644 --- a/platform/uwp/os_uwp.h +++ b/platform/uwp/os_uwp.h @@ -213,6 +213,7 @@ public: virtual bool has_environment(const String &p_var) const; virtual String get_environment(const String &p_var) const; + virtual bool set_environment(const String &p_var, const String &p_value) const; virtual void set_clipboard(const String &p_text); virtual String get_clipboard() const; diff --git a/platform/windows/export/export.cpp b/platform/windows/export/export.cpp index ca2f71ca18..141ab96370 100644 --- a/platform/windows/export/export.cpp +++ b/platform/windows/export/export.cpp @@ -73,7 +73,7 @@ Error EditorExportPlatformWindows::export_project(const Ref<EditorExportPreset> } #endif - String icon_path = p_preset->get("application/icon"); + String icon_path = ProjectSettings::get_singleton()->globalize_path(p_preset->get("application/icon")); String file_verion = p_preset->get("application/file_version"); String product_version = p_preset->get("application/product_version"); String company_name = p_preset->get("application/company_name"); @@ -137,7 +137,7 @@ Error EditorExportPlatformWindows::export_project(const Ref<EditorExportPreset> void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_options) { EditorExportPlatformPC::get_export_options(r_options); - r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/icon", PROPERTY_HINT_GLOBAL_FILE, "*.ico"), "")); + r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/icon", PROPERTY_HINT_FILE, "*.ico"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/file_version"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/product_version"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/company_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Company Name"), "")); diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 35f9d541ef..9ae1be9afd 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -2604,6 +2604,11 @@ String OS_Windows::get_environment(const String &p_var) const { return ""; } +bool OS_Windows::set_environment(const String &p_var, const String &p_value) const { + + return (bool)SetEnvironmentVariableW(p_var.c_str(), p_value.c_str()); +} + String OS_Windows::get_stdin_string(bool p_block) { if (p_block) { diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 4936a69120..771789c86b 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -268,6 +268,7 @@ public: virtual bool has_environment(const String &p_var) const; virtual String get_environment(const String &p_var) const; + virtual bool set_environment(const String &p_var, const String &p_value) const; virtual void set_clipboard(const String &p_text); virtual String get_clipboard() const; diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index e0924fc982..ca4b02bb49 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -3004,7 +3004,9 @@ bool OS_X11::is_vsync_enabled() const { */ void OS_X11::set_context(int p_context) { + char *config_name = NULL; XClassHint *classHint = XAllocClassHint(); + if (classHint) { char *wm_class = (char *)"Godot"; @@ -3015,13 +3017,15 @@ void OS_X11::set_context(int p_context) { if (p_context == CONTEXT_ENGINE) { classHint->res_name = (char *)"Godot_Engine"; - wm_class = (char *)((String)GLOBAL_GET("application/config/name")).utf8().ptrw(); + config_name = strdup((char *)((String)GLOBAL_GET("application/config/name")).utf8().ptrw()); + wm_class = config_name; } classHint->res_class = wm_class; XSetClassHint(x11_display, x11_window, classHint); XFree(classHint); + free(config_name); } } diff --git a/scene/2d/canvas_item.cpp b/scene/2d/canvas_item.cpp index dced688899..2739f71543 100644 --- a/scene/2d/canvas_item.cpp +++ b/scene/2d/canvas_item.cpp @@ -131,19 +131,15 @@ void CanvasItemMaterial::_update_shader() { code += "\tVERTEX.xy /= vec2(h_frames, v_frames);\n"; - code += "\tint total_frames = particles_anim_h_frames * particles_anim_v_frames;\n"; - code += "\tint frame = int(float(total_frames) * INSTANCE_CUSTOM.z);\n"; - code += "\tif (particles_anim_loop) {\n"; - code += "\t\tframe = abs(frame) % total_frames;\n"; + code += "\tfloat particle_total_frames = float(particles_anim_h_frames * particles_anim_v_frames);\n"; + code += "\tfloat particle_frame = floor(INSTANCE_CUSTOM.z * float(particle_total_frames));\n"; + code += "\tif (!particles_anim_loop) {\n"; + code += "\t\tparticle_frame = clamp(particle_frame, 0.0, particle_total_frames - 1.0);\n"; code += "\t} else {\n"; - code += "\t\tframe = clamp(frame, 0, total_frames - 1);\n"; - code += "\t}\n"; - - code += "\tfloat frame_w = 1.0 / h_frames;\n"; - code += "\tfloat frame_h = 1.0 / v_frames;\n"; - code += "\tUV.x = UV.x * frame_w + frame_w * float(frame % particles_anim_h_frames);\n"; - code += "\tUV.y = UV.y * frame_h + frame_h * float(frame / particles_anim_h_frames);\n"; - + code += "\t\tparticle_frame = mod(particle_frame, particle_total_frames);\n"; + code += "\t}"; + code += "\tUV /= vec2(h_frames, v_frames);\n"; + code += "\tUV += vec2(mod(particle_frame, h_frames) / h_frames, floor(particle_frame / h_frames) / v_frames);\n"; code += "}\n"; } diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index 21feb6e226..eaed1da0ba 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -594,7 +594,7 @@ void CPUParticles2D::_particles_process(float p_delta) { if (restart_time >= prev_time) { restart = true; if (fractional_delta) { - local_delta = (1.0 - restart_time + time) * lifetime; + local_delta = (lifetime - restart_time + time) * lifetime; } } else if (restart_time < time) { diff --git a/scene/2d/particles_2d.cpp b/scene/2d/particles_2d.cpp index c005c33a19..9701998f5d 100644 --- a/scene/2d/particles_2d.cpp +++ b/scene/2d/particles_2d.cpp @@ -30,6 +30,7 @@ #include "particles_2d.h" +#include "core/os/os.h" #include "scene/resources/particles_material.h" #include "scene/scene_string_names.h" @@ -213,6 +214,10 @@ bool Particles2D::get_fractional_delta() const { String Particles2D::get_configuration_warning() const { + if (OS::get_singleton()->get_current_video_driver() == OS::VIDEO_DRIVER_GLES2) { + return TTR("GPU-based particles are not supported by the GLES2 video driver.\nUse the CPUParticles2D node instead. You can use the \"Convert to CPUParticles\" option for this purpose."); + } + String warnings; if (process_material.is_null()) { diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp index 2add50dd5d..78b2958400 100644 --- a/scene/3d/particles.cpp +++ b/scene/3d/particles.cpp @@ -29,6 +29,8 @@ /*************************************************************************/ #include "particles.h" + +#include "core/os/os.h" #include "scene/resources/particles_material.h" #include "servers/visual_server.h" @@ -224,6 +226,10 @@ bool Particles::get_fractional_delta() const { String Particles::get_configuration_warning() const { + if (OS::get_singleton()->get_current_video_driver() == OS::VIDEO_DRIVER_GLES2) { + return TTR("GPU-based particles are not supported by the GLES2 video driver.\nUse the CPUParticles node instead. You can use the \"Convert to CPUParticles\" option for this purpose."); + } + String warnings; bool meshes_found = false; diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index a3fa2ac98d..6b70eef662 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -382,36 +382,30 @@ void Sprite3D::_draw() { VS::get_singleton()->immediate_clear(immediate); if (!texture.is_valid()) - return; //no texuture no life + return; Vector2 tsize = texture->get_size(); if (tsize.x == 0 || tsize.y == 0) return; - Size2i s; - Rect2 src_rect; - - if (region) { - - s = region_rect.size; - src_rect = region_rect; - } else { - s = texture->get_size(); - s = s / Size2(hframes, vframes); + Rect2 base_rect; + if (region) + base_rect = region_rect; + else + base_rect = Rect2(0, 0, texture->get_width(), texture->get_height()); - src_rect.size = s; - src_rect.position.x += (frame % hframes) * s.x; - src_rect.position.y += (frame / hframes) * s.y; - } + Size2 frame_size = base_rect.size / Size2(hframes, vframes); + Point2 frame_offset = Point2(frame % hframes, frame / hframes); + frame_offset *= frame_size; - Point2 ofs = get_offset(); + Point2 dest_offset = get_offset(); if (is_centered()) - ofs -= s / 2; - - Rect2 dst_rect(ofs, s); + dest_offset -= frame_size / 2; + Rect2 src_rect(base_rect.position + frame_offset, frame_size); + Rect2 final_dst_rect(dest_offset, frame_size); Rect2 final_rect; Rect2 final_src_rect; - if (!texture->get_rect_region(dst_rect, src_rect, final_rect, final_src_rect)) + if (!texture->get_rect_region(final_dst_rect, src_rect, final_rect, final_src_rect)) return; if (final_rect.size.x == 0 || final_rect.size.y == 0) diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h index 175072edcf..9bba848298 100644 --- a/scene/animation/animation_player.h +++ b/scene/animation/animation_player.h @@ -114,10 +114,12 @@ private: Variant value_accum; uint64_t accum_pass; Variant capture; - PropertyAnim() { - accum_pass = 0; - object = NULL; - } + + PropertyAnim() : + owner(NULL), + special(SP_NONE), + object(NULL), + accum_pass(0) {} }; Map<StringName, PropertyAnim> property_anim; @@ -129,25 +131,28 @@ private: float bezier_accum; Object *object; uint64_t accum_pass; - BezierAnim() { - accum_pass = 0; - bezier_accum = 0; - object = NULL; - } + + BezierAnim() : + owner(NULL), + bezier_accum(0.0), + object(NULL), + accum_pass(0) {} }; Map<StringName, BezierAnim> bezier_anim; - TrackNodeCache() { - skeleton = NULL; - spatial = NULL; - node = NULL; - accum_pass = 0; - bone_idx = -1; - node_2d = NULL; - audio_playing = false; - animation_playing = false; - } + TrackNodeCache() : + id(0), + node(NULL), + spatial(NULL), + node_2d(NULL), + skeleton(NULL), + bone_idx(-1), + accum_pass(0), + audio_playing(false), + audio_start(0.0), + audio_len(0.0), + animation_playing(false) {} }; struct TrackNodeCacheKey { diff --git a/scene/animation/animation_tree_player.h b/scene/animation/animation_tree_player.h index 12e514f7d5..9ec6325969 100644 --- a/scene/animation/animation_tree_player.h +++ b/scene/animation/animation_tree_player.h @@ -109,6 +109,14 @@ private: Variant value; bool skip; + + Track() : + id(0), + object(NULL), + spatial(NULL), + skeleton(NULL), + bone_idx(-1), + skip(false) {} }; typedef Map<TrackKey, Track> TrackMap; diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index 4b1c7b3db7..7aca6acd00 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -737,7 +737,7 @@ ColorPicker::ColorPicker() : bt_add_preset = memnew(Button); bbc->add_child(bt_add_preset); - bt_add_preset->set_tooltip(TTR("Add current color as a preset")); + bt_add_preset->set_tooltip(TTR("Add current color as a preset.")); bt_add_preset->connect("pressed", this, "_add_preset_pressed"); } diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 09fbb39866..4abde6cc0f 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -2645,24 +2645,26 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } case KEY_UP: { - if (k->get_shift()) - _pre_shift_selection(); if (k->get_alt()) { scancode_handled = false; break; } #ifndef APPLE_STYLE_KEYS if (k->get_command()) { - _scroll_lines_up(); - break; - } #else if (k->get_command() && k->get_alt()) { +#endif _scroll_lines_up(); break; } + if (k->get_shift()) { + _pre_shift_selection(); + } + +#ifdef APPLE_STYLE_KEYS if (k->get_command()) { + cursor_set_line(0); } else #endif @@ -2696,24 +2698,24 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } case KEY_DOWN: { - if (k->get_shift()) - _pre_shift_selection(); if (k->get_alt()) { scancode_handled = false; break; } #ifndef APPLE_STYLE_KEYS if (k->get_command()) { - _scroll_lines_down(); - break; - } - #else if (k->get_command() && k->get_alt()) { +#endif _scroll_lines_down(); break; } + if (k->get_shift()) { + _pre_shift_selection(); + } + +#ifdef APPLE_STYLE_KEYS if (k->get_command()) { cursor_set_line(get_last_unhidden_line(), true, false, 9999); } else diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 6aa3891035..04d7107fa4 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1311,7 +1311,7 @@ Node *Node::_get_child_by_name(const StringName &p_name) const { return NULL; } -Node *Node::_get_node(const NodePath &p_path) const { +Node *Node::get_node_or_null(const NodePath &p_path) const { if (!data.inside_tree && p_path.is_absolute()) { ERR_EXPLAIN("Can't use get_node() with absolute paths from outside the active scene tree."); @@ -1376,7 +1376,7 @@ Node *Node::_get_node(const NodePath &p_path) const { Node *Node::get_node(const NodePath &p_path) const { - Node *node = _get_node(p_path); + Node *node = get_node_or_null(p_path); if (!node) { ERR_EXPLAIN("Node not found: " + p_path); ERR_FAIL_COND_V(!node, NULL); @@ -1386,7 +1386,7 @@ Node *Node::get_node(const NodePath &p_path) const { bool Node::has_node(const NodePath &p_path) const { - return _get_node(p_path) != NULL; + return get_node_or_null(p_path) != NULL; } Node *Node::find_node(const String &p_mask, bool p_recursive, bool p_owned) const { @@ -2709,6 +2709,7 @@ void Node::_bind_methods() { ClassDB::bind_method(D_METHOD("get_child", "idx"), &Node::get_child); ClassDB::bind_method(D_METHOD("has_node", "path"), &Node::has_node); ClassDB::bind_method(D_METHOD("get_node", "path"), &Node::get_node); + ClassDB::bind_method(D_METHOD("get_node_or_null", "path"), &Node::get_node_or_null); ClassDB::bind_method(D_METHOD("get_parent"), &Node::get_parent); ClassDB::bind_method(D_METHOD("find_node", "mask", "recursive", "owned"), &Node::find_node, DEFVAL(true), DEFVAL(true)); ClassDB::bind_method(D_METHOD("find_parent", "mask"), &Node::find_parent); diff --git a/scene/main/node.h b/scene/main/node.h index 1c451ef567..e6189389cb 100644 --- a/scene/main/node.h +++ b/scene/main/node.h @@ -153,7 +153,6 @@ private: void _print_tree_pretty(const String prefix, const bool last); void _print_tree(const Node *p_node); - Node *_get_node(const NodePath &p_path) const; Node *_get_child_by_name(const StringName &p_name) const; void _replace_connections_target(Node *p_new_target); @@ -252,6 +251,7 @@ public: Node *get_child(int p_index) const; bool has_node(const NodePath &p_path) const; Node *get_node(const NodePath &p_path) const; + Node *get_node_or_null(const NodePath &p_path) const; Node *find_node(const String &p_mask, bool p_recursive = true, bool p_owned = true) const; bool has_node_and_resource(const NodePath &p_path) const; Node *get_node_and_resource(const NodePath &p_path, RES &r_res, Vector<StringName> &r_leftover_subpath, bool p_last_is_property = true) const; diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index f713851090..689f18a09d 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -1154,13 +1154,14 @@ void SceneTree::_update_root_rect() { float viewport_aspect = desired_res.aspect(); float video_mode_aspect = video_mode.aspect(); + if (use_font_oversampling && stretch_aspect == STRETCH_ASPECT_IGNORE) { + WARN_PRINT("Font oversampling only works with the resize modes 'Keep Width', 'Keep Height', and 'Expand'."); + } + if (stretch_aspect == STRETCH_ASPECT_IGNORE || ABS(viewport_aspect - video_mode_aspect) < CMP_EPSILON) { //same aspect or ignore aspect viewport_size = desired_res; screen_size = video_mode; - if (use_font_oversampling) { - WARN_PRINT("Font oversampling only works with the following resize modes 'Keep Width', 'Keep Height', and 'Expand'.") - } } else if (viewport_aspect < video_mode_aspect) { // screen ratio is smaller vertically diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index a50a09f095..078d880d0e 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -145,6 +145,7 @@ #include "scene/resources/mesh_library.h" #include "scene/resources/packed_scene.h" #include "scene/resources/particles_material.h" +#include "scene/resources/physics_material.h" #include "scene/resources/plane_shape.h" #include "scene/resources/polygon_path_finder.h" #include "scene/resources/primitive_meshes.h" @@ -207,7 +208,6 @@ #include "scene/3d/visibility_notifier.h" #include "scene/animation/skeleton_ik.h" #include "scene/resources/environment.h" -#include "scene/resources/physics_material.h" #endif static Ref<ResourceFormatSaverText> resource_saver_text; @@ -602,8 +602,8 @@ void register_scene_types() { ClassDB::register_class<SpatialVelocityTracker>(); - ClassDB::register_class<PhysicsMaterial>(); #endif + ClassDB::register_class<PhysicsMaterial>(); ClassDB::register_class<World>(); ClassDB::register_class<Environment>(); ClassDB::register_class<World2D>(); diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index 7ed51a2f8f..c7a815d8a4 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -682,6 +682,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_stylebox("tab_fg", "TabContainer", sb_expand(make_stylebox(tab_current_png, 4, 4, 4, 1, 16, 4, 16, 4), 2, 2, 2, 2)); theme->set_stylebox("tab_bg", "TabContainer", sb_expand(make_stylebox(tab_behind_png, 5, 5, 5, 1, 16, 6, 16, 4), 3, 0, 3, 3)); + theme->set_stylebox("tab_disabled", "TabContainer", sb_expand(make_stylebox(tab_disabled_png, 5, 5, 5, 1, 16, 6, 16, 4), 3, 0, 3, 3)); theme->set_stylebox("panel", "TabContainer", tc_sb); theme->set_icon("increment", "TabContainer", make_icon(scroll_button_right_png)); @@ -707,6 +708,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_stylebox("tab_fg", "Tabs", sb_expand(make_stylebox(tab_current_png, 4, 3, 4, 1, 16, 3, 16, 2), 2, 2, 2, 2)); theme->set_stylebox("tab_bg", "Tabs", sb_expand(make_stylebox(tab_behind_png, 5, 4, 5, 1, 16, 5, 16, 2), 3, 3, 3, 3)); + theme->set_stylebox("tab_disabled", "Tabs", sb_expand(make_stylebox(tab_disabled_png, 5, 5, 5, 1, 16, 6, 16, 4), 3, 0, 3, 3)); theme->set_stylebox("panel", "Tabs", tc_sb); theme->set_stylebox("button_pressed", "Tabs", make_stylebox(button_pressed_png, 4, 4, 4, 4)); theme->set_stylebox("button", "Tabs", make_stylebox(button_normal_png, 4, 4, 4, 4)); diff --git a/scene/resources/default_theme/tab_disabled.png b/scene/resources/default_theme/tab_disabled.png Binary files differnew file mode 100644 index 0000000000..97157a58dd --- /dev/null +++ b/scene/resources/default_theme/tab_disabled.png diff --git a/scene/resources/default_theme/theme_data.h b/scene/resources/default_theme/theme_data.h index 353e7eddbe..2b251e5f81 100644 --- a/scene/resources/default_theme/theme_data.h +++ b/scene/resources/default_theme/theme_data.h @@ -71,7 +71,7 @@ static const unsigned char dropdown_png[] = { }; static const unsigned char error_icon_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x20, 0x8, 0x4, 0x0, 0x0, 0x0, 0xd9, 0x73, 0xb2, 0x7f, 0x0, 0x0, 0x0, 0x36, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0xa0, 0x36, 0x18, 0x5, 0xa3, 0x60, 0x14, 0xfc, 0x87, 0x40, 0x38, 0xb, 0x21, 0x6, 0x6, 0x18, 0x62, 0x98, 0x6, 0xa0, 0xb1, 0xfe, 0xe3, 0x67, 0xd1, 0xc2, 0x0, 0x10, 0xc4, 0xc5, 0x82, 0x91, 0x43, 0xc0, 0xb, 0xb8, 0x15, 0x63, 0x78, 0x6, 0x5, 0x8c, 0x82, 0x51, 0x30, 0xa, 0x0, 0x35, 0xa3, 0x4c, 0xb4, 0x7c, 0x8a, 0x7, 0x6, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x0, 0x2, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xb, 0x13, 0x0, 0x0, 0xb, 0x13, 0x1, 0x0, 0x9a, 0x9c, 0x18, 0x0, 0x0, 0x0, 0x7, 0x74, 0x49, 0x4d, 0x45, 0x7, 0xe2, 0xb, 0xf, 0x0, 0x22, 0x18, 0xc, 0x35, 0xef, 0x18, 0x0, 0x0, 0x0, 0xe, 0x49, 0x44, 0x41, 0x54, 0x28, 0xcf, 0x63, 0x60, 0x18, 0x5, 0xa3, 0x0, 0x1, 0x0, 0x2, 0x10, 0x0, 0x1, 0x14, 0xc2, 0xc0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char focus_png[] = { @@ -386,6 +386,10 @@ static const unsigned char tab_current_png[] = { 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, 0x28, 0x2d, 0xf, 0x53, 0x0, 0x0, 0x0, 0x99, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x3d, 0x48, 0x5b, 0x58, 0x66, 0x5b, 0x57, 0x65, 0x57, 0x54, 0x62, 0x55, 0x53, 0x62, 0x4a, 0x46, 0x52, 0x46, 0x41, 0x4e, 0x45, 0x41, 0x4d, 0x55, 0x52, 0x60, 0x44, 0x41, 0x4c, 0x53, 0x50, 0x5e, 0x43, 0x40, 0x4b, 0x52, 0x4e, 0x5d, 0x41, 0x3e, 0x4a, 0x4f, 0x4d, 0x5a, 0x3f, 0x3d, 0x48, 0x4e, 0x4b, 0x59, 0x3e, 0x3c, 0x47, 0x4d, 0x4a, 0x58, 0x3d, 0x3b, 0x46, 0x4b, 0x49, 0x54, 0x3c, 0x3a, 0x44, 0x4b, 0x47, 0x54, 0x3b, 0x39, 0x43, 0x3b, 0x39, 0x42, 0x3b, 0x38, 0x43, 0x3b, 0x38, 0x42, 0x3a, 0x37, 0x41, 0x39, 0x37, 0x41, 0x3a, 0x38, 0x41, 0x39, 0x36, 0x3f, 0x38, 0x36, 0x3f, 0x39, 0x36, 0x40, 0x38, 0x36, 0x40, 0x37, 0x35, 0x3e, 0x37, 0x34, 0x3e, 0x36, 0x35, 0x3d, 0xd7, 0x41, 0xa4, 0x19, 0x0, 0x0, 0x0, 0x11, 0x74, 0x52, 0x4e, 0x53, 0x4, 0xa, 0x11, 0x19, 0x1f, 0x22, 0x24, 0x15, 0x25, 0x34, 0x3f, 0x46, 0x47, 0x48, 0x77, 0xef, 0xef, 0xa3, 0x31, 0x6b, 0xc2, 0x0, 0x0, 0x0, 0x60, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x55, 0xca, 0x85, 0xd, 0xc0, 0x40, 0x14, 0xc3, 0x50, 0x27, 0xf7, 0xd5, 0xfd, 0xd7, 0x2d, 0xa6, 0x4c, 0x16, 0x3f, 0xb9, 0xd0, 0x11, 0x90, 0xa3, 0x52, 0x77, 0x49, 0x8e, 0x86, 0xd2, 0x26, 0x16, 0x7b, 0x59, 0x32, 0x68, 0x3, 0x37, 0x5d, 0xe0, 0x59, 0x3b, 0x74, 0x31, 0x67, 0x4b, 0x3b, 0xf, 0x71, 0xe5, 0xe8, 0xf, 0xec, 0xc0, 0x1f, 0x28, 0xf8, 0x2, 0x14, 0xf9, 0x42, 0xa8, 0xfc, 0x21, 0x3b, 0xe4, 0x1, 0x6f, 0x0, 0x18, 0x11, 0xac, 0x99, 0xc0, 0xe, 0x25, 0x22, 0x2d, 0x76, 0xc6, 0x13, 0x1a, 0x8, 0xac, 0x78, 0xfc, 0x1c, 0x70, 0x30, 0x2b, 0xba, 0xe9, 0x31, 0x70, 0xc1, 0x7f, 0x3b, 0x77, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; +static const unsigned char tab_disabled_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x3, 0xa7, 0x7a, 0x54, 0x58, 0x74, 0x52, 0x61, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x65, 0x78, 0x69, 0x66, 0x0, 0x0, 0x78, 0xda, 0xcd, 0x96, 0x59, 0x92, 0xe3, 0x2a, 0x10, 0x45, 0xff, 0x59, 0x45, 0x2f, 0x81, 0xcc, 0x24, 0x19, 0x96, 0x83, 0x18, 0x22, 0x7a, 0x7, 0x6f, 0xf9, 0x7d, 0xc1, 0x48, 0x1e, 0xab, 0x5c, 0x65, 0xfb, 0xe3, 0x89, 0xb0, 0x40, 0x29, 0x48, 0xae, 0xee, 0x41, 0xc8, 0xa6, 0xfd, 0xf7, 0xb7, 0x9b, 0x3f, 0x38, 0x28, 0x45, 0x6f, 0x9c, 0x86, 0xe8, 0x93, 0xf7, 0x16, 0x87, 0x4b, 0x2e, 0x71, 0x46, 0x23, 0xda, 0xd3, 0x71, 0xaa, 0xc9, 0xba, 0x79, 0x5e, 0x17, 0x76, 0x6f, 0x5c, 0xc5, 0xcd, 0x71, 0x83, 0x11, 0x12, 0xd4, 0x72, 0xba, 0xf4, 0x6d, 0xf5, 0xcf, 0x88, 0xeb, 0x79, 0x40, 0x70, 0x2b, 0xbe, 0x5d, 0xc7, 0x4d, 0x28, 0x2b, 0x4f, 0x5c, 0x89, 0xe8, 0x48, 0x3c, 0xf, 0x19, 0x33, 0x8f, 0xf6, 0xea, 0x17, 0x57, 0x22, 0xe1, 0x53, 0x9c, 0xd6, 0xb5, 0x49, 0x6b, 0x5c, 0x76, 0x17, 0x8f, 0xb3, 0x7e, 0x5c, 0x56, 0xda, 0x95, 0xfc, 0xf6, 0xda, 0x5, 0x98, 0x51, 0x15, 0xf9, 0x84, 0xd, 0x37, 0x21, 0xb1, 0x38, 0xc7, 0x31, 0x8b, 0x40, 0x81, 0x24, 0xc9, 0x32, 0xda, 0x79, 0xde, 0x19, 0x91, 0x80, 0xb6, 0x43, 0x9d, 0x45, 0x84, 0x1e, 0x7b, 0x67, 0x8e, 0xe6, 0x8d, 0x79, 0x47, 0xeb, 0xc6, 0x3b, 0x9b, 0x57, 0x5c, 0xae, 0xad, 0x30, 0xd6, 0xaf, 0xe, 0xfe, 0xc6, 0xa3, 0x15, 0x27, 0xbd, 0x89, 0xcb, 0x31, 0xd, 0xdf, 0x52, 0xdb, 0x67, 0xbe, 0xba, 0x91, 0xcb, 0x31, 0xc5, 0x9d, 0x77, 0xbd, 0xd7, 0xd8, 0x7b, 0x3b, 0x3d, 0x5d, 0x76, 0x1e, 0x4e, 0x79, 0xb3, 0x1e, 0x6a, 0x7f, 0x94, 0xd9, 0x42, 0xc7, 0xd, 0x56, 0xca, 0x1c, 0xe6, 0x51, 0x2, 0x7e, 0x8a, 0x76, 0x98, 0x25, 0xa1, 0x44, 0x3c, 0x62, 0x1, 0xb1, 0xa, 0x9a, 0x1b, 0x4a, 0x31, 0x94, 0x88, 0xe1, 0x69, 0x27, 0x47, 0x95, 0x32, 0x75, 0x6a, 0xb3, 0x2e, 0x54, 0x20, 0xd1, 0x71, 0xe3, 0x80, 0x9a, 0xb9, 0xb0, 0xcc, 0x58, 0x94, 0xc0, 0x89, 0xcb, 0x84, 0xe2, 0x46, 0xa1, 0xce, 0x1, 0x78, 0xaa, 0x91, 0x8, 0x3e, 0x5, 0xd4, 0x4, 0x61, 0x3e, 0xb4, 0xd0, 0x9c, 0x37, 0xcd, 0xf9, 0xa, 0x45, 0xcc, 0x5c, 0x9, 0x3d, 0x99, 0x90, 0x8c, 0x30, 0xe2, 0xae, 0x98, 0x47, 0xc1, 0x57, 0xca, 0x91, 0xa8, 0xf7, 0xb1, 0x74, 0x89, 0x6c, 0x3c, 0xbc, 0x82, 0x2e, 0x1e, 0x6b, 0x1a, 0x32, 0x6, 0xb9, 0x71, 0x46, 0x2f, 0x0, 0xa1, 0xbe, 0x3c, 0xd5, 0xe9, 0xef, 0x2c, 0xe6, 0x62, 0xdd, 0xd8, 0xb, 0xb0, 0x2, 0x82, 0x3a, 0x6d, 0x8e, 0x78, 0xc0, 0x6c, 0xb7, 0x53, 0x8a, 0x4d, 0xe9, 0xbc, 0xb6, 0x64, 0x72, 0x16, 0xf4, 0x53, 0xeb, 0x8c, 0x3d, 0xbd, 0x1a, 0x14, 0xea, 0x4a, 0x0, 0x8b, 0x30, 0xb7, 0x42, 0xc, 0x9, 0x8, 0x58, 0x4f, 0xa2, 0xe4, 0xc9, 0x6, 0xe6, 0x40, 0x4, 0x1f, 0x23, 0xf8, 0x64, 0x28, 0x67, 0x71, 0xbc, 0x81, 0x0, 0xa9, 0x72, 0x25, 0xd3, 0xc1, 0x46, 0xc4, 0x3, 0x4e, 0xe4, 0x31, 0x37, 0xc6, 0x4, 0x9a, 0x7d, 0x59, 0xf9, 0x14, 0xc6, 0xd6, 0x2, 0x10, 0x2a, 0x1e, 0xaf, 0x4a, 0x1c, 0x2f, 0x10, 0x60, 0x39, 0xa7, 0x58, 0x3f, 0xc1, 0x45, 0xac, 0xa1, 0xac, 0xa2, 0xce, 0xa8, 0xaa, 0xd7, 0xa0, 0x51, 0x93, 0x66, 0x2f, 0xde, 0x79, 0xf5, 0xde, 0x7, 0x3f, 0xf6, 0xa8, 0x1c, 0x24, 0xb8, 0xa0, 0xc1, 0x87, 0x10, 0x62, 0x48, 0x21, 0x47, 0x89, 0x2e, 0x6a, 0xf4, 0x31, 0xc4, 0x18, 0x53, 0xcc, 0x89, 0x93, 0x60, 0xb, 0xd3, 0xe4, 0x53, 0x30, 0x29, 0xa6, 0x94, 0x72, 0xc6, 0xa4, 0x19, 0xa9, 0x33, 0x46, 0x67, 0xf4, 0xc8, 0x79, 0xe3, 0x4d, 0x36, 0xb7, 0xe9, 0xe6, 0xb7, 0xb0, 0xc5, 0x2d, 0x6d, 0xb9, 0x60, 0xf9, 0x14, 0x57, 0xb4, 0xf8, 0x12, 0x4a, 0x2c, 0xa9, 0xe4, 0xca, 0x55, 0x2a, 0x5e, 0xff, 0xea, 0x6b, 0x30, 0x35, 0xd6, 0x54, 0x73, 0xa3, 0x86, 0xa5, 0xd4, 0x5c, 0xd3, 0xe6, 0x5b, 0x68, 0xb1, 0xa5, 0x96, 0x3b, 0xd6, 0x5a, 0x97, 0xee, 0xba, 0x76, 0xdf, 0x43, 0x8f, 0x3d, 0xf5, 0x7c, 0x50, 0x5b, 0x54, 0xaf, 0xa9, 0xd1, 0xd, 0xb9, 0xef, 0xa9, 0xd1, 0xa2, 0x36, 0x88, 0xb9, 0xd9, 0x2f, 0x9c, 0xa9, 0x21, 0x1c, 0xc2, 0x9e, 0x82, 0xc6, 0x76, 0xa2, 0x83, 0x19, 0x88, 0xb1, 0x23, 0x10, 0xf, 0x83, 0x0, 0x16, 0x34, 0xf, 0x66, 0x36, 0x92, 0x73, 0x3c, 0xc8, 0xd, 0x66, 0x36, 0x31, 0x5e, 0xa, 0x65, 0x50, 0x23, 0x1d, 0x70, 0x2a, 0xd, 0x62, 0x20, 0xe8, 0x1a, 0xb1, 0x76, 0x3a, 0xd8, 0x9d, 0xc9, 0x7d, 0xcb, 0xcd, 0xa8, 0xfb, 0x15, 0x37, 0xfe, 0x8a, 0x9c, 0x19, 0xe8, 0x3e, 0x41, 0xce, 0xc, 0x74, 0x8b, 0xdc, 0x3d, 0xb7, 0x7, 0xd4, 0x6a, 0x9e, 0x5f, 0x14, 0x99, 0x80, 0xc6, 0x5b, 0x38, 0x3c, 0xb5, 0xd2, 0xb1, 0xb1, 0xa1, 0x43, 0x8b, 0x99, 0x63, 0x1e, 0xdf, 0xa4, 0x97, 0x6b, 0xf3, 0x6e, 0x82, 0xff, 0x59, 0xa2, 0x76, 0x98, 0x52, 0xcd, 0x96, 0x67, 0xd4, 0xe2, 0x7b, 0x78, 0x6a, 0xd8, 0xd7, 0x6a, 0x83, 0x5d, 0x64, 0x45, 0x84, 0x8e, 0x89, 0x9e, 0x4a, 0xe9, 0x9a, 0xf6, 0x51, 0x92, 0x67, 0xc, 0xd4, 0xe2, 0x2e, 0xcf, 0xfd, 0x52, 0xb, 0xf9, 0x35, 0x30, 0x1d, 0x1e, 0xe1, 0x3, 0xb4, 0xf2, 0x97, 0x94, 0x9f, 0x8a, 0x71, 0x37, 0x62, 0x3e, 0x48, 0xd, 0x42, 0xcc, 0xae, 0x24, 0xb7, 0xa7, 0x4a, 0xf8, 0x50, 0xd2, 0x3e, 0x8d, 0xbf, 0xda, 0xc3, 0x12, 0xb3, 0xf9, 0xa7, 0x4a, 0xe8, 0x91, 0x27, 0x9f, 0x51, 0x74, 0x1, 0x67, 0x5b, 0xc9, 0xcd, 0xd7, 0x4a, 0x5c, 0xff, 0xce, 0x93, 0xf7, 0x14, 0x5d, 0x78, 0x52, 0x6e, 0xee, 0x99, 0x7, 0x4a, 0xea, 0xfe, 0xd6, 0x44, 0x25, 0xa7, 0xe3, 0x6f, 0xeb, 0xf, 0x6a, 0xf3, 0x93, 0x8e, 0x14, 0xf6, 0x67, 0xeb, 0xc2, 0x5f, 0x2c, 0x73, 0x73, 0x88, 0xad, 0xb2, 0x6b, 0xca, 0x73, 0xb8, 0x8e, 0xff, 0xd0, 0x3f, 0xaf, 0xcd, 0x77, 0x1d, 0xb4, 0x9f, 0x2d, 0x79, 0xe6, 0xb7, 0xe9, 0x2e, 0xbf, 0x62, 0xc9, 0x5d, 0x6d, 0x9e, 0x58, 0xa2, 0x4f, 0x76, 0x0, 0xa9, 0xec, 0xf7, 0x6d, 0xe4, 0x25, 0x4b, 0xee, 0x6a, 0xf3, 0xd8, 0x92, 0xfa, 0x74, 0x33, 0x71, 0xe9, 0x7a, 0xb9, 0x9a, 0xcf, 0x6c, 0xfd, 0xa7, 0x44, 0x17, 0xeb, 0xf5, 0xf7, 0x4a, 0x2e, 0x13, 0xbd, 0xbd, 0xad, 0xd9, 0x99, 0xe8, 0x4d, 0x25, 0x9f, 0x50, 0x74, 0x65, 0x89, 0x79, 0x57, 0xc9, 0x3b, 0x8a, 0x1e, 0xc2, 0xd9, 0x15, 0x75, 0xfc, 0x61, 0x49, 0xe6, 0x1f, 0xbf, 0x1c, 0xa8, 0x52, 0x2b, 0xb1, 0xc9, 0xd4, 0x0, 0x0, 0x0, 0x2, 0x62, 0x4b, 0x47, 0x44, 0x0, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0x2e, 0x23, 0x0, 0x0, 0x2e, 0x23, 0x1, 0x78, 0xa5, 0x3f, 0x76, 0x0, 0x0, 0x0, 0x7, 0x74, 0x49, 0x4d, 0x45, 0x7, 0xe3, 0x2, 0xa, 0x13, 0x29, 0x21, 0x5f, 0x36, 0xe2, 0x14, 0x0, 0x0, 0x0, 0xaf, 0x49, 0x44, 0x41, 0x54, 0x28, 0xcf, 0x7d, 0x91, 0x41, 0xa, 0xc2, 0x40, 0x10, 0x4, 0x6b, 0x92, 0x61, 0x37, 0xb0, 0x87, 0xec, 0x39, 0x3e, 0xc6, 0x3f, 0xf8, 0x9a, 0x3c, 0xc1, 0xd7, 0xf8, 0x3, 0xf, 0x3e, 0xc6, 0xab, 0x44, 0x50, 0x30, 0x26, 0x66, 0x3c, 0x2c, 0x6, 0x3, 0xd9, 0xf4, 0x69, 0xa0, 0xab, 0x9b, 0x86, 0x11, 0x14, 0x87, 0xa7, 0xc2, 0x51, 0x52, 0x90, 0x34, 0xf1, 0xe1, 0xcd, 0x8b, 0x9e, 0xb7, 0xe2, 0x8, 0x44, 0x6a, 0x2, 0x1e, 0x41, 0x0, 0xc3, 0xe8, 0x79, 0x72, 0xa7, 0x3, 0xc5, 0x13, 0xf7, 0x87, 0x5d, 0x3b, 0x46, 0x16, 0xd2, 0xee, 0x7a, 0xbc, 0x9c, 0x18, 0x95, 0x8a, 0xba, 0x69, 0x6f, 0x71, 0xc4, 0xfe, 0x6c, 0x41, 0x63, 0xd3, 0x72, 0xe6, 0xa1, 0x38, 0xc2, 0x10, 0x87, 0x65, 0x1c, 0x63, 0x60, 0x88, 0x4, 0x9c, 0x52, 0xe2, 0xa7, 0x45, 0x9a, 0x79, 0x29, 0x9e, 0x52, 0x29, 0x10, 0x63, 0x5a, 0x1, 0xc, 0x84, 0x42, 0x1, 0xc9, 0x36, 0x8, 0x68, 0x3a, 0x33, 0x0, 0x9, 0x30, 0x5b, 0x5, 0xc, 0x6c, 0x6e, 0x98, 0x36, 0x1b, 0x24, 0xdb, 0xf0, 0xdb, 0xc0, 0x2a, 0x90, 0x54, 0x6c, 0xba, 0x96, 0x0, 0xc9, 0x2, 0xc2, 0xfc, 0xe0, 0xac, 0xbe, 0xe, 0x38, 0x38, 0x83, 0xbf, 0x35, 0x30, 0x94, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 +}; + static const unsigned char tab_menu_png[] = { 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x8, 0x4, 0x0, 0x0, 0x0, 0xb5, 0xfa, 0x37, 0xea, 0x0, 0x0, 0x0, 0x36, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x40, 0x5, 0xa3, 0xe0, 0xc1, 0x7f, 0x54, 0x48, 0x3, 0x5, 0xf, 0xe3, 0x1e, 0x7c, 0x81, 0x4b, 0x7f, 0x7b, 0x98, 0x86, 0xc5, 0x15, 0xf7, 0x35, 0xee, 0x5f, 0x2, 0x4b, 0x5f, 0x7f, 0xac, 0x8b, 0xc3, 0xa1, 0x2f, 0xb8, 0x1f, 0xce, 0x7f, 0x38, 0xff, 0x5, 0x37, 0x75, 0xbd, 0xf, 0x0, 0x52, 0xd4, 0x48, 0xb8, 0x2d, 0x78, 0x5a, 0x91, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index a57b7bbb42..17609ed505 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -303,7 +303,7 @@ Ref<Texture> Environment::get_adjustment_color_correction() const { void Environment::_validate_property(PropertyInfo &property) const { - if (property.name == "background_sky" || property.name == "background_sky_custom_fov" || property.name == "background_sky_orientation" || property.name == "ambient_light/sky_contribution") { + if (property.name == "background_sky" || property.name == "background_sky_custom_fov" || property.name == "background_sky_orientation" || property.name == "background_sky_rotation" || property.name == "background_sky_rotation_degrees" || property.name == "ambient_light/sky_contribution") { if (bg_mode != BG_SKY && bg_mode != BG_COLOR_SKY) { property.usage = PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL; } @@ -1291,7 +1291,14 @@ void Environment::_bind_methods() { BIND_ENUM_CONSTANT(SSAO_QUALITY_HIGH); } -Environment::Environment() { +Environment::Environment() : + bg_mode(BG_CLEAR_COLOR), + tone_mapper(TONE_MAPPER_LINEAR), + ssao_blur(SSAO_BLUR_DISABLED), + ssao_quality(SSAO_QUALITY_LOW), + glow_blend_mode(GLOW_BLEND_MODE_ADDITIVE), + dof_blur_far_quality(DOF_BLUR_QUALITY_LOW), + dof_blur_near_quality(DOF_BLUR_QUALITY_LOW) { environment = VS::get_singleton()->environment_create(); diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index 5ffaf41581..619af375da 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -617,11 +617,17 @@ void SpatialMaterial::_update_shader() { code += "\tMODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;\n"; //handle animation + code += "\tfloat h_frames = float(particles_anim_h_frames);\n"; + code += "\tfloat v_frames = float(particles_anim_v_frames);\n"; code += "\tfloat particle_total_frames = float(particles_anim_h_frames * particles_anim_v_frames);\n"; code += "\tfloat particle_frame = floor(INSTANCE_CUSTOM.z * float(particle_total_frames));\n"; - code += "\tif (!particles_anim_loop) particle_frame=clamp(particle_frame,0.0,particle_total_frames-1.0); else particle_frame=mod(particle_frame,float(particle_total_frames));\n"; - code += "\tUV /= vec2(float(particles_anim_h_frames),float(particles_anim_v_frames));\n"; - code += "\tUV += vec2(mod(particle_frame,float(particles_anim_h_frames)) / float(particles_anim_h_frames), floor(particle_frame / float(particles_anim_h_frames)) / float(particles_anim_v_frames));\n"; + code += "\tif (!particles_anim_loop) {\n"; + code += "\t\tparticle_frame = clamp(particle_frame, 0.0, particle_total_frames - 1.0);\n"; + code += "\t} else {\n"; + code += "\t\tparticle_frame = mod(particle_frame, particle_total_frames);\n"; + code += "\t}"; + code += "\tUV /= vec2(h_frames, v_frames);\n"; + code += "\tUV += vec2(mod(particle_frame, h_frames) / h_frames, floor(particle_frame / h_frames) / v_frames);\n"; } break; } diff --git a/scene/resources/multimesh.cpp b/scene/resources/multimesh.cpp index 7084c3b4e1..1b406551ab 100644 --- a/scene/resources/multimesh.cpp +++ b/scene/resources/multimesh.cpp @@ -166,11 +166,22 @@ void MultiMesh::set_instance_transform(int p_instance, const Transform &p_transf VisualServer::get_singleton()->multimesh_instance_set_transform(multimesh, p_instance, p_transform); } + +void MultiMesh::set_instance_transform_2d(int p_instance, const Transform2D &p_transform) { + + VisualServer::get_singleton()->multimesh_instance_set_transform_2d(multimesh, p_instance, p_transform); +} + Transform MultiMesh::get_instance_transform(int p_instance) const { return VisualServer::get_singleton()->multimesh_instance_get_transform(multimesh, p_instance); } +Transform2D MultiMesh::get_instance_transform_2d(int p_instance) const { + + return VisualServer::get_singleton()->multimesh_instance_get_transform_2d(multimesh, p_instance); +} + void MultiMesh::set_instance_color(int p_instance, const Color &p_color) { VisualServer::get_singleton()->multimesh_instance_set_color(multimesh, p_instance, p_color); @@ -245,7 +256,9 @@ void MultiMesh::_bind_methods() { ClassDB::bind_method(D_METHOD("set_instance_count", "count"), &MultiMesh::set_instance_count); ClassDB::bind_method(D_METHOD("get_instance_count"), &MultiMesh::get_instance_count); ClassDB::bind_method(D_METHOD("set_instance_transform", "instance", "transform"), &MultiMesh::set_instance_transform); + ClassDB::bind_method(D_METHOD("set_instance_transform_2d", "instance", "transform"), &MultiMesh::set_instance_transform_2d); ClassDB::bind_method(D_METHOD("get_instance_transform", "instance"), &MultiMesh::get_instance_transform); + ClassDB::bind_method(D_METHOD("get_instance_transform_2d", "instance"), &MultiMesh::get_instance_transform_2d); ClassDB::bind_method(D_METHOD("set_instance_color", "instance", "color"), &MultiMesh::set_instance_color); ClassDB::bind_method(D_METHOD("get_instance_color", "instance"), &MultiMesh::get_instance_color); ClassDB::bind_method(D_METHOD("set_instance_custom_data", "instance", "custom_data"), &MultiMesh::set_instance_custom_data); diff --git a/scene/resources/multimesh.h b/scene/resources/multimesh.h index 4e70907399..ac2c69e022 100644 --- a/scene/resources/multimesh.h +++ b/scene/resources/multimesh.h @@ -94,7 +94,9 @@ public: int get_instance_count() const; void set_instance_transform(int p_instance, const Transform &p_transform); + void set_instance_transform_2d(int p_instance, const Transform2D &p_transform); Transform get_instance_transform(int p_instance) const; + Transform2D get_instance_transform_2d(int p_instance) const; void set_instance_color(int p_instance, const Color &p_color); Color get_instance_color(int p_instance) const; diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index ea810edf8c..f28a67b493 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -55,7 +55,7 @@ Node *SceneState::instance(GenEditState p_edit_state) const { Node *p_name; \ if (p_id & FLAG_ID_IS_PATH) { \ NodePath np = node_paths[p_id & FLAG_MASK]; \ - p_name = ret_nodes[0]->_get_node(np); \ + p_name = ret_nodes[0]->get_node_or_null(np); \ } else { \ ERR_FAIL_INDEX_V(p_id &FLAG_MASK, nc, NULL); \ p_name = ret_nodes[p_id & FLAG_MASK]; \ @@ -342,7 +342,7 @@ Node *SceneState::instance(GenEditState p_edit_state) const { } for (int i = 0; i < editable_instances.size(); i++) { - Node *ei = ret_nodes[0]->_get_node(editable_instances[i]); + Node *ei = ret_nodes[0]->get_node_or_null(editable_instances[i]); if (ei) { ret_nodes[0]->set_editable_instance(ei, true); } diff --git a/scene/resources/scene_format_text.cpp b/scene/resources/scene_format_text.cpp index 558810d92a..d00a7c2918 100644 --- a/scene/resources/scene_format_text.cpp +++ b/scene/resources/scene_format_text.cpp @@ -1562,7 +1562,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r break; //save as a scene if (main) { - f->store_line("[resource]\n"); + f->store_line("[resource]"); } else { String line = "[sub_resource "; if (res->get_subindex() == 0) { @@ -1577,7 +1577,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r int idx = res->get_subindex(); line += "type=\"" + res->get_class() + "\" id=" + itos(idx); - f->store_line(line + "]\n"); + f->store_line(line + "]"); if (takeover_paths) { res->set_path(p_path + "::" + itos(idx), true); } diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp index 5a2e7245a2..3c83de91fd 100644 --- a/scene/resources/tile_set.cpp +++ b/scene/resources/tile_set.cpp @@ -614,7 +614,7 @@ Vector2 TileSet::autotile_get_subtile_for_bitmask(int p_id, uint16_t p_bitmask, if (coords.size() == 0) { return autotile_get_icon_coordinate(p_id); } else { - return coords[Math::random(0, (int)coords.size())]; + return coords[Math::rand() % coords.size()]; } } diff --git a/scene/resources/visual_shader_nodes.cpp b/scene/resources/visual_shader_nodes.cpp index a89b70d1ea..d95e0e2da1 100644 --- a/scene/resources/visual_shader_nodes.cpp +++ b/scene/resources/visual_shader_nodes.cpp @@ -324,7 +324,7 @@ String VisualShaderNodeTexture::generate_global(Shader::Mode p_mode, VisualShade String u = "uniform sampler2D " + make_unique_id(p_type, p_id, "tex"); switch (texture_type) { case TYPE_DATA: break; - case TYPE_COLOR: u += " : hint_color"; break; + case TYPE_COLOR: u += " : hint_albedo"; break; case TYPE_NORMALMAP: u += " : hint_normal"; break; } return u + ";"; @@ -554,7 +554,7 @@ String VisualShaderNodeCubeMap::generate_global(Shader::Mode p_mode, VisualShade String u = "uniform sampler2DCube " + make_unique_id(p_type, p_id, "cube"); switch (texture_type) { case TYPE_DATA: break; - case TYPE_COLOR: u += " : hint_color"; break; + case TYPE_COLOR: u += " : hint_albedo"; break; case TYPE_NORMALMAP: u += " : hint_normal"; break; } return u + ";"; diff --git a/servers/physics/body_sw.cpp b/servers/physics/body_sw.cpp index 23f16c246e..f0fbbafe1c 100644 --- a/servers/physics/body_sw.cpp +++ b/servers/physics/body_sw.cpp @@ -652,7 +652,7 @@ void BodySW::simulate_motion(const Transform& p_xform,real_t p_step) { linear_velocity=(p_xform.origin - get_transform().origin)/p_step; //compute a FAKE angular velocity, not so easy - Matrix3 rot=get_transform().basis.orthonormalized().transposed() * p_xform.basis.orthonormalized(); + Basis rot=get_transform().basis.orthonormalized().transposed() * p_xform.basis.orthonormalized(); Vector3 axis; real_t angle; diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp index c2dae7c2d5..404686a31c 100644 --- a/servers/visual/shader_language.cpp +++ b/servers/visual/shader_language.cpp @@ -4113,7 +4113,7 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct uniform.order = uniforms++; } uniform.type = type; - uniform.precission = precision; + uniform.precision = precision; //todo parse default value @@ -4264,7 +4264,7 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct ShaderNode::Varying varying; varying.type = type; - varying.precission = precision; + varying.precision = precision; varying.interpolation = interpolation; shader->varyings[name] = varying; diff --git a/servers/visual/shader_language.h b/servers/visual/shader_language.h index b908f9539b..185bad4222 100644 --- a/servers/visual/shader_language.h +++ b/servers/visual/shader_language.h @@ -42,7 +42,6 @@ class ShaderLanguage { public: enum TokenType { - TK_EMPTY, TK_IDENTIFIER, TK_TRUE, @@ -267,18 +266,15 @@ public: FLOW_OP_SWITCH, FLOW_OP_CONTINUE, FLOW_OP_DISCARD - }; enum ArgumentQualifier { ARGUMENT_QUALIFIER_IN, ARGUMENT_QUALIFIER_OUT, ARGUMENT_QUALIFIER_INOUT, - }; struct Node { - Node *next; enum Type { @@ -296,7 +292,9 @@ public: Type type; virtual DataType get_datatype() const { return TYPE_VOID; } - + Node(Type t) : + next(NULL), + type(t) {} virtual ~Node() {} }; @@ -311,18 +309,17 @@ public: Node *nodes; struct OperatorNode : public Node { - DataType return_cache; DataPrecision return_precision_cache; Operator op; Vector<Node *> arguments; virtual DataType get_datatype() const { return return_cache; } - OperatorNode() { - type = TYPE_OPERATOR; - return_cache = TYPE_VOID; - return_precision_cache = PRECISION_DEFAULT; - } + OperatorNode() : + Node(TYPE_OPERATOR), + return_cache(TYPE_VOID), + return_precision_cache(PRECISION_DEFAULT), + op(OP_EQUAL) {} }; struct VariableNode : public Node { @@ -330,20 +327,16 @@ public: StringName name; virtual DataType get_datatype() const { return datatype_cache; } - VariableNode() { - - type = TYPE_VARIABLE; - datatype_cache = TYPE_VOID; - } + VariableNode() : + Node(TYPE_VARIABLE), + datatype_cache(TYPE_VOID) {} }; struct VariableDeclarationNode : public Node { - DataPrecision precision; DataType datatype; struct Declaration { - StringName name; Node *initializer; }; @@ -351,13 +344,13 @@ public: Vector<Declaration> declarations; virtual DataType get_datatype() const { return datatype; } - VariableDeclarationNode() { - type = TYPE_VARIABLE_DECLARATION; - } + VariableDeclarationNode() : + Node(TYPE_VARIABLE_DECLARATION), + precision(PRECISION_DEFAULT), + datatype(TYPE_VOID) {} }; struct ConstantNode : public Node { - DataType datatype; union Value { @@ -370,7 +363,9 @@ public: Vector<Value> values; virtual DataType get_datatype() const { return datatype; } - ConstantNode() { type = TYPE_CONSTANT; } + ConstantNode() : + Node(TYPE_CONSTANT), + datatype(TYPE_VOID) {} }; struct FunctionNode; @@ -388,39 +383,41 @@ public: Map<StringName, Variable> variables; List<Node *> statements; bool single_statement; - BlockNode() { - type = TYPE_BLOCK; - parent_block = NULL; - parent_function = NULL; - single_statement = false; - } + + BlockNode() : + Node(TYPE_BLOCK), + parent_function(NULL), + parent_block(NULL), + single_statement(false) {} }; struct ControlFlowNode : public Node { - FlowOperation flow_op; Vector<Node *> expressions; Vector<BlockNode *> blocks; - ControlFlowNode() { - type = TYPE_CONTROL_FLOW; - flow_op = FLOW_OP_IF; - } + + ControlFlowNode() : + Node(TYPE_CONTROL_FLOW), + flow_op(FLOW_OP_IF) {} }; struct MemberNode : public Node { - DataType basetype; DataType datatype; StringName name; Node *owner; + virtual DataType get_datatype() const { return datatype; } - MemberNode() { type = TYPE_MEMBER; } + + MemberNode() : + Node(TYPE_MEMBER), + basetype(TYPE_VOID), + datatype(TYPE_VOID), + owner(NULL) {} }; struct FunctionNode : public Node { - struct Argument { - ArgumentQualifier qualifier; StringName name; DataType type; @@ -434,16 +431,15 @@ public: BlockNode *body; bool can_discard; - FunctionNode() { - type = TYPE_FUNCTION; - return_type = TYPE_VOID; - return_precision = PRECISION_DEFAULT; - can_discard = false; - } + FunctionNode() : + Node(TYPE_FUNCTION), + return_type(TYPE_VOID), + return_precision(PRECISION_DEFAULT), + body(NULL), + can_discard(false) {} }; struct ShaderNode : public Node { - struct Function { StringName name; FunctionNode *function; @@ -454,7 +450,12 @@ public: struct Varying { DataType type; DataInterpolation interpolation; - DataPrecision precission; + DataPrecision precision; + + Varying() : + type(TYPE_VOID), + interpolation(INTERPOLATION_FLAT), + precision(PRECISION_DEFAULT) {} }; struct Uniform { @@ -474,16 +475,20 @@ public: int order; int texture_order; DataType type; - DataPrecision precission; + DataPrecision precision; Vector<ConstantNode::Value> default_value; Hint hint; float hint_range[3]; - Uniform() { - hint = HINT_NONE; - hint_range[0] = 0; - hint_range[1] = 1; - hint_range[2] = 0.001; + Uniform() : + order(0), + texture_order(0), + type(TYPE_VOID), + precision(PRECISION_DEFAULT), + hint(HINT_NONE) { + hint_range[0] = 0.0f; + hint_range[1] = 1.0f; + hint_range[2] = 0.001f; } }; @@ -493,11 +498,11 @@ public: Vector<Function> functions; - ShaderNode() { type = TYPE_SHADER; } + ShaderNode() : + Node(TYPE_SHADER) {} }; struct Expression { - bool is_op; union { Operator op; @@ -506,7 +511,6 @@ public: }; struct VarInfo { - StringName name; DataType type; }; @@ -522,7 +526,6 @@ public: }; struct Token { - TokenType type; StringName text; double constant; @@ -556,11 +559,14 @@ public: struct BuiltInInfo { DataType type; bool constant; - BuiltInInfo() {} - BuiltInInfo(DataType p_type, bool p_constant = false) { - type = p_type; - constant = p_constant; - } + + BuiltInInfo() : + type(TYPE_VOID), + constant(false) {} + + BuiltInInfo(DataType p_type, bool p_constant = false) : + type(p_type), + constant(p_constant) {} }; struct FunctionInfo { @@ -573,6 +579,7 @@ private: TokenType token; const char *text; }; + static const KeyWord keyword_list[]; bool error_set; @@ -628,14 +635,11 @@ private: }; bool _find_identifier(const BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, const StringName &p_identifier, DataType *r_data_type = NULL, IdentifierType *r_type = NULL); - bool _is_operator_assign(Operator p_op) const; bool _validate_assign(Node *p_node, const Map<StringName, BuiltInInfo> &p_builtin_types, String *r_message = NULL); - bool _validate_operator(OperatorNode *p_op, DataType *r_ret_type = NULL); struct BuiltinFuncDef { - enum { MAX_ARGS = 5 }; const char *name; DataType rettype; @@ -643,7 +647,6 @@ private: }; struct BuiltinFuncOutArgs { //arguments used as out in built in funcions - const char *name; int argument; }; @@ -656,20 +659,17 @@ private: int completion_argument; bool _get_completable_identifier(BlockNode *p_block, CompletionType p_type, StringName &identifier); - static const BuiltinFuncDef builtin_func_defs[]; static const BuiltinFuncOutArgs builtin_func_out_args[]; - bool _validate_function_call(BlockNode *p_block, OperatorNode *p_func, DataType *r_ret_type); + bool _validate_function_call(BlockNode *p_block, OperatorNode *p_func, DataType *r_ret_type); bool _parse_function_arguments(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, OperatorNode *p_func, int *r_complete_arg = NULL); Node *_parse_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types); - ShaderLanguage::Node *_reduce_expression(BlockNode *p_block, ShaderLanguage::Node *p_node); - Node *_parse_and_reduce_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types); + Node *_parse_and_reduce_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types); Error _parse_block(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, bool p_just_one = false, bool p_can_break = false, bool p_can_continue = false); - Error _parse_shader(const Map<StringName, FunctionInfo> &p_functions, const Vector<StringName> &p_render_modes, const Set<String> &p_shader_types); public: |