diff options
459 files changed, 20002 insertions, 18662 deletions
diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt index 894cd1a53a..2a1fe20477 100644 --- a/COPYRIGHT.txt +++ b/COPYRIGHT.txt @@ -382,7 +382,7 @@ License: Expat Files: ./thirdparty/tinyexr/ Comment: TinyEXR -Copyright: 2014-2017, Syoyo Fujita +Copyright: 2014-2018, Syoyo Fujita 2002, Industrial Light & Magic, a division of Lucas Digital Ltd. LLC License: BSD-3-clause @@ -22,23 +22,30 @@ generous deed immortalized in the next stable release of Godot Engine. ## Mini sponsors + Alan Beauchamp Andrew Dunai + Arda Erol Brandon Lamb Christian Uldall Pedersen Christoph Woinke - David Graham GameDev.net Hein-Pieter van Braam - iDev.Network Studios Jamal Alyafei + Javary Games + Jay Sistar + Justin Arnold + Kyle Szklenski Leona Eden Matthieu Huvé + Maxim Karsten Mike King Nathan Warden Neal Gompa (Conan Kudo) Patrick Aarstad + "Rainway " Ruslan Mustakov Slobodan Milnovic + StarFlare Software Stephan Lanfermann Stoney Meyerhoeffer thechris @@ -49,11 +56,14 @@ generous deed immortalized in the next stable release of Godot Engine. Asdf cheese65536 + David Gehrig K9Kraken Manuele Finocchiaro Nathanael Beisiegel Officine Pixel S.n.c. Retro Village + Valorware + Zashi Zaven Muradyan 13MHz @@ -61,18 +71,18 @@ generous deed immortalized in the next stable release of Godot Engine. Andreas Schüle Austen McRae Daniel Lynn - David Gehrig Florian Breisch Gary Oberbrunner Jay Horton Johannes Wuensch + Jon Woodward Joshua Lesperance + Justo Delgado Baudà Krzysztof Dluzniewski - Kyle Szklenski - Mohammad Taleb Moonwards + Mored1984 + paul gruenbacher Paul LaMotte - Ranoller Sergey Svenne Krap Xananax @@ -87,11 +97,11 @@ generous deed immortalized in the next stable release of Godot Engine. David Churchill Dean Harmon John - Justo Delgado Baudà + Krzysztof Jankowski KTL Laurence Bannister Markus Wiesner - paul gruenbacher + Nathan Lundquist Rami Robert Willes Robin Arys @@ -105,16 +115,21 @@ 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 Petrich + Christian Leth Jeppesen + Christopher Cody Parker + ComicSads D Deadly Lampshade E.G. Eric Eric Monson Ethan Bennis + Eugenio Hugo Salgüero Jáñez Fidget Sinner flesk G Barnes @@ -122,24 +137,23 @@ generous deed immortalized in the next stable release of Godot Engine. GGGames.org Giovanni Solimeno Guilherme Felipe de C. G. da Silva - Hasen Judy Heath Hayes Jeppe Zapp joe513 + Jose Malheiro Juraj Móza - Justin Arnold + Klavdij Voncina Leandro Voltolino Marius Kamm Marvin - Nahuel Sacchetti Nick Nikitin - Pablo Cholaky + oziatek Pete Goodwin + Ranoller ray-tracer Ruben Soares Luis Sofox Stoned Xander - Trent McPheron WytRabbit Zachariah Gibbons @@ -152,9 +166,8 @@ generous deed immortalized in the next stable release of Godot Engine. Alder Stefano Alessandro Senese Alexander Koppe - Anders Jensen-Urstad + Andreas Krampitz Anthony Bongiovanni - Arda Erol Arthur S. Muszynski Artur Barichello Aubrey Falconer @@ -163,9 +176,11 @@ generous deed immortalized in the next stable release of Godot Engine. Bastian Böhm Benedikt Ben Vercammen + Bernd Jänichen Blair Allen Brandon Bryan Stevenson + bugcaptor Carl Winder Carwyn Edwards Casey Foote @@ -176,42 +191,45 @@ generous deed immortalized in the next stable release of Godot Engine. Daniel Johnson Daniel Kaplan DanielMaximiano - David David Cravens David May - Disktra Dominik Wetzel Duy Kevin Nguyen Edward Herbert Elias Nykrem Eric Martini + Eric McCarthy Eric Williams - Eugenio Hugo Salgüero Jáñez Fabian Becker fengjiongmax + Florian Richer Foomf G3Dev sà rl George Lesica Gerrit Großkopf Gilberto K. Otubo + Grant Clarke Greg Olson Guldoman Heribert Hirth Hunter Jones ialex32x + Igor Buzatovic Jahn Johansen Jaime Ruiz-Borau Vizárraga Jako Danar Jeff Hungerford + Joan Fons Joel Fivat Johan Lindberg Jonas Rudlang Jonas Yamazaki + Jonathan G Jonathan Martin Jonathan Nieto + Jonathon Jon Bonazza Jon Sully - Jose Malheiro Josh 'Cheeseness' Bush Juanfran Juan Negrier @@ -220,16 +238,17 @@ generous deed immortalized in the next stable release of Godot Engine. Justin Luk KC Chan Kevin Boyer - Kevin Kamper Meejach Petersen - Klavdij Voncina - Krzysztof Jankowski - Krzysztof Sierszecki + Kevin van Rooijen + Klagsam KsyTek Games + Kuan Cheang + kycho Linus Lind Lundgren Loreshaper Games Luis Moraes Macil magodev + Major Haul Malcolm Martin Eigel Matt Welke @@ -251,10 +270,9 @@ generous deed immortalized in the next stable release of Godot Engine. Niclas Eriksen Nicolás Montaña Nicolas SAN AGUSTIN - Nik - Noi Sek Pan Ip Pascal Grüter + Pat LaBine Patrick Nafarrete Paul E Hansen Paul Gieske @@ -265,12 +283,17 @@ generous deed immortalized in the next stable release of Godot Engine. Pietro Vertechi Piotr Kaczmarski Prokhorenko Leonid + Psyagnostic + rayos Rémi Verschelde + Ricardo Alcantara Richman Stewart Roger Burgess Roger Smith Roman Tinkov Sasori Olkof + Sebastian Michailidis + Shane Spoor Sootstone Theo Cranmore Thibault Barbaroux @@ -279,15 +302,18 @@ generous deed immortalized in the next stable release of Godot Engine. Thomas Kurz tiansheng li Tim + Tim Drumheller Tom Larrow + Troy Austin Trym Nilsen - Tyggve Sollid + Tryggve Sollid Tyler Stafos UltyX Vaiktorg Victor Viktor Ferenczi waka nya + William Hogben Wout Standaert ## Bronze donors diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index 0032c43179..8641af84d9 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -378,12 +378,20 @@ bool _OS::get_borderless_window() const { void _OS::set_ime_active(const bool p_active) { - return OS::get_singleton()->set_ime_active(p_active); + OS::get_singleton()->set_ime_active(p_active); } void _OS::set_ime_position(const Point2 &p_pos) { - return OS::get_singleton()->set_ime_position(p_pos); + OS::get_singleton()->set_ime_position(p_pos); +} + +Point2 _OS::get_ime_selection() const { + return OS::get_singleton()->get_ime_selection(); +} + +String _OS::get_ime_text() const { + return OS::get_singleton()->get_ime_text(); } void _OS::set_use_file_access_save_and_swap(bool p_enable) { @@ -1134,7 +1142,10 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("get_window_per_pixel_transparency_enabled"), &_OS::get_window_per_pixel_transparency_enabled); ClassDB::bind_method(D_METHOD("set_window_per_pixel_transparency_enabled", "enabled"), &_OS::set_window_per_pixel_transparency_enabled); + ClassDB::bind_method(D_METHOD("set_ime_active", "active"), &_OS::set_ime_active); ClassDB::bind_method(D_METHOD("set_ime_position", "position"), &_OS::set_ime_position); + ClassDB::bind_method(D_METHOD("get_ime_selection"), &_OS::get_ime_selection); + ClassDB::bind_method(D_METHOD("get_ime_text"), &_OS::get_ime_text); ClassDB::bind_method(D_METHOD("set_screen_orientation", "orientation"), &_OS::set_screen_orientation); ClassDB::bind_method(D_METHOD("get_screen_orientation"), &_OS::get_screen_orientation); diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index 720b14bf56..4cdf09d522 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -195,6 +195,8 @@ public: virtual void set_ime_active(const bool p_active); virtual void set_ime_position(const Point2 &p_pos); + virtual Point2 get_ime_selection() const; + virtual String get_ime_text() const; Error native_video_play(String p_path, float p_volume, String p_audio_track, String p_subtitle_track); bool native_video_is_playing(); diff --git a/core/core_string_names.cpp b/core/core_string_names.cpp index ba596f7f16..8a3fdade64 100644 --- a/core/core_string_names.cpp +++ b/core/core_string_names.cpp @@ -47,28 +47,27 @@ CoreStringNames::CoreStringNames() : #ifdef TOOLS_ENABLED _sections_unfolded(StaticCString::create("_sections_unfolded")), #endif - _custom_features(StaticCString::create("_custom_features")) { - - x = StaticCString::create("x"); - y = StaticCString::create("y"); - z = StaticCString::create("z"); - w = StaticCString::create("w"); - r = StaticCString::create("r"); - g = StaticCString::create("g"); - b = StaticCString::create("b"); - a = StaticCString::create("a"); - position = StaticCString::create("position"); - size = StaticCString::create("size"); - end = StaticCString::create("end"); - basis = StaticCString::create("basis"); - origin = StaticCString::create("origin"); - normal = StaticCString::create("normal"); - d = StaticCString::create("d"); - h = StaticCString::create("h"); - s = StaticCString::create("s"); - v = StaticCString::create("v"); - r8 = StaticCString::create("r8"); - g8 = StaticCString::create("g8"); - b8 = StaticCString::create("b8"); - a8 = StaticCString::create("a8"); + _custom_features(StaticCString::create("_custom_features")), + x(StaticCString::create("x")), + y(StaticCString::create("y")), + z(StaticCString::create("z")), + w(StaticCString::create("w")), + r(StaticCString::create("r")), + g(StaticCString::create("g")), + b(StaticCString::create("b")), + a(StaticCString::create("a")), + position(StaticCString::create("position")), + size(StaticCString::create("size")), + end(StaticCString::create("end")), + basis(StaticCString::create("basis")), + origin(StaticCString::create("origin")), + normal(StaticCString::create("normal")), + d(StaticCString::create("d")), + h(StaticCString::create("h")), + s(StaticCString::create("s")), + v(StaticCString::create("v")), + r8(StaticCString::create("r8")), + g8(StaticCString::create("g8")), + b8(StaticCString::create("b8")), + a8(StaticCString::create("a8")) { } diff --git a/core/dvector.h b/core/dvector.h index 2830c57ec0..9760dcbcad 100644 --- a/core/dvector.h +++ b/core/dvector.h @@ -56,12 +56,12 @@ struct MemoryPool { Alloc *free_list; - Alloc() { - mem = NULL; - lock = 0; - pool_id = POOL_ALLOCATOR_INVALID_ID; - size = 0; - free_list = NULL; + Alloc() : + lock(0), + mem(NULL), + pool_id(POOL_ALLOCATOR_INVALID_ID), + size(0), + free_list(NULL) { } }; diff --git a/core/func_ref.cpp b/core/func_ref.cpp index c707f1c4cb..d9d1a2b799 100644 --- a/core/func_ref.cpp +++ b/core/func_ref.cpp @@ -69,7 +69,6 @@ void FuncRef::_bind_methods() { ClassDB::bind_method(D_METHOD("set_function", "name"), &FuncRef::set_function); } -FuncRef::FuncRef() { - - id = 0; +FuncRef::FuncRef() : + id(0) { } diff --git a/core/image.cpp b/core/image.cpp index 698a0b0b98..dca8aedb8f 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -1931,7 +1931,8 @@ void Image::blit_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const Po if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) return; - Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); + Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y)); + Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size)); PoolVector<uint8_t>::Write wp = data.write(); uint8_t *dst_data_ptr = wp.ptr(); @@ -1985,7 +1986,8 @@ void Image::blit_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, co if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) return; - Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); + Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y)); + Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size)); PoolVector<uint8_t>::Write wp = data.write(); uint8_t *dst_data_ptr = wp.ptr(); @@ -2042,7 +2044,8 @@ void Image::blend_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const P if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) return; - Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); + Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y)); + Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size)); lock(); Ref<Image> img = p_src; @@ -2096,7 +2099,8 @@ void Image::blend_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, c if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) return; - Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); + Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y)); + Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size)); lock(); Ref<Image> img = p_src; diff --git a/core/io/file_access_compressed.cpp b/core/io/file_access_compressed.cpp index 645d97ae7e..a3633dc1f4 100644 --- a/core/io/file_access_compressed.cpp +++ b/core/io/file_access_compressed.cpp @@ -373,24 +373,23 @@ uint64_t FileAccessCompressed::_get_modified_time(const String &p_file) { return 0; } -FileAccessCompressed::FileAccessCompressed() { - - f = NULL; - magic = "GCMP"; - cmode = Compression::MODE_ZSTD; - writing = false; - write_ptr = 0; - write_buffer_size = 0; - write_max = 0; - block_size = 0; - read_eof = false; - at_end = false; - read_total = 0; - read_ptr = NULL; - read_block = 0; - read_block_count = 0; - read_block_size = 0; - read_pos = 0; +FileAccessCompressed::FileAccessCompressed() : + cmode(Compression::MODE_ZSTD), + writing(false), + write_ptr(0), + write_buffer_size(0), + write_max(0), + block_size(0), + read_eof(false), + at_end(false), + read_ptr(NULL), + read_block(0), + read_block_count(0), + read_block_size(0), + read_pos(0), + read_total(0), + magic("GCMP"), + f(NULL) { } FileAccessCompressed::~FileAccessCompressed() { diff --git a/core/io/file_access_zip.cpp b/core/io/file_access_zip.cpp index 7b6385c3ff..d99cdf0d86 100644 --- a/core/io/file_access_zip.cpp +++ b/core/io/file_access_zip.cpp @@ -43,31 +43,31 @@ static void *godot_open(void *data, const char *p_fname, int mode) { if (mode & ZLIB_FILEFUNC_MODE_WRITE) { return NULL; - }; + } FileAccess *f = (FileAccess *)data; f->open(p_fname, FileAccess::READ); return f->is_open() ? data : NULL; -}; +} static uLong godot_read(void *data, void *fdata, void *buf, uLong size) { FileAccess *f = (FileAccess *)data; f->get_buffer((uint8_t *)buf, size); return size; -}; +} static uLong godot_write(voidpf opaque, voidpf stream, const void *buf, uLong size) { return 0; -}; +} static long godot_tell(voidpf opaque, voidpf stream) { FileAccess *f = (FileAccess *)opaque; return f->get_position(); -}; +} static long godot_seek(voidpf opaque, voidpf stream, uLong offset, int origin) { @@ -84,36 +84,36 @@ static long godot_seek(voidpf opaque, voidpf stream, uLong offset, int origin) { break; default: break; - }; + } f->seek(pos); return 0; -}; +} static int godot_close(voidpf opaque, voidpf stream) { FileAccess *f = (FileAccess *)opaque; f->close(); return 0; -}; +} static int godot_testerror(voidpf opaque, voidpf stream) { FileAccess *f = (FileAccess *)opaque; return f->get_error() != OK ? 1 : 0; -}; +} static voidpf godot_alloc(voidpf opaque, uInt items, uInt size) { return memalloc(items * size); -}; +} static void godot_free(voidpf opaque, voidpf address) { memfree(address); -}; +} -}; // extern "C" +} // extern "C" void ZipArchive::close_handle(unzFile p_file) const { @@ -122,7 +122,7 @@ void ZipArchive::close_handle(unzFile p_file) const { unzCloseCurrentFile(p_file); unzClose(p_file); memdelete(f); -}; +} unzFile ZipArchive::get_file_handle(String p_file) const { @@ -155,10 +155,10 @@ unzFile ZipArchive::get_file_handle(String p_file) const { unzClose(pkg); ERR_FAIL_V(NULL); - }; + } return pkg; -}; +} bool ZipArchive::try_open_pack(const String &p_path) { @@ -215,36 +215,36 @@ bool ZipArchive::try_open_pack(const String &p_path) { if ((i + 1) < gi.number_entry) { unzGoToNextFile(zfile); - }; - }; + } + } return true; -}; +} bool ZipArchive::file_exists(String p_name) const { return files.has(p_name); -}; +} FileAccess *ZipArchive::get_file(const String &p_path, PackedData::PackedFile *p_file) { return memnew(FileAccessZip(p_path, *p_file)); -}; +} ZipArchive *ZipArchive::get_singleton() { if (instance == NULL) { instance = memnew(ZipArchive); - }; + } return instance; -}; +} ZipArchive::ZipArchive() { instance = this; //fa_create_func = FileAccess::get_create_func(); -}; +} ZipArchive::~ZipArchive() { @@ -253,10 +253,10 @@ ZipArchive::~ZipArchive() { FileAccess *f = (FileAccess *)unzGetOpaque(packages[i].zfile); unzClose(packages[i].zfile); memdelete(f); - }; + } packages.clear(); -}; +} Error FileAccessZip::_open(const String &p_path, int p_mode_flags) { @@ -272,7 +272,7 @@ Error FileAccessZip::_open(const String &p_path, int p_mode_flags) { ERR_FAIL_COND_V(err != UNZ_OK, FAILED); return OK; -}; +} void FileAccessZip::close() { @@ -283,50 +283,50 @@ void FileAccessZip::close() { ERR_FAIL_COND(!arch); arch->close_handle(zfile); zfile = NULL; -}; +} bool FileAccessZip::is_open() const { return zfile != NULL; -}; +} void FileAccessZip::seek(size_t p_position) { ERR_FAIL_COND(!zfile); unzSeekCurrentFile(zfile, p_position); -}; +} void FileAccessZip::seek_end(int64_t p_position) { ERR_FAIL_COND(!zfile); unzSeekCurrentFile(zfile, get_len() + p_position); -}; +} size_t FileAccessZip::get_position() const { ERR_FAIL_COND_V(!zfile, 0); return unztell(zfile); -}; +} size_t FileAccessZip::get_len() const { ERR_FAIL_COND_V(!zfile, 0); return file_info.uncompressed_size; -}; +} bool FileAccessZip::eof_reached() const { ERR_FAIL_COND_V(!zfile, true); return at_eof; -}; +} uint8_t FileAccessZip::get_8() const { uint8_t ret = 0; get_buffer(&ret, 1); return ret; -}; +} int FileAccessZip::get_buffer(uint8_t *p_dst, int p_length) const { @@ -339,20 +339,20 @@ int FileAccessZip::get_buffer(uint8_t *p_dst, int p_length) const { if (read < p_length) at_eof = true; return read; -}; +} Error FileAccessZip::get_error() const { if (!zfile) { return ERR_UNCONFIGURED; - }; + } if (eof_reached()) { return ERR_FILE_EOF; - }; + } return OK; -}; +} void FileAccessZip::flush() { @@ -362,22 +362,21 @@ void FileAccessZip::flush() { void FileAccessZip::store_8(uint8_t p_dest) { ERR_FAIL(); -}; +} bool FileAccessZip::file_exists(const String &p_name) { return false; -}; - -FileAccessZip::FileAccessZip(const String &p_path, const PackedData::PackedFile &p_file) { +} - zfile = NULL; +FileAccessZip::FileAccessZip(const String &p_path, const PackedData::PackedFile &p_file) : + zfile(NULL) { _open(p_path, FileAccess::READ); -}; +} FileAccessZip::~FileAccessZip() { close(); -}; +} #endif diff --git a/core/io/logger.cpp b/core/io/logger.cpp index 01755c8ee9..3c4b4a1ac3 100644 --- a/core/io/logger.cpp +++ b/core/io/logger.cpp @@ -179,11 +179,10 @@ void RotatedFileLogger::rotate_file() { file = FileAccess::open(base_path, FileAccess::WRITE); } -RotatedFileLogger::RotatedFileLogger(const String &p_base_path, int p_max_files) { - file = NULL; - base_path = p_base_path.simplify_path(); - max_files = p_max_files > 0 ? p_max_files : 1; - +RotatedFileLogger::RotatedFileLogger(const String &p_base_path, int p_max_files) : + base_path(p_base_path.simplify_path()), + max_files(p_max_files > 0 ? p_max_files : 1), + file(NULL) { rotate_file(); } @@ -240,8 +239,8 @@ void StdLogger::logv(const char *p_format, va_list p_list, bool p_err) { StdLogger::~StdLogger() {} -CompositeLogger::CompositeLogger(Vector<Logger *> p_loggers) { - loggers = p_loggers; +CompositeLogger::CompositeLogger(Vector<Logger *> p_loggers) : + loggers(p_loggers) { } void CompositeLogger::logv(const char *p_format, va_list p_list, bool p_err) { diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp index 6338cee39d..c71903c94d 100644 --- a/core/io/marshalls.cpp +++ b/core/io/marshalls.cpp @@ -55,9 +55,8 @@ ObjectID EncodedObjectAsID::get_object_id() const { return id; } -EncodedObjectAsID::EncodedObjectAsID() { - - id = 0; +EncodedObjectAsID::EncodedObjectAsID() : + id(0) { } #define ENCODE_MASK 0xFF diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp index b6dd4eaf6f..aadcca01d5 100644 --- a/core/io/packet_peer.cpp +++ b/core/io/packet_peer.cpp @@ -35,10 +35,9 @@ /* helpers / binders */ -PacketPeer::PacketPeer() { - - allow_object_decoding = false; - last_get_error = OK; +PacketPeer::PacketPeer() : + last_get_error(OK), + allow_object_decoding(false) { } void PacketPeer::set_allow_object_decoding(bool p_enable) { diff --git a/core/io/packet_peer_udp.cpp b/core/io/packet_peer_udp.cpp index d33ba6f855..2e916d6a48 100644 --- a/core/io/packet_peer_udp.cpp +++ b/core/io/packet_peer_udp.cpp @@ -239,13 +239,12 @@ void PacketPeerUDP::_bind_methods() { ClassDB::bind_method(D_METHOD("set_dest_address", "host", "port"), &PacketPeerUDP::_set_dest_address); } -PacketPeerUDP::PacketPeerUDP() { - - _sock = Ref<NetSocket>(NetSocket::create()); - blocking = true; - packet_port = 0; - queue_count = 0; - peer_port = 0; +PacketPeerUDP::PacketPeerUDP() : + packet_port(0), + queue_count(0), + peer_port(0), + blocking(true), + _sock(Ref<NetSocket>(NetSocket::create())) { rb.resize(16); } diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp index 6f3a8c3d2e..b91268dab2 100644 --- a/core/io/resource_format_binary.cpp +++ b/core/io/resource_format_binary.cpp @@ -970,12 +970,11 @@ String ResourceInteractiveLoaderBinary::recognize(FileAccess *p_f) { return type; } -ResourceInteractiveLoaderBinary::ResourceInteractiveLoaderBinary() { - - f = NULL; - stage = 0; - error = OK; - translation_remapped = false; +ResourceInteractiveLoaderBinary::ResourceInteractiveLoaderBinary() : + translation_remapped(false), + f(NULL), + error(OK), + stage(0) { } ResourceInteractiveLoaderBinary::~ResourceInteractiveLoaderBinary() { diff --git a/core/io/resource_loader.h b/core/io/resource_loader.h index 7ade4a2dfc..a46a00203f 100644 --- a/core/io/resource_loader.h +++ b/core/io/resource_loader.h @@ -123,6 +123,7 @@ public: static int get_import_order(const String &p_path); static void set_timestamp_on_load(bool p_timestamp) { timestamp_on_load = p_timestamp; } + static bool get_timestamp_on_load() { return timestamp_on_load; } static void notify_load_error(const String &p_err) { if (err_notify) err_notify(err_notify_ud, p_err); diff --git a/core/io/resource_saver.h b/core/io/resource_saver.h index 6134d9db57..cdd43292a2 100644 --- a/core/io/resource_saver.h +++ b/core/io/resource_saver.h @@ -76,6 +76,8 @@ public: static void add_resource_format_saver(ResourceFormatSaver *p_format_saver, bool p_at_front = false); static void set_timestamp_on_save(bool p_timestamp) { timestamp_on_save = p_timestamp; } + static bool get_timestamp_on_save() { return timestamp_on_save; } + static void set_save_callback(ResourceSavedCallback p_callback); }; diff --git a/core/io/stream_peer_tcp.cpp b/core/io/stream_peer_tcp.cpp index 28561e8cbc..4b86735aa3 100644 --- a/core/io/stream_peer_tcp.cpp +++ b/core/io/stream_peer_tcp.cpp @@ -349,12 +349,11 @@ void StreamPeerTCP::_bind_methods() { BIND_ENUM_CONSTANT(STATUS_ERROR); } -StreamPeerTCP::StreamPeerTCP() { - - _sock = Ref<NetSocket>(NetSocket::create()); - status = STATUS_NONE; - peer_host = IP_Address(); - peer_port = 0; +StreamPeerTCP::StreamPeerTCP() : + _sock(Ref<NetSocket>(NetSocket::create())), + status(STATUS_NONE), + peer_host(IP_Address()), + peer_port(0) { } StreamPeerTCP::~StreamPeerTCP() { diff --git a/core/io/tcp_server.cpp b/core/io/tcp_server.cpp index b8194cb17f..be9176779e 100644 --- a/core/io/tcp_server.cpp +++ b/core/io/tcp_server.cpp @@ -116,9 +116,8 @@ void TCP_Server::stop() { } } -TCP_Server::TCP_Server() { - - _sock = Ref<NetSocket>(NetSocket::create()); +TCP_Server::TCP_Server() : + _sock(Ref<NetSocket>(NetSocket::create())) { } TCP_Server::~TCP_Server() { diff --git a/core/math/expression.cpp b/core/math/expression.cpp index 0cfb54234c..7f3439e956 100644 --- a/core/math/expression.cpp +++ b/core/math/expression.cpp @@ -2157,13 +2157,13 @@ void Expression::_bind_methods() { ClassDB::bind_method(D_METHOD("get_error_text"), &Expression::get_error_text); } -Expression::Expression() { - output_type = Variant::NIL; - error_set = true; - root = NULL; - nodes = NULL; - sequenced = false; - execution_error = false; +Expression::Expression() : + output_type(Variant::NIL), + sequenced(false), + error_set(true), + root(NULL), + nodes(NULL), + execution_error(false) { } Expression::~Expression() { diff --git a/core/math/expression.h b/core/math/expression.h index ac2416d0dd..7f81542480 100644 --- a/core/math/expression.h +++ b/core/math/expression.h @@ -116,7 +116,9 @@ private: Variant::Type type; String name; - Input() { type = Variant::NIL; } + Input() : + type(Variant::NIL) { + } }; Vector<Input> inputs; diff --git a/core/math/plane.h b/core/math/plane.h index 4eedebb79e..5182dc67dd 100644 --- a/core/math/plane.h +++ b/core/math/plane.h @@ -74,10 +74,11 @@ public: _FORCE_INLINE_ bool operator!=(const Plane &p_plane) const; operator String() const; - _FORCE_INLINE_ Plane() { d = 0; } + _FORCE_INLINE_ Plane() : + d(0) {} _FORCE_INLINE_ Plane(real_t p_a, real_t p_b, real_t p_c, real_t p_d) : normal(p_a, p_b, p_c), - d(p_d){}; + d(p_d) {} _FORCE_INLINE_ Plane(const Vector3 &p_normal, real_t p_d); _FORCE_INLINE_ Plane(const Vector3 &p_point, const Vector3 &p_normal); diff --git a/core/math/quat.h b/core/math/quat.h index c4f9b3a732..59a15f460b 100644 --- a/core/math/quat.h +++ b/core/math/quat.h @@ -115,20 +115,20 @@ public: z = p_z; w = p_w; } - inline Quat(real_t p_x, real_t p_y, real_t p_z, real_t p_w) { - x = p_x; - y = p_y; - z = p_z; - w = p_w; + inline Quat(real_t p_x, real_t p_y, real_t p_z, real_t p_w) : + x(p_x), + y(p_y), + z(p_z), + w(p_w) { } Quat(const Vector3 &axis, const real_t &angle) { set_axis_angle(axis, angle); } Quat(const Vector3 &euler) { set_euler(euler); } - Quat(const Quat &q) { - x = q.x; - y = q.y; - z = q.z; - w = q.w; + Quat(const Quat &q) : + x(q.x), + y(q.y), + z(q.z), + w(q.w) { } Quat(const Vector3 &v0, const Vector3 &v1) // shortest arc @@ -153,9 +153,11 @@ public: } } - inline Quat() { - x = y = z = 0; - w = 1; + inline Quat() : + x(0), + y(0), + z(0), + w(1) { } }; diff --git a/core/math/random_number_generator.cpp b/core/math/random_number_generator.cpp index e4ec0dac99..9f0a5bc992 100644 --- a/core/math/random_number_generator.cpp +++ b/core/math/random_number_generator.cpp @@ -40,6 +40,7 @@ void RandomNumberGenerator::_bind_methods() { ClassDB::bind_method(D_METHOD("randi"), &RandomNumberGenerator::randi); ClassDB::bind_method(D_METHOD("randf"), &RandomNumberGenerator::randf); - ClassDB::bind_method(D_METHOD("rand_range", "from", "to"), &RandomNumberGenerator::rand_range); + ClassDB::bind_method(D_METHOD("randf_range", "from", "to"), &RandomNumberGenerator::randf_range); + ClassDB::bind_method(D_METHOD("randi_range", "from", "to"), &RandomNumberGenerator::randi_range); ClassDB::bind_method(D_METHOD("randomize"), &RandomNumberGenerator::randomize); } diff --git a/core/math/random_number_generator.h b/core/math/random_number_generator.h index 557863fdbd..078bfbed60 100644 --- a/core/math/random_number_generator.h +++ b/core/math/random_number_generator.h @@ -53,7 +53,12 @@ public: _FORCE_INLINE_ real_t randf() { return randbase.randf(); } - _FORCE_INLINE_ real_t rand_range(real_t from, real_t to) { return randbase.random(from, to); } + _FORCE_INLINE_ real_t randf_range(real_t from, real_t to) { return randbase.random(from, to); } + + _FORCE_INLINE_ int randi_range(int from, int to) { + unsigned int ret = randbase.rand(); + return ret % (to - from + 1) + from; + } RandomNumberGenerator(); }; diff --git a/core/message_queue.cpp b/core/message_queue.cpp index abfc73407a..2952593798 100644 --- a/core/message_queue.cpp +++ b/core/message_queue.cpp @@ -209,9 +209,9 @@ void MessageQueue::statistics() { } break; } + } else { //object was deleted print_line("Object was deleted while awaiting a callback"); - } else { null_count++; } diff --git a/core/object.cpp b/core/object.cpp index ea77090a45..3a14c7c0b5 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -1443,8 +1443,20 @@ Error Object::connect(const StringName &p_signal, Object *p_to_object, const Str if (!s) { bool signal_is_valid = ClassDB::has_signal(get_class_name(), p_signal); //check in script - if (!signal_is_valid && !script.is_null() && Ref<Script>(script)->has_script_signal(p_signal)) - signal_is_valid = true; + if (!signal_is_valid && !script.is_null()) { + + if (Ref<Script>(script)->has_script_signal(p_signal)) { + signal_is_valid = true; + } +#ifdef TOOLS_ENABLED + else { + //allow connecting signals anyway if script is invalid, see issue #17070 + if (!Ref<Script>(script)->is_valid()) { + signal_is_valid = true; + } + } +#endif + } if (!signal_is_valid) { ERR_EXPLAIN("In Object of type '" + String(get_class()) + "': Attempt to connect nonexistent signal '" + p_signal + "' to method '" + p_to_object->get_class() + "." + p_to_method + "'"); diff --git a/core/os/dir_access.cpp b/core/os/dir_access.cpp index daa3eacd5f..8f4f2b6920 100644 --- a/core/os/dir_access.cpp +++ b/core/os/dir_access.cpp @@ -349,9 +349,9 @@ class DirChanger { String original_dir; public: - DirChanger(DirAccess *p_da, String p_dir) { - da = p_da; - original_dir = p_da->get_current_dir(); + DirChanger(DirAccess *p_da, String p_dir) : + da(p_da), + original_dir(p_da->get_current_dir()) { p_da->change_dir(p_dir); } @@ -431,8 +431,12 @@ Error DirAccess::copy_dir(String p_from, String p_to, int p_chmod_flags) { ERR_FAIL_COND_V(err, err); } + if (!p_to.ends_with("/")) { + p_to = p_to + "/"; + } + DirChanger dir_changer(this, p_from); - Error err = _copy_dir(target_da, p_to + "/", p_chmod_flags); + Error err = _copy_dir(target_da, p_to, p_chmod_flags); memdelete(target_da); return err; diff --git a/core/os/main_loop.cpp b/core/os/main_loop.cpp index 0945cdd512..6e0b914367 100644 --- a/core/os/main_loop.cpp +++ b/core/os/main_loop.cpp @@ -60,6 +60,7 @@ void MainLoop::_bind_methods() { BIND_CONSTANT(NOTIFICATION_TRANSLATION_CHANGED); BIND_CONSTANT(NOTIFICATION_WM_ABOUT); BIND_CONSTANT(NOTIFICATION_CRASH); + BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE); }; void MainLoop::set_init_script(const Ref<Script> &p_init_script) { diff --git a/core/os/main_loop.h b/core/os/main_loop.h index 43f74302a8..e9b331ee45 100644 --- a/core/os/main_loop.h +++ b/core/os/main_loop.h @@ -65,6 +65,7 @@ public: NOTIFICATION_TRANSLATION_CHANGED = 90, NOTIFICATION_WM_ABOUT = 91, NOTIFICATION_CRASH = 92, + NOTIFICATION_OS_IME_UPDATE = 93, }; virtual void input_event(const Ref<InputEvent> &p_event); diff --git a/core/os/os.h b/core/os/os.h index 7786ffb26e..05ec3ac424 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -242,7 +242,8 @@ public: virtual void set_ime_active(const bool p_active) {} virtual void set_ime_position(const Point2 &p_pos) {} - virtual void set_ime_intermediate_text_callback(ImeCallback p_callback, void *p_inp) {} + virtual Point2 get_ime_selection() const { return Point2(); } + virtual String get_ime_text() const { return String(); } virtual Error open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path = false) { return ERR_UNAVAILABLE; } virtual Error close_dynamic_library(void *p_library_handle) { return ERR_UNAVAILABLE; } @@ -480,6 +481,7 @@ public: enum EngineContext { CONTEXT_EDITOR, CONTEXT_PROJECTMAN, + CONTEXT_ENGINE, }; virtual void set_context(int p_context); diff --git a/core/project_settings.cpp b/core/project_settings.cpp index 407bb78375..031ac06063 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -307,7 +307,7 @@ void ProjectSettings::_convert_to_last_version() { * If a project file is found, load it or fail. * If nothing was found, error out. */ -Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bool p_upwards) { +Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, bool p_upwards) { // If looking for files in a network client, use it directly @@ -450,6 +450,18 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bo return OK; } +Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bool p_upwards) { + Error err = _setup(p_path, p_main_pack, p_upwards); + if (err == OK) { + String custom_settings = GLOBAL_DEF("application/config/project_settings_override", ""); + if (custom_settings != "") { + _load_settings_text(custom_settings); + } + } + + return err; +} + bool ProjectSettings::has_setting(String p_var) const { _THREAD_SAFE_METHOD_ @@ -995,6 +1007,7 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF("application/run/disable_stderr", false); GLOBAL_DEF("application/config/use_custom_user_dir", false); GLOBAL_DEF("application/config/custom_user_dir_name", ""); + GLOBAL_DEF("application/config/project_settings_override", ""); action = Dictionary(); action["deadzone"] = Variant(0.5f); diff --git a/core/project_settings.h b/core/project_settings.h index 611355f2ef..f150e4499b 100644 --- a/core/project_settings.h +++ b/core/project_settings.h @@ -112,6 +112,8 @@ protected: void _add_property_info_bind(const Dictionary &p_info); + Error _setup(const String &p_path, const String &p_main_pack, bool p_upwards = false); + protected: static void _bind_methods(); diff --git a/core/reference.cpp b/core/reference.cpp index b79ad0bf3d..6ccc444b93 100644 --- a/core/reference.cpp +++ b/core/reference.cpp @@ -139,8 +139,8 @@ void WeakRef::set_ref(const REF &p_ref) { ref = p_ref.is_valid() ? p_ref->get_instance_id() : 0; } -WeakRef::WeakRef() { - ref = 0; +WeakRef::WeakRef() : + ref(0) { } void WeakRef::_bind_methods() { diff --git a/core/script_language.h b/core/script_language.h index bcd9c2c5ea..654d1d4265 100644 --- a/core/script_language.h +++ b/core/script_language.h @@ -128,6 +128,7 @@ public: virtual MethodInfo get_method_info(const StringName &p_method) const = 0; virtual bool is_tool() const = 0; + virtual bool is_valid() const = 0; virtual ScriptLanguage *get_language() const = 0; diff --git a/core/ustring.h b/core/ustring.h index d2766ec7a3..8e4dbd8031 100644 --- a/core/ustring.h +++ b/core/ustring.h @@ -63,7 +63,7 @@ public: CharString &operator+=(char p_char); int length() const { return size() ? size() - 1 : 0; } const char *get_data() const; - operator const char *() { return get_data(); }; + operator const char *() const { return get_data(); }; }; typedef wchar_t CharType; diff --git a/core/variant.cpp b/core/variant.cpp index edbe66ba31..eb9f34fee6 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -1662,7 +1662,17 @@ Variant::operator Transform() const { return Transform(*_data._basis, Vector3()); else if (type == QUAT) return Transform(Basis(*reinterpret_cast<const Quat *>(_data._mem)), Vector3()); - else + else if (type == TRANSFORM2D) { + const Transform2D &t = *_data._transform2d; + Transform m; + m.basis.elements[0][0] = t.elements[0][0]; + m.basis.elements[1][0] = t.elements[0][1]; + m.basis.elements[0][1] = t.elements[1][0]; + m.basis.elements[1][1] = t.elements[1][1]; + m.origin[0] = t.elements[2][0]; + m.origin[1] = t.elements[2][1]; + return m; + } else return Transform(); } diff --git a/core/variant_op.cpp b/core/variant_op.cpp index d193858966..9f172f0d57 100644 --- a/core/variant_op.cpp +++ b/core/variant_op.cpp @@ -2149,7 +2149,7 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid) int idx = p_index; if (idx < 0) idx += 4; - if (idx >= 0 || idx < 4) { + if (idx >= 0 && idx < 4) { Color *v = reinterpret_cast<Color *>(_data._mem); (*v)[idx] = p_value; valid = true; @@ -2524,7 +2524,7 @@ Variant Variant::get(const Variant &p_index, bool *r_valid) const { int idx = p_index; if (idx < 0) idx += 4; - if (idx >= 0 || idx < 4) { + if (idx >= 0 && idx < 4) { const Color *v = reinterpret_cast<const Color *>(_data._mem); valid = true; return (*v)[idx]; diff --git a/core/variant_parser.h b/core/variant_parser.h index 531c1d59cd..e183169ed8 100644 --- a/core/variant_parser.h +++ b/core/variant_parser.h @@ -45,7 +45,8 @@ public: CharType saved; - Stream() { saved = 0; } + Stream() : + saved(0) {} virtual ~Stream() {} }; diff --git a/doc/classes/@GDScript.xml b/doc/classes/@GDScript.xml index 20ec9141c6..2bdfc56c44 100644 --- a/doc/classes/@GDScript.xml +++ b/doc/classes/@GDScript.xml @@ -127,7 +127,7 @@ <description> Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle of tangent [code]y/x[/code]. To compute the value, the method takes into account the sign of both arguments in order to determine the quadrant. [codeblock] - a = atan(0,-1) # a is 3.141593 + a = atan(0, -1) # a is 3.141593 [/codeblock] </description> </method> @@ -175,7 +175,7 @@ # a is 'A' a = char(65) # a is 'a' - a = char(65+32) + a = char(65 + 32) [/codeblock] </description> </method> @@ -230,7 +230,7 @@ Returns the cosine of angle [code]s[/code] in radians. [codeblock] # prints 1 and -1 - print(cos(PI*2)) + print(cos(PI * 2)) print(cos(PI)) [/codeblock] </description> @@ -584,7 +584,7 @@ <description> Returns the maximum of two values. [codeblock] - max(1,2) # returns 2 + max(1, 2) # returns 2 max(-3.99, -4) # returns -3.99 [/codeblock] </description> @@ -599,7 +599,7 @@ <description> Returns the minimum of two values. [codeblock] - min(1,2) # returns 1 + min(1, 2) # returns 1 min(-3.99, -4) # returns -4 [/codeblock] </description> @@ -657,7 +657,7 @@ <description> Returns the result of [code]x[/code] raised to the power of [code]y[/code]. [codeblock] - pow(2,5) # returns 32 + pow(2, 5) # returns 32 [/codeblock] </description> </method> @@ -681,8 +681,8 @@ <description> Converts one or more arguments to strings in the best way possible and prints them to the console. [codeblock] - a = [1,2,3] - print("a","b",a) # prints ab[1, 2, 3] + a = [1, 2, 3] + print("a", "b", a) # prints ab[1, 2, 3] [/codeblock] </description> </method> @@ -751,6 +751,10 @@ <argument index="0" name="message" type="String"> </argument> <description> + Pushes an error message to Godot's built-in debugger and to the OS terminal. + [codeblock] + push_error("test error") # prints "test error" to debugger and terminal as error call + [/codeblock] </description> </method> <method name="push_warning"> @@ -759,6 +763,10 @@ <argument index="0" name="message" type="String"> </argument> <description> + Pushes a warning message to Godot's built-in debugger and to the OS terminal. + [codeblock] + push_warning("test warning") # prints "test warning" to debugger and terminal as warning call + [/codeblock] </description> </method> <method name="rad2deg"> @@ -1001,7 +1009,7 @@ <description> Returns the tangent of angle [code]s[/code] in radians. [codeblock] - tan( deg2rad(45) ) # returns 1 + tan(deg2rad(45)) # returns 1 [/codeblock] </description> </method> diff --git a/doc/classes/AStar.xml b/doc/classes/AStar.xml index 482566ee9f..e1b79a2a3e 100644 --- a/doc/classes/AStar.xml +++ b/doc/classes/AStar.xml @@ -47,8 +47,7 @@ Adds a new point at the given position with the given identifier. The algorithm prefers points with lower [code]weight_scale[/code] to form a path. The [code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must be 1 or larger. [codeblock] var as = AStar.new() - - as.add_point(1, Vector3(1,0,0), 4) # Adds the point (1,0,0) with weight_scale=4 and id=1 + as.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with weight_scale 4 and id 1 [/codeblock] If there already exists a point for the given id, its position and weight scale are updated to the given values. </description> @@ -81,15 +80,12 @@ <argument index="2" name="bidirectional" type="bool" default="true"> </argument> <description> - Creates a segment between the given points. + Creates a segment between the given points. If [code]bidirectional[/code] is [code]false[/code], only movement from [code]id[/code] to [code]to_id[/code] is allowed, not the reverse direction. [codeblock] var as = AStar.new() - - as.add_point(1, Vector3(1,1,0)) - as.add_point(2, Vector3(0,5,0)) - - as.connect_points(1, 2, false) # If bidirectional=false it's only possible to go from point 1 to point 2 - # and not from point 2 to point 1. + as.add_point(1, Vector3(1, 1, 0)) + as.add_point(2, Vector3(0, 5, 0)) + as.connect_points(1, 2, false) [/codeblock] </description> </method> @@ -129,15 +125,12 @@ Returns the closest position to [code]to_position[/code] that resides inside a segment between two connected points. [codeblock] var as = AStar.new() - - as.add_point(1, Vector3(0,0,0)) - as.add_point(2, Vector3(0,5,0)) - + as.add_point(1, Vector3(0, 0, 0)) + as.add_point(2, Vector3(0, 5, 0)) as.connect_points(1, 2) - - var res = as.get_closest_position_in_segment(Vector3(3,3,0)) # returns (0, 3, 0) + var res = as.get_closest_position_in_segment(Vector3(3, 3, 0)) # returns (0, 3, 0) [/codeblock] - The result is in the segment that goes from [code]y=0[/code] to [code]y=5[/code]. It's the closest position in the segment to the given point. + The result is in the segment that goes from [code]y = 0[/code] to [code]y = 5[/code]. It's the closest position in the segment to the given point. </description> </method> <method name="get_id_path"> @@ -151,11 +144,10 @@ Returns an array with the ids of the points that form the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path. [codeblock] var as = AStar.new() - - as.add_point(1, Vector3(0,0,0)) - as.add_point(2, Vector3(0,1,0), 1) # default weight is 1 - as.add_point(3, Vector3(1,1,0)) - as.add_point(4, Vector3(2,0,0)) + as.add_point(1, Vector3(0, 0, 0)) + as.add_point(2, Vector3(0, 1, 0), 1) # default weight is 1 + as.add_point(3, Vector3(1, 1, 0)) + as.add_point(4, Vector3(2, 0, 0)) as.connect_points(1, 2, false) as.connect_points(2, 3, false) @@ -177,11 +169,10 @@ Returns an array with the ids of the points that form the connect with the given point. [codeblock] var as = AStar.new() - - as.add_point(1, Vector3(0,0,0)) - as.add_point(2, Vector3(0,1,0)) - as.add_point(3, Vector3(1,1,0)) - as.add_point(4, Vector3(2,0,0)) + as.add_point(1, Vector3(0, 0, 0)) + as.add_point(2, Vector3(0, 1, 0)) + as.add_point(3, Vector3(1, 1, 0)) + as.add_point(4, Vector3(2, 0, 0)) as.connect_points(1, 2, true) as.connect_points(1, 3, true) diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml index 3b3638a4f3..499da4b8a3 100644 --- a/doc/classes/AnimationPlayer.xml +++ b/doc/classes/AnimationPlayer.xml @@ -110,6 +110,12 @@ Get the actual playing speed of current animation or 0 if not playing. This speed is the [code]playback_speed[/code] property multiplied by [code]custom_speed[/code] argument specified when calling the [code]play[/code] method. </description> </method> + <method name="get_queue"> + <return type="PoolStringArray"> + </return> + <description> + </description> + </method> <method name="has_animation" qualifiers="const"> <return type="bool"> </return> diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index b013b3c4ae..6bd0ef3421 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -196,10 +196,10 @@ <description> Return true if the array contains given value. [codeblock] - [ "inside", 7 ].has("inside") == true - [ "inside", 7 ].has("outside") == false - [ "inside", 7 ].has(7) == true - [ "inside", 7 ].has("7") == false + ["inside", 7].has("inside") == true + ["inside", 7].has("outside") == false + ["inside", 7].has(7) == true + ["inside", 7].has("7") == false [/codeblock] </description> </method> diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml index 7806cf4ce4..bcb9b4f6da 100644 --- a/doc/classes/ArrayMesh.xml +++ b/doc/classes/ArrayMesh.xml @@ -6,9 +6,9 @@ The [code]ArrayMesh[/code] is used to construct a [Mesh] by specifying the attributes as arrays. The most basic example is the creation of a single triangle [codeblock] var vertices = PoolVector3Array() - vertices.push_back(Vector3(0,1,0)) - vertices.push_back(Vector3(1,0,0)) - vertices.push_back(Vector3(0,0,1)) + vertices.push_back(Vector3(0, 1, 0)) + vertices.push_back(Vector3(1, 0, 0)) + vertices.push_back(Vector3(0, 0, 1)) # Initialize the ArrayMesh. var arr_mesh = ArrayMesh.new() var arrays = [] diff --git a/doc/classes/AudioServer.xml b/doc/classes/AudioServer.xml index 3ae5454e65..e1939e679d 100644 --- a/doc/classes/AudioServer.xml +++ b/doc/classes/AudioServer.xml @@ -61,6 +61,15 @@ Generates an [AudioBusLayout] using the available busses and effects. </description> </method> + <method name="get_bus_channels" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="bus_idx" type="int"> + </argument> + <description> + Returns the amount of channels of the bus at index [code]bus_idx[/code]. + </description> + </method> <method name="get_bus_count" qualifiers="const"> <return type="int"> </return> diff --git a/doc/classes/AudioStreamSample.xml b/doc/classes/AudioStreamSample.xml index 9e56cc6016..77d5f14ab7 100644 --- a/doc/classes/AudioStreamSample.xml +++ b/doc/classes/AudioStreamSample.xml @@ -62,5 +62,8 @@ <constant name="LOOP_PING_PONG" value="2" enum="LoopMode"> Audio loops the data between loop_begin and loop_end playing back and forth. </constant> + <constant name="LOOP_BACKWARD" value="3" enum="LoopMode"> + Audio loops the data between loop_begin and loop_end playing backward only. + </constant> </constants> </class> diff --git a/doc/classes/ButtonGroup.xml b/doc/classes/ButtonGroup.xml index e839c3e750..6273c8f83f 100644 --- a/doc/classes/ButtonGroup.xml +++ b/doc/classes/ButtonGroup.xml @@ -12,18 +12,21 @@ <demos> </demos> <methods> + <method name="get_buttons"> + <return type="Array"> + </return> + <description> + Returns an [Array] of [Button]s who have this as their [code]ButtonGroup[/code] (see [member BaseButton.group]). + </description> + </method> <method name="get_pressed_button"> <return type="BaseButton"> </return> <description> - Return the pressed button. + Returns the current pressed button. </description> </method> </methods> <constants> </constants> - <theme_items> - <theme_item name="panel" type="StyleBox"> - </theme_item> - </theme_items> </class> diff --git a/doc/classes/CPUParticles.xml b/doc/classes/CPUParticles.xml index c778cd56b3..2073ca0664 100644 --- a/doc/classes/CPUParticles.xml +++ b/doc/classes/CPUParticles.xml @@ -127,11 +127,11 @@ </member> <member name="randomness" type="float" setter="set_randomness_ratio" getter="get_randomness_ratio"> </member> - <member name="scale" type="float" setter="set_param" getter="get_param"> + <member name="scale_amount" type="float" setter="set_param" getter="get_param"> </member> - <member name="scale_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + <member name="scale_amount_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> </member> - <member name="scale_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + <member name="scale_amount_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> </member> <member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale"> </member> diff --git a/doc/classes/CPUParticles2D.xml b/doc/classes/CPUParticles2D.xml index bae725d47c..12a176589c 100644 --- a/doc/classes/CPUParticles2D.xml +++ b/doc/classes/CPUParticles2D.xml @@ -123,11 +123,11 @@ </member> <member name="randomness" type="float" setter="set_randomness_ratio" getter="get_randomness_ratio"> </member> - <member name="scale" type="float" setter="set_param" getter="get_param"> + <member name="scale_amount" type="float" setter="set_param" getter="get_param"> </member> - <member name="scale_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + <member name="scale_amount_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> </member> - <member name="scale_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + <member name="scale_amount_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> </member> <member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale"> </member> diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml index 4bae656740..9e62cde019 100644 --- a/doc/classes/CanvasItem.xml +++ b/doc/classes/CanvasItem.xml @@ -135,7 +135,7 @@ <method name="draw_multimesh"> <return type="void"> </return> - <argument index="0" name="mesh" type="Mesh"> + <argument index="0" name="multimesh" type="MultiMesh"> </argument> <argument index="1" name="texture" type="Texture"> </argument> diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml index 82a10fbaa4..68f5734491 100644 --- a/doc/classes/Color.xml +++ b/doc/classes/Color.xml @@ -19,11 +19,6 @@ </argument> <description> Constructs a color from an HTML hexadecimal color string in ARGB or RGB format. See also [method @GDScript.ColorN]. - The following string formats are supported: - [code]"#ff00ff00"[/code] - ARGB format with '#' - [code]"ff00ff00"[/code] - ARGB format - [code]"#ff00ff"[/code] - RGB format with '#' - [code]"ff00ff"[/code] - RGB format [codeblock] # Each of the following creates the same color RGBA(178, 217, 10, 255) var c1 = Color("#ffb2d90a") # ARGB format with '#' @@ -57,7 +52,7 @@ <description> Constructs a color from an RGB profile using values between 0 and 1. Alpha will always be 1. [codeblock] - var c = Color(0.2, 1.0, .7) # Equivalent to RGBA(51, 255, 178, 255) + var c = Color(0.2, 1.0, 0.7) # Equivalent to RGBA(51, 255, 178, 255) [/codeblock] </description> </method> @@ -75,7 +70,7 @@ <description> Constructs a color from an RGBA profile using values between 0 and 1. [codeblock] - var c = Color(0.2, 1.0, .7, .8) # Equivalent to RGBA(51, 255, 178, 204) + var c = Color(0.2, 1.0, 0.7, 0.8) # Equivalent to RGBA(51, 255, 178, 204) [/codeblock] </description> </method> @@ -88,8 +83,8 @@ Returns a new color resulting from blending this color over another. If the color is opaque, the result is also opaque. The second color may have a range of alpha values. [codeblock] var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50% - var fg = Color(1.0, 0.0, 0.0, .5) # Red with alpha of 50% - var blendedColor = bg.blend(fg) # Brown with alpha of 75% + var fg = Color(1.0, 0.0, 0.0, 0.5) # Red with alpha of 50% + var blended_color = bg.blend(fg) # Brown with alpha of 75% [/codeblock] </description> </method> @@ -99,8 +94,8 @@ <description> Returns the most contrasting color. [codeblock] - var c = Color(.3, .4, .9) - var contrastedColor = c.contrasted() # Equivalent to RGBA(204, 229, 102, 255) + var c = Color(0.3, 0.4, 0.9) + var contrasted_color = c.contrasted() # Equivalent to RGBA(204, 229, 102, 255) [/codeblock] </description> </method> @@ -110,7 +105,7 @@ <argument index="0" name="amount" type="float"> </argument> <description> - Returns a new color resulting from making this color darker by the specified percentage (0-1). + Returns a new color resulting from making this color darker by the specified percentage (ratio from 0 to 1). [codeblock] var green = Color(0.0, 1.0, 0.0) var darkgreen = green.darkened(0.2) # 20% darker than regular green @@ -140,7 +135,7 @@ </return> <description> Returns the color's grayscale representation. - The gray is calculated by [code](r + g + b) / 3[/code]. + The gray value is calculated as [code](r + g + b) / 3[/code]. [codeblock] var c = Color(0.2, 0.45, 0.82) var gray = c.gray() # a value of 0.466667 @@ -153,8 +148,8 @@ <description> Returns the inverted color [code](1 - r, 1 - g, 1 - b, 1 - a)[/code]. [codeblock] - var c = Color(.3, .4, .9) - var invertedColor = c.inverted() # a color of an RGBA(178, 153, 26, 255) + var c = Color(0.3, 0.4, 0.9) + var inverted_color = c.inverted() # a color of an RGBA(178, 153, 26, 255) [/codeblock] </description> </method> @@ -164,7 +159,7 @@ <argument index="0" name="amount" type="float"> </argument> <description> - Returns a new color resulting from making this color lighter by the specified percentage (0-1). + Returns a new color resulting from making this color lighter by the specified percentage (ratio from 0 to 1). [codeblock] var green = Color(0.0, 1.0, 0.0) var lightgreen = green.lightened(0.2) # 20% lighter than regular green @@ -179,7 +174,7 @@ <argument index="1" name="t" type="float"> </argument> <description> - Returns the linear interpolation with another color. The value t is between 0 and 1. + Returns the linear interpolation with another color. The interpolation factor [code]t[/code] is between 0 and 1. [codeblock] var c1 = Color(1.0, 0.0, 0.0) var c2 = Color(0.0, 1.0, 0.0) @@ -193,7 +188,7 @@ <description> Returns the color's 32-bit integer in ABGR format (each byte represents a component of the ABGR profile). ABGR is the reversed version of the default format. [codeblock] - var c = Color(1, .5, .2) + var c = Color(1, 0.5, 0.2) print(c.to_abgr32()) # Prints 4281565439 [/codeblock] </description> @@ -204,7 +199,7 @@ <description> Returns the color's 64-bit integer in ABGR format (each word represents a component of the ABGR profile). ABGR is the reversed version of the default format. [codeblock] - var c = Color(1, .5, .2) + var c = Color(1, 0.5, 0.2) print(c.to_abgr64()) # Prints -225178692812801 [/codeblock] </description> @@ -215,7 +210,7 @@ <description> Returns the color's 32-bit integer in ARGB format (each byte represents a component of the ARGB profile). ARGB is more compatible with DirectX. [codeblock] - var c = Color(1, .5, .2) + var c = Color(1, 0.5, 0.2) print(c.to_argb32()) # Prints 4294934323 [/codeblock] </description> @@ -226,7 +221,7 @@ <description> Returns the color's 64-bit integer in ARGB format (each word represents a component of the ARGB profile). ARGB is more compatible with DirectX. [codeblock] - var c = Color(1, .5, .2) + var c = Color(1, 0.5, 0.2) print(c.to_argb64()) # Prints -2147470541 [/codeblock] </description> @@ -240,7 +235,7 @@ Returns the color's HTML hexadecimal color string in ARGB format (ex: [code]ff34f822[/code]). Setting [code]with_alpha[/code] to [code]false[/code] excludes alpha from the hexadecimal string. [codeblock] - var c = Color(1, 1, 1, .5) + var c = Color(1, 1, 1, 0.5) var s1 = c.to_html() # Results "7fffffff" var s2 = c.to_html(false) # Results 'ffffff' [/codeblock] @@ -252,7 +247,7 @@ <description> Returns the color's 32-bit integer in RGBA format (each byte represents a component of the RGBA profile). RGBA is Godot's default format. [codeblock] - var c = Color(1, .5, .2) + var c = Color(1, 0.5, 0.2) print(c.to_rgba32()) # Prints 4286526463 [/codeblock] </description> @@ -263,7 +258,7 @@ <description> Returns the color's 64-bit integer in RGBA format (each word represents a component of the RGBA profile). RGBA is Godot's default format. [codeblock] - var c = Color(1, .5, .2) + var c = Color(1, 0.5, 0.2) print(c.to_rgba64()) # Prints -140736629309441 [/codeblock] </description> diff --git a/doc/classes/ColorPicker.xml b/doc/classes/ColorPicker.xml index 554e6b5632..b3a0164704 100644 --- a/doc/classes/ColorPicker.xml +++ b/doc/classes/ColorPicker.xml @@ -20,6 +20,22 @@ Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them. Note: the presets list is only for [i]this[/i] color picker. </description> </method> + <method name="erase_preset"> + <return type="void"> + </return> + <argument index="0" name="color" type="Color"> + </argument> + <description> + Remove the given color from the list of color presets of this color picker. + </description> + </method> + <method name="get_presets" qualifiers="const"> + <return type="PoolColorArray"> + </return> + <description> + Return the list of colors in the presets of the color picker. + </description> + </method> </methods> <members> <member name="color" type="Color" setter="set_pick_color" getter="get_pick_color"> @@ -43,6 +59,20 @@ Emitted when the color is changed. </description> </signal> + <signal name="preset_added"> + <argument index="0" name="color" type="Color"> + </argument> + <description> + Emitted when a preset is added. + </description> + </signal> + <signal name="preset_removed"> + <argument index="0" name="color" type="Color"> + </argument> + <description> + Emitted when a preset is removed. + </description> + </signal> </signals> <constants> </constants> diff --git a/doc/classes/ConvexPolygonShape2D.xml b/doc/classes/ConvexPolygonShape2D.xml index 6b31149c2f..8210e7dc9c 100644 --- a/doc/classes/ConvexPolygonShape2D.xml +++ b/doc/classes/ConvexPolygonShape2D.xml @@ -18,7 +18,7 @@ <argument index="0" name="point_cloud" type="PoolVector2Array"> </argument> <description> - Currently, this method does nothing. + Based on the set of points provided, this creates and assigns the [member points] property using the convex hull algorithm. Removing all unneeded points. See [method Geometry.convex_hull_2d] for details. </description> </method> </methods> diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml index 24201c39b9..d1e90470e1 100644 --- a/doc/classes/EditorImportPlugin.xml +++ b/doc/classes/EditorImportPlugin.xml @@ -35,7 +35,7 @@ func get_import_options(i): return [{"name": "my_option", "default_value": false}] - func import(source_file, save_path, options, r_platform_variants, r_gen_files): + func import(source_file, save_path, options, platform_variants, gen_files): var file = File.new() if file.open(source_file, File.READ) != OK: return FAILED diff --git a/doc/classes/EditorScenePostImport.xml b/doc/classes/EditorScenePostImport.xml index 0c5de68d98..e69f3b0119 100644 --- a/doc/classes/EditorScenePostImport.xml +++ b/doc/classes/EditorScenePostImport.xml @@ -20,7 +20,7 @@ func iterate(node): if node != null: - node.name = "modified_"+node.name + node.name = "modified_" + node.name for child in node.get_children(): iterate(child) [/codeblock] diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml index 949c93761e..80281a603a 100644 --- a/doc/classes/Environment.xml +++ b/doc/classes/Environment.xml @@ -159,6 +159,8 @@ <member name="glow_enabled" type="bool" setter="set_glow_enabled" getter="is_glow_enabled"> Enables glow rendering. </member> + <member name="glow_hdr_luminance_cap" type="float" setter="set_glow_hdr_luminance_cap" getter="get_glow_hdr_luminance_cap"> + </member> <member name="glow_hdr_scale" type="float" setter="set_glow_hdr_bleed_scale" getter="get_glow_hdr_bleed_scale"> Bleed scale of the HDR glow. </member> diff --git a/doc/classes/Generic6DOFJoint.xml b/doc/classes/Generic6DOFJoint.xml index e1046e282a..b6ac69e257 100644 --- a/doc/classes/Generic6DOFJoint.xml +++ b/doc/classes/Generic6DOFJoint.xml @@ -242,6 +242,8 @@ </member> <member name="linear_spring_z/stiffness" type="float" setter="set_param_z" getter="get_param_z"> </member> + <member name="precision" type="int" setter="set_precision" getter="get_precision"> + </member> </members> <constants> <constant name="PARAM_LINEAR_LOWER_LIMIT" value="0" enum="Param"> diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml index 2f21505757..3172a5d6c0 100644 --- a/doc/classes/HTTPClient.xml +++ b/doc/classes/HTTPClient.xml @@ -108,14 +108,14 @@ Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.: [codeblock] var fields = {"username": "user", "password": "pass"} - String queryString = httpClient.query_string_from_dict(fields) - returns:= "username=user&password=pass" + String query_string = http_client.query_string_from_dict(fields) + # returns: "username=user&password=pass" [/codeblock] Furthermore, if a key has a null value, only the key itself is added, without equal sign and value. If the value is an array, for each value in it a pair with the same key is added. [codeblock] var fields = {"single": 123, "not_valued": null, "multiple": [22, 33, 44]} - String queryString = httpClient.query_string_from_dict(fields) - returns:= "single=123&not_valued&multiple=22&multiple=33&multiple=44" + String query_string = http_client.query_string_from_dict(fields) + # returns: "single=123&not_valued&multiple=22&multiple=33&multiple=44" [/codeblock] </description> </method> @@ -143,9 +143,9 @@ To create a POST request with query strings to push to the server, do: [codeblock] var fields = {"username" : "user", "password" : "pass"} - var queryString = httpClient.query_string_from_dict(fields) - var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(queryString.length())] - var result = httpClient.request(httpClient.METHOD_POST, "index.php", headers, queryString) + var query_string = http_client.query_string_from_dict(fields) + var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(query_string.length())] + var result = http_client.request(http_client.METHOD_POST, "index.php", headers, query_string) [/codeblock] </description> </method> diff --git a/doc/classes/MainLoop.xml b/doc/classes/MainLoop.xml index ad763e6532..01836cff95 100644 --- a/doc/classes/MainLoop.xml +++ b/doc/classes/MainLoop.xml @@ -136,5 +136,7 @@ </constant> <constant name="NOTIFICATION_CRASH" value="92"> </constant> + <constant name="NOTIFICATION_OS_IME_UPDATE" value="93"> + </constant> </constants> </class> diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml index c9a8d3ce7a..636edd504b 100644 --- a/doc/classes/MenuButton.xml +++ b/doc/classes/MenuButton.xml @@ -27,6 +27,11 @@ </description> </method> </methods> + <members> + <member name="switch_on_hover" type="bool" setter="set_switch_on_hover" getter="is_switch_on_hover"> + If [code]true[/code], when the cursor hovers above another MenuButton within the same parent which also has [code]switch_on_hover[/code] enabled, it will close the current MenuButton and open the other one. + </member> + </members> <signals> <signal name="about_to_show"> <description> diff --git a/doc/classes/MeshDataTool.xml b/doc/classes/MeshDataTool.xml index c90dba1561..7bd98323c7 100644 --- a/doc/classes/MeshDataTool.xml +++ b/doc/classes/MeshDataTool.xml @@ -11,9 +11,9 @@ var mdt = MeshDataTool.new() mdt.create_from_surface(mesh, 0) for i in range(mdt.get_vertex_count()): - var vertex = mdt.get_vertex(i) - ... - mdt.set_vertex(i, vertex) + var vertex = mdt.get_vertex(i) + ... + mdt.set_vertex(i, vertex) mesh.surface_remove(0) mdt.commit_to_surface(mesh) [/codeblock] diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index e218949757..ac865de3cd 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -210,6 +210,20 @@ Returns the path to the current engine executable. </description> </method> + <method name="get_ime_selection" qualifiers="const"> + <return type="Vector2"> + </return> + <description> + Returns IME selection range. + </description> + </method> + <method name="get_ime_text" qualifiers="const"> + <return type="String"> + </return> + <description> + Returns IME intermediate text. + </description> + </method> <method name="get_latin_keyboard_variant" qualifiers="const"> <return type="String"> </return> @@ -663,12 +677,22 @@ Sets the game's icon. </description> </method> + <method name="set_ime_active"> + <return type="void"> + </return> + <argument index="0" name="active" type="bool"> + </argument> + <description> + Sets whether IME input mode should be enabled. + </description> + </method> <method name="set_ime_position"> <return type="void"> </return> <argument index="0" name="position" type="Vector2"> </argument> <description> + Sets position of IME suggestion list popup (in window coordinates). </description> </method> <method name="set_thread_name"> diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml index 86de830d56..e358ad90b5 100644 --- a/doc/classes/Object.xml +++ b/doc/classes/Object.xml @@ -4,7 +4,8 @@ Base class for all non built-in types. </brief_description> <description> - Base class for all non built-in types. Everything not a built-in type starts the inheritance chain from this class. + Base class for all non built-in types. Everything which is not a built-in type starts the inheritance chain from this class. + Objects can be constructed from scripting languages, using `Object.new()` in GDScript, `new Object` in C#, or the "Construct Object" node in VisualScript. Objects do not manage memory, if inheriting from one the object will most likely have to be deleted manually (call the [method free] function from the script or delete from C++). Some derivatives add memory management, such as [Reference] (which keeps a reference count and deletes itself automatically when no longer referenced) and [Node], which deletes the children tree when deleted. Objects export properties, which are mainly useful for storage and editing, but not really so much in programming. Properties are exported in [method _get_property_list] and handled in [method _get] and [method _set]. However, scripting languages and C++ have simpler means to export them. diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 7a9918237f..92d5415ed6 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -184,6 +184,9 @@ <member name="application/config/use_custom_user_dir" type="bool" setter="" getter=""> Allow the project to save to its own custom user dir (in AppData on windows or ~/.config on unixes). This setting only works for desktop exporters. A name must be set in the "custom_user_dir_name" setting for this to take effect. </member> + <member name="application/config/project_settings_override" type="String" setter="" getter=""> + Specifies a file to override project settings. For example: user://custom_settings.cfg. + </member> <member name="application/run/disable_stderr" type="bool" setter="" getter=""> Disable printing to stderr on exported build. </member> @@ -210,6 +213,9 @@ </member> <member name="audio/driver" type="String" setter="" getter=""> </member> + <member name="audio/enable_audio_input" type="bool" setter="" getter=""> + This option should be enabled if project works with microphone. + </member> <member name="audio/mix_rate" type="int" setter="" getter=""> Mix rate used for audio. In general, it's better to not touch this and leave it to the host operating system. </member> diff --git a/doc/classes/RandomNumberGenerator.xml b/doc/classes/RandomNumberGenerator.xml index aee9654561..5badfba923 100644 --- a/doc/classes/RandomNumberGenerator.xml +++ b/doc/classes/RandomNumberGenerator.xml @@ -10,7 +10,14 @@ <demos> </demos> <methods> - <method name="rand_range"> + <method name="randf"> + <return type="float"> + </return> + <description> + Generates pseudo-random float between '0.0' and '1.0'. + </description> + </method> + <method name="randf_range"> <return type="float"> </return> <argument index="0" name="from" type="float"> @@ -21,18 +28,22 @@ Generates pseudo-random float between [code]from[/code] and [code]to[/code]. </description> </method> - <method name="randf"> - <return type="float"> + <method name="randi"> + <return type="int"> </return> <description> - Generates pseudo-random float between '0.0' and '1.0'. + Generates pseudo-random 32-bit unsigned integer between '0' and '4294967295'. </description> </method> - <method name="randi"> + <method name="randi_range"> <return type="int"> </return> + <argument index="0" name="from" type="int"> + </argument> + <argument index="1" name="to" type="int"> + </argument> <description> - Generates pseudo-random 32-bit integer between '0' and '4294967295'. + Generates pseudo-random 32-bit signed integer between [code]from[/code] and [code]to[/code](inclusive). </description> </method> <method name="randomize"> diff --git a/doc/classes/ScriptCreateDialog.xml b/doc/classes/ScriptCreateDialog.xml index 67ce9a8e87..ac0384e1d4 100644 --- a/doc/classes/ScriptCreateDialog.xml +++ b/doc/classes/ScriptCreateDialog.xml @@ -7,9 +7,9 @@ The ScriptCreateDialog creates script files according to a given template for a given scripting language. The standard use is to configure its fields prior to calling a [method popup]() method. [codeblock] func _ready(): - dialog.config("Node", "res://new_node.gd") # for in-engine types - dialog.config("\"res://base_node.gd\"", "res://derived_node.gd") # for script types - dialog.popup_centered() + dialog.config("Node", "res://new_node.gd") # for in-engine types + dialog.config("\"res://base_node.gd\"", "res://derived_node.gd") # for script types + dialog.popup_centered() [/codeblock] </description> <tutorials> diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml index a958c3fcfa..b2e3885ff2 100644 --- a/doc/classes/TextEdit.xml +++ b/doc/classes/TextEdit.xml @@ -467,7 +467,9 @@ <constant name="MENU_UNDO" value="5" enum="MenuItems"> Undoes the previous action. </constant> - <constant name="MENU_MAX" value="6" enum="MenuItems"> + <constant name="MENU_REDO" value="6" enum="MenuItems"> + </constant> + <constant name="MENU_MAX" value="7" enum="MenuItems"> </constant> </constants> <theme_items> diff --git a/doc/classes/Theme.xml b/doc/classes/Theme.xml index fe43b54d5e..8c6acd2c51 100644 --- a/doc/classes/Theme.xml +++ b/doc/classes/Theme.xml @@ -12,6 +12,12 @@ <demos> </demos> <methods> + <method name="clear"> + <return type="void"> + </return> + <description> + </description> + </method> <method name="clear_color"> <return type="void"> </return> diff --git a/doc/classes/VisualServer.xml b/doc/classes/VisualServer.xml index b24eeaa112..d2bc56001c 100644 --- a/doc/classes/VisualServer.xml +++ b/doc/classes/VisualServer.xml @@ -1161,7 +1161,9 @@ </argument> <argument index="8" name="hdr_bleed_scale" type="float"> </argument> - <argument index="9" name="bicubic_upscale" type="bool"> + <argument index="9" name="hdr_luminance_cap" type="float"> + </argument> + <argument index="10" name="bicubic_upscale" type="bool"> </argument> <description> </description> diff --git a/doc/classes/WorldEnvironment.xml b/doc/classes/WorldEnvironment.xml index 45e1af4e42..8c212502d6 100644 --- a/doc/classes/WorldEnvironment.xml +++ b/doc/classes/WorldEnvironment.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="WorldEnvironment" inherits="Node" category="Core" version="3.1"> <brief_description> - Default environment properties for the entire scene (post-processing effects, lightning and background settings). + Default environment properties for the entire scene (post-processing effects, lighting and background settings). </brief_description> <description> The [code]WorldEnvironment[/code] node is used to configure the default [Environment] for the scene. diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py index 7b7cc52547..9e83dfb55e 100755 --- a/doc/tools/makerst.py +++ b/doc/tools/makerst.py @@ -280,7 +280,7 @@ def rstize_text(text, cclass): escape_post = True # Properly escape things like `[Node]s` - if escape_post and post_text and post_text[0].isalnum(): # not punctuation, escape + if escape_post and post_text and (post_text[0].isalnum() or post_text[0] == "("): # not punctuation, escape post_text = '\ ' + post_text next_brac_pos = post_text.find('[', 0) diff --git a/drivers/alsa/audio_driver_alsa.cpp b/drivers/alsa/audio_driver_alsa.cpp index 50697b8834..2e3861f500 100644 --- a/drivers/alsa/audio_driver_alsa.cpp +++ b/drivers/alsa/audio_driver_alsa.cpp @@ -159,7 +159,7 @@ Error AudioDriverALSA::init() { } return err; -}; +} void AudioDriverALSA::thread_func(void *p_udata) { @@ -232,25 +232,25 @@ void AudioDriverALSA::thread_func(void *p_udata) { ad->stop_counting_ticks(); ad->unlock(); - }; + } ad->thread_exited = true; -}; +} void AudioDriverALSA::start() { active = true; -}; +} int AudioDriverALSA::get_mix_rate() const { return mix_rate; -}; +} AudioDriver::SpeakerMode AudioDriverALSA::get_speaker_mode() const { return speaker_mode; -}; +} Array AudioDriverALSA::get_device_list() { @@ -302,14 +302,14 @@ void AudioDriverALSA::lock() { if (!thread || !mutex) return; mutex->lock(); -}; +} void AudioDriverALSA::unlock() { if (!thread || !mutex) return; mutex->unlock(); -}; +} void AudioDriverALSA::finish_device() { @@ -337,18 +337,15 @@ void AudioDriverALSA::finish() { finish_device(); } -AudioDriverALSA::AudioDriverALSA() { - - mutex = NULL; - thread = NULL; - pcm_handle = NULL; - - device_name = "Default"; - new_device = "Default"; -}; - -AudioDriverALSA::~AudioDriverALSA(){ +AudioDriverALSA::AudioDriverALSA() : + thread(NULL), + mutex(NULL), + pcm_handle(NULL), + device_name("Default"), + new_device("Default") { +} -}; +AudioDriverALSA::~AudioDriverALSA() { +} #endif diff --git a/drivers/coreaudio/audio_driver_coreaudio.cpp b/drivers/coreaudio/audio_driver_coreaudio.cpp index 850b90d59b..3d093b965a 100644 --- a/drivers/coreaudio/audio_driver_coreaudio.cpp +++ b/drivers/coreaudio/audio_driver_coreaudio.cpp @@ -159,7 +159,10 @@ Error AudioDriverCoreAudio::init() { result = AudioUnitInitialize(audio_unit); ERR_FAIL_COND_V(result != noErr, FAILED); - return capture_init(); + if (GLOBAL_GET("audio/enable_audio_input")) { + return capture_init(); + } + return OK; } OSStatus AudioDriverCoreAudio::output_callback(void *inRefCon, @@ -684,22 +687,18 @@ String AudioDriverCoreAudio::capture_get_device() { #endif -AudioDriverCoreAudio::AudioDriverCoreAudio() { - audio_unit = NULL; - input_unit = NULL; - active = false; - mutex = NULL; - - mix_rate = 0; - channels = 2; - capture_channels = 2; - - buffer_frames = 0; - +AudioDriverCoreAudio::AudioDriverCoreAudio() : + audio_unit(NULL), + input_unit(NULL), + active(false), + mutex(NULL), + device_name("Default"), + capture_device_name("Default"), + mix_rate(0), + channels(2), + capture_channels(2), + buffer_frames(0) { samples_in.clear(); - - device_name = "Default"; - capture_device_name = "Default"; } AudioDriverCoreAudio::~AudioDriverCoreAudio(){}; diff --git a/drivers/coremidi/core_midi.cpp b/drivers/coremidi/core_midi.cpp index 2ebbabaa38..a20aec04b5 100644 --- a/drivers/coremidi/core_midi.cpp +++ b/drivers/coremidi/core_midi.cpp @@ -112,13 +112,11 @@ PoolStringArray MIDIDriverCoreMidi::get_connected_inputs() { return list; } -MIDIDriverCoreMidi::MIDIDriverCoreMidi() { - - client = 0; +MIDIDriverCoreMidi::MIDIDriverCoreMidi() : + client(0) { } MIDIDriverCoreMidi::~MIDIDriverCoreMidi() { - close(); } diff --git a/drivers/dummy/rasterizer_dummy.h b/drivers/dummy/rasterizer_dummy.h index 7c095e3798..dfdb3a6bba 100644 --- a/drivers/dummy/rasterizer_dummy.h +++ b/drivers/dummy/rasterizer_dummy.h @@ -63,7 +63,8 @@ public: void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) {} void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) {} - void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, bool p_bicubic_upscale) {} + void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) {} + void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) {} void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance, bool p_roughness) {} diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp index 6eafdb0e1c..25d7df8ebc 100644 --- a/drivers/gles2/rasterizer_scene_gles2.cpp +++ b/drivers/gles2/rasterizer_scene_gles2.cpp @@ -708,7 +708,7 @@ void RasterizerSceneGLES2::environment_set_dof_blur_near(RID p_env, bool p_enabl ERR_FAIL_COND(!env); } -void RasterizerSceneGLES2::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, bool p_bicubic_upscale) { +void RasterizerSceneGLES2::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) { Environment *env = environment_owner.getornull(p_env); ERR_FAIL_COND(!env); } @@ -2017,6 +2017,8 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements, ShadowAtlas *shadow_atlas = shadow_atlas_owner.getornull(p_shadow_atlas); + Vector2 viewport_size = state.viewport_size; + Vector2 screen_pixel_size = state.screen_pixel_size; bool use_radiance_map = false; @@ -2335,6 +2337,8 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements, state.scene_shader.set_uniform(SceneShaderGLES2::TIME, storage->frame.time[0]); + state.scene_shader.set_uniform(SceneShaderGLES2::VIEWPORT_SIZE, viewport_size); + state.scene_shader.set_uniform(SceneShaderGLES2::SCREEN_PIXEL_SIZE, screen_pixel_size); } @@ -2506,8 +2510,6 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const } current_fb = probe->fbo[p_reflection_probe_pass]; - state.screen_pixel_size.x = 1.0 / probe->probe_ptr->resolution; - state.screen_pixel_size.y = 1.0 / probe->probe_ptr->resolution; viewport_width = probe->probe_ptr->resolution; viewport_height = probe->probe_ptr->resolution; @@ -2518,11 +2520,16 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const state.render_no_shadows = false; current_fb = storage->frame.current_rt->fbo; env = environment_owner.getornull(p_environment); - state.screen_pixel_size.x = 1.0 / storage->frame.current_rt->width; - state.screen_pixel_size.y = 1.0 / storage->frame.current_rt->height; + viewport_width = storage->frame.current_rt->width; viewport_height = storage->frame.current_rt->height; } + + state.viewport_size.x = viewport_width; + state.viewport_size.y = viewport_height; + state.screen_pixel_size.x = 1.0 / viewport_width; + state.screen_pixel_size.y = 1.0 / viewport_height; + //push back the directional lights if (p_light_cull_count) { @@ -2587,9 +2594,30 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const glClearDepth(1.0f); glEnable(GL_DEPTH_TEST); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + // clear color + + Color clear_color(0, 0, 0, 0); - storage->frame.clear_request = false; + if (storage->frame.current_rt && storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT]) { + clear_color = Color(0, 0, 0, 0); + storage->frame.clear_request = false; + } else if (!env || env->bg_mode == VS::ENV_BG_CLEAR_COLOR || env->bg_mode == VS::ENV_BG_SKY) { + if (storage->frame.clear_request) { + clear_color = storage->frame.clear_request_color.to_linear(); + storage->frame.clear_request = false; + } + } else if (env->bg_mode == VS::ENV_BG_CANVAS || env->bg_mode == VS::ENV_BG_COLOR || env->bg_mode == VS::ENV_BG_COLOR_SKY) { + clear_color = env->bg_color.to_linear(); + storage->frame.clear_request = false; + } else { + storage->frame.clear_request = false; + } + + if (!env || env->bg_mode != VS::ENV_BG_KEEP) { + glClearColor(clear_color.r, clear_color.g, clear_color.b, clear_color.a); + } + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); diff --git a/drivers/gles2/rasterizer_scene_gles2.h b/drivers/gles2/rasterizer_scene_gles2.h index 7d9920158f..4236554d9d 100644 --- a/drivers/gles2/rasterizer_scene_gles2.h +++ b/drivers/gles2/rasterizer_scene_gles2.h @@ -211,6 +211,8 @@ public: bool render_no_shadows; + Vector2 viewport_size; + Vector2 screen_pixel_size; } state; @@ -369,33 +371,28 @@ public: float fog_height_max; float fog_height_curve; - Environment() { - bg_mode = VS::ENV_BG_CLEAR_COLOR; - sky_custom_fov = 0.0; - bg_energy = 1.0; - sky_ambient = 0; - ambient_energy = 1.0; - ambient_sky_contribution = 0.0; - canvas_max_layer = 0; - - fog_enabled = false; - fog_color = Color(0.5, 0.5, 0.5); - fog_sun_color = Color(0.8, 0.8, 0.0); - fog_sun_amount = 0; - - fog_depth_enabled = true; - - fog_depth_begin = 10; - fog_depth_end = 0; - fog_depth_curve = 1; - - fog_transmit_enabled = true; - fog_transmit_curve = 1; - - fog_height_enabled = false; - fog_height_min = 0; - fog_height_max = 100; - fog_height_curve = 1; + Environment() : + bg_mode(VS::ENV_BG_CLEAR_COLOR), + sky_custom_fov(0.0), + bg_energy(1.0), + sky_ambient(0), + ambient_energy(1.0), + ambient_sky_contribution(0.0), + canvas_max_layer(0), + fog_enabled(false), + fog_color(Color(0.5, 0.5, 0.5)), + fog_sun_color(Color(0.8, 0.8, 0.0)), + fog_sun_amount(0), + fog_depth_enabled(true), + fog_depth_begin(10), + fog_depth_end(0), + fog_depth_curve(1), + fog_transmit_enabled(true), + fog_transmit_curve(1), + fog_height_enabled(false), + fog_height_min(0), + fog_height_max(100), + fog_height_curve(1) { } }; @@ -413,7 +410,7 @@ public: virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); - virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, bool p_bicubic_upscale); + virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale); virtual void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture); virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_in, float p_fade_out, float p_depth_tolerance, bool p_roughness); diff --git a/drivers/gles2/rasterizer_storage_gles2.h b/drivers/gles2/rasterizer_storage_gles2.h index 5bdc65a0b5..ec7616b9f3 100644 --- a/drivers/gles2/rasterizer_storage_gles2.h +++ b/drivers/gles2/rasterizer_storage_gles2.h @@ -131,10 +131,9 @@ public: } } render, render_final, snap; - Info() { - - texture_mem = 0; - vertex_mem = 0; + Info() : + texture_mem(0), + vertex_mem(0) { render.reset(); render_final.reset(); } @@ -254,30 +253,31 @@ public: VisualServer::TextureDetectCallback detect_normal; void *detect_normal_ud; - Texture() { - alloc_width = 0; - alloc_height = 0; - target = 0; - - stored_cube_sides = 0; - ignore_mipmaps = false; - render_target = NULL; - flags = width = height = 0; - tex_id = 0; - data_size = 0; - format = Image::FORMAT_L8; - active = false; - compressed = false; - total_data_size = 0; - mipmaps = 0; - detect_3d = NULL; - detect_3d_ud = NULL; - detect_srgb = NULL; - detect_srgb_ud = NULL; - detect_normal = NULL; - detect_normal_ud = NULL; - proxy = NULL; - redraw_if_visible = false; + Texture() : + proxy(NULL), + flags(0), + width(0), + height(0), + alloc_width(0), + alloc_height(0), + format(Image::FORMAT_L8), + target(0), + data_size(0), + total_data_size(0), + ignore_mipmaps(false), + compressed(false), + mipmaps(0), + active(false), + tex_id(0), + stored_cube_sides(0), + render_target(NULL), + redraw_if_visible(false), + detect_3d(NULL), + detect_3d_ud(NULL), + detect_srgb(NULL), + detect_srgb_ud(NULL), + detect_normal(NULL), + detect_normal_ud(NULL) { } _ALWAYS_INLINE_ Texture *get_ptr() { @@ -615,20 +615,15 @@ public: int total_data_size; - Surface() { - array_byte_size = 0; - index_array_byte_size = 0; - - array_len = 0; - index_array_len = 0; - - mesh = NULL; - - primitive = VS::PRIMITIVE_POINTS; - - active = false; - - total_data_size = 0; + Surface() : + mesh(NULL), + array_len(0), + index_array_len(0), + array_byte_size(0), + index_array_byte_size(0), + primitive(VS::PRIMITIVE_POINTS), + active(false), + total_data_size(0) { } }; @@ -658,9 +653,9 @@ public: } } - Mesh() { - blend_shape_mode = VS::BLEND_SHAPE_MODE_NORMALIZED; - blend_shape_count = 0; + Mesh() : + blend_shape_count(0), + blend_shape_mode(VS::BLEND_SHAPE_MODE_NORMALIZED) { } }; @@ -731,22 +726,18 @@ public: bool dirty_data; MultiMesh() : + size(0), + transform_format(VS::MULTIMESH_TRANSFORM_2D), + color_format(VS::MULTIMESH_COLOR_NONE), + custom_data_format(VS::MULTIMESH_CUSTOM_DATA_NONE), update_list(this), - mesh_list(this) { - dirty_aabb = true; - dirty_data = true; - - xform_floats = 0; - color_floats = 0; - custom_data_floats = 0; - - visible_instances = -1; - - size = 0; - - transform_format = VS::MULTIMESH_TRANSFORM_2D; - color_format = VS::MULTIMESH_COLOR_NONE; - custom_data_format = VS::MULTIMESH_CUSTOM_DATA_NONE; + mesh_list(this), + visible_instances(-1), + xform_floats(0), + color_floats(0), + custom_data_floats(0), + dirty_aabb(true), + dirty_data(true) { } }; @@ -847,10 +838,10 @@ public: Set<RasterizerScene::InstanceBase *> instances; Skeleton() : + use_2d(false), + size(0), + tex_id(0), update_list(this) { - tex_id = 0; - size = 0; - use_2d = false; } }; @@ -1121,11 +1112,11 @@ public: GLuint color; - Effect() { - fbo = 0; - width = 0; - height = 0; - color = 0; + Effect() : + fbo(0), + width(0), + height(0), + color(0) { } }; @@ -1140,22 +1131,17 @@ public: RID texture; - RenderTarget() { - fbo = 0; - - color = 0; - depth = 0; - - width = 0; - height = 0; - - for (int i = 0; i < RENDER_TARGET_FLAG_MAX; i++) { + RenderTarget() : + fbo(0), + color(0), + depth(0), + width(0), + height(0), + used_in_frame(false), + msaa(VS::VIEWPORT_MSAA_DISABLED) { + for (int i = 0; i < RENDER_TARGET_FLAG_MAX; ++i) { flags[i] = false; } - - used_in_frame = false; - - msaa = VS::VIEWPORT_MSAA_DISABLED; } }; diff --git a/drivers/gles2/shader_compiler_gles2.cpp b/drivers/gles2/shader_compiler_gles2.cpp index d52be09cac..45b0d695a3 100644 --- a/drivers/gles2/shader_compiler_gles2.cpp +++ b/drivers/gles2/shader_compiler_gles2.cpp @@ -814,8 +814,8 @@ ShaderCompilerGLES2::ShaderCompilerGLES2() { /** SPATIAL SHADER **/ actions[VS::SHADER_SPATIAL].renames["WORLD_MATRIX"] = "world_transform"; - actions[VS::SHADER_SPATIAL].renames["INV_CAMERA_MATRIX"] = "camera_matrix"; - actions[VS::SHADER_SPATIAL].renames["CAMERA_MATRIX"] = "camera_inverse_matrix"; + actions[VS::SHADER_SPATIAL].renames["INV_CAMERA_MATRIX"] = "camera_inverse_matrix"; + actions[VS::SHADER_SPATIAL].renames["CAMERA_MATRIX"] = "camera_matrix"; actions[VS::SHADER_SPATIAL].renames["PROJECTION_MATRIX"] = "projection_matrix"; actions[VS::SHADER_SPATIAL].renames["INV_PROJECTION_MATRIX"] = "projection_inverse_matrix"; actions[VS::SHADER_SPATIAL].renames["MODELVIEW_MATRIX"] = "modelview"; @@ -931,7 +931,7 @@ ShaderCompilerGLES2::ShaderCompilerGLES2() { actions[VS::SHADER_PARTICLES].renames["COLOR"] = "out_color"; actions[VS::SHADER_PARTICLES].renames["VELOCITY"] = "out_velocity_active.xyz"; actions[VS::SHADER_PARTICLES].renames["MASS"] = "mass"; - actions[VS::SHADER_PARTICLES].renames["ACTIVE"] = "active"; + actions[VS::SHADER_PARTICLES].renames["ACTIVE"] = "shader_active"; actions[VS::SHADER_PARTICLES].renames["RESTART"] = "restart"; actions[VS::SHADER_PARTICLES].renames["CUSTOM"] = "out_custom"; actions[VS::SHADER_PARTICLES].renames["TRANSFORM"] = "xform"; diff --git a/drivers/gles2/shader_gles2.cpp b/drivers/gles2/shader_gles2.cpp index c5a67d4e75..84bd413abb 100644 --- a/drivers/gles2/shader_gles2.cpp +++ b/drivers/gles2/shader_gles2.cpp @@ -99,7 +99,7 @@ void ShaderGLES2::bind_uniforms() { const Map<uint32_t, CameraMatrix>::Element *C = uniform_cameras.front(); while (C) { - int idx = E->key(); + int idx = C->key(); int location = version->uniform_location[idx]; if (location < 0) { diff --git a/drivers/gles2/shaders/scene.glsl b/drivers/gles2/shaders/scene.glsl index bc83b69b49..30dc55cc4c 100644 --- a/drivers/gles2/shaders/scene.glsl +++ b/drivers/gles2/shaders/scene.glsl @@ -84,7 +84,7 @@ uniform highp mat4 world_transform; uniform highp float time; - +uniform highp vec2 viewport_size; #ifdef RENDER_DEPTH uniform float light_bias; @@ -679,6 +679,8 @@ uniform highp mat4 world_transform; uniform highp float time; +uniform highp vec2 viewport_size; + #if defined(SCREEN_UV_USED) uniform vec2 screen_pixel_size; #endif @@ -1121,7 +1123,7 @@ LIGHT_SHADER_CODE float NdotL = dot(N, L); float cNdotL = max(NdotL, 0.0); // clamped NdotL float NdotV = dot(N, V); - float cNdotV = max(NdotV, 0.0); + float cNdotV = max(abs(NdotV), 1e-6); #if defined(DIFFUSE_BURLEY) || defined(SPECULAR_BLINN) || defined(SPECULAR_SCHLICK_GGX) || defined(LIGHT_USE_CLEARCOAT) vec3 H = normalize(V + L); @@ -1382,6 +1384,7 @@ void main() { discard; #endif highp vec3 vertex = vertex_interp; + vec3 view = -normalize(vertex_interp); vec3 albedo = vec3(1.0); vec3 transmission = vec3(0.0); float metallic = 0.0; @@ -1455,7 +1458,7 @@ FRAGMENT_SHADER_CODE vec3 diffuse_light = vec3(0.0, 0.0, 0.0); vec3 ambient_light = vec3(0.0, 0.0, 0.0); - vec3 eye_position = -normalize(vertex_interp); + vec3 eye_position = view; #if defined(ALPHA_SCISSOR_USED) if (alpha < alpha_scissor) { diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index e0c8d3af52..ffe9e1c831 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -846,7 +846,7 @@ void RasterizerSceneGLES3::environment_set_dof_blur_near(RID p_env, bool p_enabl env->dof_blur_near_amount = p_amount; env->dof_blur_near_quality = p_quality; } -void RasterizerSceneGLES3::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, bool p_bicubic_upscale) { +void RasterizerSceneGLES3::environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) { Environment *env = environment_owner.getornull(p_env); ERR_FAIL_COND(!env); @@ -859,6 +859,7 @@ void RasterizerSceneGLES3::environment_set_glow(RID p_env, bool p_enable, int p_ env->glow_blend_mode = p_blend_mode; env->glow_hdr_bleed_threshold = p_hdr_bleed_threshold; env->glow_hdr_bleed_scale = p_hdr_bleed_scale; + env->glow_hdr_luminance_cap = p_hdr_luminance_cap; env->glow_bicubic_upscale = p_bicubic_upscale; } void RasterizerSceneGLES3::environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) { @@ -3898,6 +3899,7 @@ void RasterizerSceneGLES3::_post_process(Environment *env, const CameraMatrix &p state.effect_blur_shader.set_uniform(EffectBlurShaderGLES3::PIXEL_SIZE, Vector2(1.0 / vp_w, 1.0 / vp_h)); state.effect_blur_shader.set_uniform(EffectBlurShaderGLES3::LOD, float(i)); state.effect_blur_shader.set_uniform(EffectBlurShaderGLES3::GLOW_STRENGTH, env->glow_strength); + state.effect_blur_shader.set_uniform(EffectBlurShaderGLES3::LUMINANCE_CAP, env->glow_hdr_luminance_cap); glActiveTexture(GL_TEXTURE0); if (i == 0) { diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index f3157d5a46..1d84fb487b 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -404,6 +404,7 @@ public: VS::EnvironmentGlowBlendMode glow_blend_mode; float glow_hdr_bleed_threshold; float glow_hdr_bleed_scale; + float glow_hdr_luminance_cap; bool glow_bicubic_upscale; VS::EnvironmentToneMapper tone_mapper; @@ -449,88 +450,77 @@ public: float fog_height_max; float fog_height_curve; - Environment() { - bg_mode = VS::ENV_BG_CLEAR_COLOR; - sky_custom_fov = 0.0; - bg_energy = 1.0; - sky_ambient = 0; - ambient_energy = 1.0; - ambient_sky_contribution = 0.0; - canvas_max_layer = 0; - - ssr_enabled = false; - ssr_max_steps = 64; - ssr_fade_in = 0.15; - ssr_fade_out = 2.0; - ssr_depth_tolerance = 0.2; - ssr_roughness = true; - - ssao_enabled = false; - ssao_intensity = 1.0; - ssao_radius = 1.0; - ssao_intensity2 = 1.0; - ssao_radius2 = 0.0; - ssao_bias = 0.01; - ssao_light_affect = 0; - ssao_ao_channel_affect = 0; - ssao_filter = VS::ENV_SSAO_BLUR_3x3; - ssao_quality = VS::ENV_SSAO_QUALITY_LOW; - ssao_bilateral_sharpness = 4; - - tone_mapper = VS::ENV_TONE_MAPPER_LINEAR; - tone_mapper_exposure = 1.0; - tone_mapper_exposure_white = 1.0; - auto_exposure = false; - auto_exposure_speed = 0.5; - auto_exposure_min = 0.05; - auto_exposure_max = 8; - auto_exposure_grey = 0.4; - - glow_enabled = false; - glow_levels = (1 << 2) | (1 << 4); - glow_intensity = 0.8; - glow_strength = 1.0; - glow_bloom = 0.0; - glow_blend_mode = VS::GLOW_BLEND_MODE_SOFTLIGHT; - glow_hdr_bleed_threshold = 1.0; - glow_hdr_bleed_scale = 2.0; - glow_bicubic_upscale = false; - - dof_blur_far_enabled = false; - dof_blur_far_distance = 10; - dof_blur_far_transition = 5; - dof_blur_far_amount = 0.1; - dof_blur_far_quality = VS::ENV_DOF_BLUR_QUALITY_MEDIUM; - - dof_blur_near_enabled = false; - dof_blur_near_distance = 2; - dof_blur_near_transition = 1; - dof_blur_near_amount = 0.1; - dof_blur_near_quality = VS::ENV_DOF_BLUR_QUALITY_MEDIUM; - - adjustments_enabled = false; - adjustments_brightness = 1.0; - adjustments_contrast = 1.0; - adjustments_saturation = 1.0; - - fog_enabled = false; - fog_color = Color(0.5, 0.5, 0.5); - fog_sun_color = Color(0.8, 0.8, 0.0); - fog_sun_amount = 0; - - fog_depth_enabled = true; - - fog_depth_begin = 10; - fog_depth_end = 0; - fog_depth_curve = 1; - - fog_transmit_enabled = true; - fog_transmit_curve = 1; - - fog_height_enabled = false; - fog_height_min = 0; - fog_height_max = 100; - fog_height_curve = 1; + Environment() : + bg_mode(VS::ENV_BG_CLEAR_COLOR), + sky_custom_fov(0.0), + bg_energy(1.0), + sky_ambient(0), + ambient_energy(1.0), + ambient_sky_contribution(0.0), + canvas_max_layer(0), + ssr_enabled(false), + ssr_max_steps(64), + ssr_fade_in(0.15), + ssr_fade_out(2.0), + ssr_depth_tolerance(0.2), + ssr_roughness(true), + ssao_enabled(false), + ssao_intensity(1.0), + ssao_radius(1.0), + ssao_intensity2(1.0), + ssao_radius2(0.0), + ssao_bias(0.01), + ssao_light_affect(0), + ssao_ao_channel_affect(0), + ssao_quality(VS::ENV_SSAO_QUALITY_LOW), + ssao_bilateral_sharpness(4), + ssao_filter(VS::ENV_SSAO_BLUR_3x3), + glow_enabled(false), + glow_levels((1 << 2) | (1 << 4)), + glow_intensity(0.8), + glow_strength(1.0), + glow_bloom(0.0), + glow_blend_mode(VS::GLOW_BLEND_MODE_SOFTLIGHT), + glow_hdr_bleed_threshold(1.0), + glow_hdr_bleed_scale(2.0), + glow_hdr_luminance_cap(12.0), + glow_bicubic_upscale(false), + tone_mapper(VS::ENV_TONE_MAPPER_LINEAR), + tone_mapper_exposure(1.0), + tone_mapper_exposure_white(1.0), + auto_exposure(false), + auto_exposure_speed(0.5), + auto_exposure_min(0.05), + auto_exposure_max(8), + auto_exposure_grey(0.4), + dof_blur_far_enabled(false), + dof_blur_far_distance(10), + dof_blur_far_transition(5), + dof_blur_far_amount(0.1), + dof_blur_far_quality(VS::ENV_DOF_BLUR_QUALITY_MEDIUM), + dof_blur_near_enabled(false), + dof_blur_near_distance(2), + dof_blur_near_transition(1), + dof_blur_near_amount(0.1), + dof_blur_near_quality(VS::ENV_DOF_BLUR_QUALITY_MEDIUM), + adjustments_enabled(false), + adjustments_brightness(1.0), + adjustments_contrast(1.0), + adjustments_saturation(1.0), + fog_enabled(false), + fog_color(Color(0.5, 0.5, 0.5)), + fog_sun_color(Color(0.8, 0.8, 0.0)), + fog_sun_amount(0), + fog_depth_enabled(true), + fog_depth_begin(10), + fog_depth_end(0), + fog_depth_curve(1), + fog_transmit_enabled(true), + fog_transmit_curve(1), + fog_height_enabled(false), + fog_height_min(0), + fog_height_max(100), + fog_height_curve(1) { } }; @@ -548,7 +538,7 @@ public: virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); - virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, bool p_bicubic_upscale); + virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale); virtual void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture); virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_in, float p_fade_out, float p_depth_tolerance, bool p_roughness); @@ -641,9 +631,9 @@ public: Vector3 bounds; Transform transform_to_data; - GIProbeInstance() { - probe = NULL; - tex_cache = 0; + GIProbeInstance() : + probe(NULL), + tex_cache(0) { } }; diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp index 235c799a55..2b038fcc0e 100644 --- a/drivers/gles3/rasterizer_storage_gles3.cpp +++ b/drivers/gles3/rasterizer_storage_gles3.cpp @@ -7673,7 +7673,7 @@ void RasterizerStorageGLES3::initialize() { config.etc2_supported = true; config.hdr_supported = false; config.s3tc_supported = config.extensions.has("GL_EXT_texture_compression_dxt1") || config.extensions.has("GL_EXT_texture_compression_s3tc") || config.extensions.has("WEBGL_compressed_texture_s3tc"); - config.rgtc_supported = config.extensions.has("GL_EXT_texture_compression_rgtc") || config.extensions.has("GL_ARB_texture_compression_rgtc"); + config.rgtc_supported = config.extensions.has("GL_EXT_texture_compression_rgtc") || config.extensions.has("GL_ARB_texture_compression_rgtc") || config.extensions.has("EXT_texture_compression_rgtc"); #endif config.pvrtc_supported = config.extensions.has("GL_IMG_texture_compression_pvrtc"); diff --git a/drivers/gles3/rasterizer_storage_gles3.h b/drivers/gles3/rasterizer_storage_gles3.h index 398ffdeb82..958086f6c7 100644 --- a/drivers/gles3/rasterizer_storage_gles3.h +++ b/drivers/gles3/rasterizer_storage_gles3.h @@ -285,29 +285,30 @@ public: VisualServer::TextureDetectCallback detect_normal; void *detect_normal_ud; - Texture() { - - using_srgb = false; - stored_cube_sides = 0; - ignore_mipmaps = false; - render_target = NULL; - flags = width = height = 0; - tex_id = 0; - data_size = 0; - format = Image::FORMAT_L8; - active = false; - compressed = false; - total_data_size = 0; - target = GL_TEXTURE_2D; - mipmaps = 0; - detect_3d = NULL; - detect_3d_ud = NULL; - detect_srgb = NULL; - detect_srgb_ud = NULL; - detect_normal = NULL; - detect_normal_ud = NULL; - proxy = NULL; - redraw_if_visible = false; + Texture() : + proxy(NULL), + flags(0), + width(0), + height(0), + format(Image::FORMAT_L8), + target(GL_TEXTURE_2D), + data_size(0), + compressed(false), + total_data_size(0), + ignore_mipmaps(false), + mipmaps(0), + active(false), + tex_id(0), + using_srgb(false), + redraw_if_visible(false), + stored_cube_sides(0), + render_target(NULL), + detect_3d(NULL), + detect_3d_ud(NULL), + detect_srgb(NULL), + detect_srgb_ud(NULL), + detect_normal(NULL), + detect_normal_ud(NULL) { } _ALWAYS_INLINE_ Texture *get_ptr() { @@ -553,16 +554,16 @@ public: bool is_animated_cache; Material() : + shader(NULL), + ubo_id(0), + ubo_size(0), list(this), - dirty_list(this) { - can_cast_shadow_cache = false; - is_animated_cache = false; - shader = NULL; - line_width = 1.0; - ubo_id = 0; - ubo_size = 0; - last_pass = 0; - render_priority = 0; + dirty_list(this), + line_width(1.0), + render_priority(0), + last_pass(0), + can_cast_shadow_cache(false), + is_animated_cache(false) { } }; @@ -661,27 +662,24 @@ public: int total_data_size; - Surface() { - - array_byte_size = 0; - index_array_byte_size = 0; - mesh = NULL; - format = 0; - array_id = 0; - vertex_id = 0; - index_id = 0; - array_len = 0; + Surface() : + mesh(NULL), + format(0), + array_id(0), + vertex_id(0), + index_id(0), + index_wireframe_id(0), + array_wireframe_id(0), + instancing_array_wireframe_id(0), + index_wireframe_len(0), + array_len(0), + index_array_len(0), + array_byte_size(0), + index_array_byte_size(0), + primitive(VS::PRIMITIVE_POINTS), + active(false), + total_data_size(0) { type = GEOMETRY_SURFACE; - primitive = VS::PRIMITIVE_POINTS; - index_array_len = 0; - active = false; - - total_data_size = 0; - - index_wireframe_id = 0; - array_wireframe_id = 0; - instancing_array_wireframe_id = 0; - index_wireframe_len = 0; } ~Surface() { @@ -708,11 +706,11 @@ public: } } - Mesh() { - blend_shape_mode = VS::BLEND_SHAPE_MODE_NORMALIZED; - blend_shape_count = 0; - last_pass = 0; - active = false; + Mesh() : + active(false), + blend_shape_count(0), + blend_shape_mode(VS::BLEND_SHAPE_MODE_NORMALIZED), + last_pass(0) { } }; @@ -780,19 +778,19 @@ public: bool dirty_data; MultiMesh() : + size(0), + transform_format(VS::MULTIMESH_TRANSFORM_2D), + color_format(VS::MULTIMESH_COLOR_NONE), + custom_data_format(VS::MULTIMESH_CUSTOM_DATA_NONE), update_list(this), - mesh_list(this) { - dirty_aabb = true; - dirty_data = true; - xform_floats = 0; - color_floats = 0; - custom_data_floats = 0; - visible_instances = -1; - size = 0; - buffer = 0; - transform_format = VS::MULTIMESH_TRANSFORM_2D; - color_format = VS::MULTIMESH_COLOR_NONE; - custom_data_format = VS::MULTIMESH_CUSTOM_DATA_NONE; + mesh_list(this), + buffer(0), + visible_instances(-1), + xform_floats(0), + color_floats(0), + custom_data_floats(0), + dirty_aabb(true), + dirty_data(true) { } }; @@ -889,11 +887,10 @@ public: Transform2D base_transform_2d; Skeleton() : + use_2d(false), + size(0), + texture(0), update_list(this) { - size = 0; - - use_2d = false; - texture = 0; } }; @@ -1174,37 +1171,31 @@ public: Transform emission_transform; Particles() : - particle_element(this) { - cycle_number = 0; - emitting = false; - one_shot = false; - amount = 0; - lifetime = 1.0; - pre_process_time = 0.0; - explosiveness = 0.0; - randomness = 0.0; - use_local_coords = true; - fixed_fps = 0; - fractional_delta = false; - frame_remainder = 0; - histories_enabled = false; - speed_scale = 1.0; - random_seed = 0; - - restart_request = false; - - custom_aabb = AABB(Vector3(-4, -4, -4), Vector3(8, 8, 8)); - - draw_order = VS::PARTICLES_DRAW_ORDER_INDEX; + inactive(true), + inactive_time(0.0), + emitting(false), + one_shot(false), + amount(0), + lifetime(1.0), + pre_process_time(0.0), + explosiveness(0.0), + randomness(0.0), + restart_request(false), + custom_aabb(AABB(Vector3(-4, -4, -4), Vector3(8, 8, 8))), + use_local_coords(true), + draw_order(VS::PARTICLES_DRAW_ORDER_INDEX), + histories_enabled(false), + particle_element(this), + prev_ticks(0), + random_seed(0), + cycle_number(0), + speed_scale(1.0), + fixed_fps(0), + fractional_delta(false), + frame_remainder(0), + clear(true) { particle_buffers[0] = 0; particle_buffers[1] = 0; - - prev_ticks = 0; - - clear = true; - inactive = true; - inactive_time = 0.0; - glGenBuffers(2, particle_buffers); glGenVertexArrays(2, particle_vaos); } @@ -1309,9 +1300,9 @@ public: GLuint color; int levels; - MipMaps() { - color = 0; - levels = 0; + MipMaps() : + color(0), + levels(0) { } }; @@ -1326,10 +1317,10 @@ public: Vector<GLuint> depth_mipmap_fbos; //fbos for depth mipmapsla ver - SSAO() { + SSAO() : + linear_depth(0) { blur_fbo[0] = 0; blur_fbo[1] = 0; - linear_depth = 0; } } ssao; @@ -1341,7 +1332,8 @@ public: GLuint fbo; GLuint color; - Exposure() { fbo = 0; } + Exposure() : + fbo(0) {} } exposure; uint64_t last_exposure_tick; @@ -1355,26 +1347,22 @@ public: RID texture; - RenderTarget() { - - msaa = VS::VIEWPORT_MSAA_DISABLED; - width = 0; - height = 0; - depth = 0; - fbo = 0; + RenderTarget() : + fbo(0), + depth(0), + last_exposure_tick(0), + width(0), + height(0), + used_in_frame(false), + msaa(VS::VIEWPORT_MSAA_DISABLED) { exposure.fbo = 0; buffers.fbo = 0; - used_in_frame = false; - for (int i = 0; i < RENDER_TARGET_FLAG_MAX; i++) { flags[i] = false; } flags[RENDER_TARGET_HDR] = true; - buffers.active = false; buffers.effects_active = false; - - last_exposure_tick = 0; } }; diff --git a/drivers/gles3/shader_compiler_gles3.cpp b/drivers/gles3/shader_compiler_gles3.cpp index 2372dfb17e..2a2280e8a4 100644 --- a/drivers/gles3/shader_compiler_gles3.cpp +++ b/drivers/gles3/shader_compiler_gles3.cpp @@ -786,7 +786,7 @@ ShaderCompilerGLES3::ShaderCompilerGLES3() { /** CANVAS ITEM SHADER **/ actions[VS::SHADER_CANVAS_ITEM].renames["VERTEX"] = "outvec.xy"; - actions[VS::SHADER_CANVAS_ITEM].renames["UV"] = "uv_interp"; + actions[VS::SHADER_CANVAS_ITEM].renames["UV"] = "uv"; actions[VS::SHADER_CANVAS_ITEM].renames["POINT_SIZE"] = "gl_PointSize"; actions[VS::SHADER_CANVAS_ITEM].renames["WORLD_MATRIX"] = "modelview_matrix"; @@ -948,7 +948,7 @@ ShaderCompilerGLES3::ShaderCompilerGLES3() { actions[VS::SHADER_PARTICLES].renames["COLOR"] = "out_color"; actions[VS::SHADER_PARTICLES].renames["VELOCITY"] = "out_velocity_active.xyz"; actions[VS::SHADER_PARTICLES].renames["MASS"] = "mass"; - actions[VS::SHADER_PARTICLES].renames["ACTIVE"] = "active"; + actions[VS::SHADER_PARTICLES].renames["ACTIVE"] = "shader_active"; actions[VS::SHADER_PARTICLES].renames["RESTART"] = "restart"; actions[VS::SHADER_PARTICLES].renames["CUSTOM"] = "out_custom"; actions[VS::SHADER_PARTICLES].renames["TRANSFORM"] = "xform"; diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl index 86d8cf560e..974eff86f3 100644 --- a/drivers/gles3/shaders/canvas.glsl +++ b/drivers/gles3/shaders/canvas.glsl @@ -145,6 +145,8 @@ void main() { #define extra_matrix extra_matrix_instance + //for compatibility with the fragment shader we need to use uv here + vec2 uv = uv_interp; { /* clang-format off */ @@ -153,6 +155,8 @@ VERTEX_SHADER_CODE /* clang-format on */ } + uv_interp = uv; + #ifdef USE_NINEPATCH pixel_size_interp = abs(dst_rect.zw) * vertex; @@ -477,7 +481,7 @@ void main() { #if defined(NORMALMAP_USED) vec3 normal_map = vec3(0.0, 0.0, 1.0); - normal_used=true; + normal_used = true; #endif /* clang-format off */ diff --git a/drivers/gles3/shaders/effect_blur.glsl b/drivers/gles3/shaders/effect_blur.glsl index b67d06bc10..fc15ca31b1 100644 --- a/drivers/gles3/shaders/effect_blur.glsl +++ b/drivers/gles3/shaders/effect_blur.glsl @@ -94,6 +94,7 @@ uniform sampler2D source_dof_original; //texunit:2 uniform float exposure; uniform float white; +uniform highp float luminance_cap; #ifdef GLOW_USE_AUTO_EXPOSURE @@ -271,7 +272,7 @@ void main() { float luminance = max(frag_color.r, max(frag_color.g, frag_color.b)); float feedback = max(smoothstep(glow_hdr_threshold, glow_hdr_threshold + glow_hdr_scale, luminance), glow_bloom); - frag_color *= feedback; + frag_color = min(frag_color * feedback, vec4(luminance_cap)); #endif diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index e2e3584304..ff273e4e9f 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -1565,6 +1565,7 @@ void main() { //lay out everything, whathever is unused is optimized away anyway highp vec3 vertex = vertex_interp; + vec3 view = -normalize(vertex_interp); vec3 albedo = vec3(1.0); vec3 transmission = vec3(0.0); float metallic = 0.0; @@ -1590,8 +1591,8 @@ void main() { #endif #if defined(ENABLE_TANGENT_INTERP) || defined(ENABLE_NORMALMAP) || defined(LIGHT_USE_ANISOTROPY) - vec3 binormal = normalize(binormal_interp);// * side; - vec3 tangent = normalize(tangent_interp);// * side; + vec3 binormal = normalize(binormal_interp); + vec3 tangent = normalize(tangent_interp); #else vec3 binormal = vec3(0.0); vec3 tangent = vec3(0.0); @@ -1699,7 +1700,7 @@ FRAGMENT_SHADER_CODE vec3 ambient_light; vec3 env_reflection_light = vec3(0.0, 0.0, 0.0); - vec3 eye_vec = -normalize(vertex_interp); + vec3 eye_vec = view; #ifdef USE_RADIANCE_MAP diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.cpp b/drivers/pulseaudio/audio_driver_pulseaudio.cpp index 720824d451..4988557dcb 100644 --- a/drivers/pulseaudio/audio_driver_pulseaudio.cpp +++ b/drivers/pulseaudio/audio_driver_pulseaudio.cpp @@ -743,35 +743,28 @@ String AudioDriverPulseAudio::capture_get_device() { return name; } -AudioDriverPulseAudio::AudioDriverPulseAudio() { - - pa_ml = NULL; - pa_ctx = NULL; - pa_str = NULL; - pa_rec_str = NULL; - - mutex = NULL; - thread = NULL; - - device_name = "Default"; - new_device = "Default"; - default_device = ""; - +AudioDriverPulseAudio::AudioDriverPulseAudio() : + thread(NULL), + mutex(NULL), + pa_ml(NULL), + pa_ctx(NULL), + pa_str(NULL), + pa_rec_str(NULL), + device_name("Default"), + new_device("Default"), + default_device(""), + mix_rate(0), + buffer_frames(0), + pa_buffer_size(0), + channels(0), + pa_ready(0), + pa_status(0), + active(false), + thread_exited(false), + exit_thread(false), + latency(0) { samples_in.clear(); samples_out.clear(); - - mix_rate = 0; - buffer_frames = 0; - pa_buffer_size = 0; - channels = 0; - pa_ready = 0; - pa_status = 0; - - active = false; - thread_exited = false; - exit_thread = false; - - latency = 0; } AudioDriverPulseAudio::~AudioDriverPulseAudio() { diff --git a/drivers/rtaudio/audio_driver_rtaudio.cpp b/drivers/rtaudio/audio_driver_rtaudio.cpp index bc6ceb1e7e..80537315af 100644 --- a/drivers/rtaudio/audio_driver_rtaudio.cpp +++ b/drivers/rtaudio/audio_driver_rtaudio.cpp @@ -194,13 +194,12 @@ void AudioDriverRtAudio::finish() { } } -AudioDriverRtAudio::AudioDriverRtAudio() { - - active = false; - mutex = NULL; - dac = NULL; - mix_rate = DEFAULT_MIX_RATE; - speaker_mode = SPEAKER_MODE_STEREO; +AudioDriverRtAudio::AudioDriverRtAudio() : + speaker_mode(SPEAKER_MODE_STEREO), + mutex(NULL), + dac(NULL), + mix_rate(DEFAULT_MIX_RATE), + active(false) { } #endif diff --git a/drivers/unix/file_access_unix.cpp b/drivers/unix/file_access_unix.cpp index 3b97b95f7c..10f6be3cbe 100644 --- a/drivers/unix/file_access_unix.cpp +++ b/drivers/unix/file_access_unix.cpp @@ -309,11 +309,10 @@ FileAccess *FileAccessUnix::create_libc() { CloseNotificationFunc FileAccessUnix::close_notification_func = NULL; -FileAccessUnix::FileAccessUnix() { - - f = NULL; - flags = 0; - last_error = OK; +FileAccessUnix::FileAccessUnix() : + f(NULL), + flags(0), + last_error(OK) { } FileAccessUnix::~FileAccessUnix() { diff --git a/drivers/unix/net_socket_posix.cpp b/drivers/unix/net_socket_posix.cpp index 833b17f122..740b1edb9c 100644 --- a/drivers/unix/net_socket_posix.cpp +++ b/drivers/unix/net_socket_posix.cpp @@ -167,10 +167,10 @@ void NetSocketPosix::cleanup() { #endif } -NetSocketPosix::NetSocketPosix() { - _sock = SOCK_EMPTY; - _ip_type = IP::TYPE_NONE; - _is_stream = false; +NetSocketPosix::NetSocketPosix() : + _sock(SOCK_EMPTY), + _ip_type(IP::TYPE_NONE), + _is_stream(false) { } NetSocketPosix::~NetSocketPosix() { diff --git a/drivers/wasapi/audio_driver_wasapi.h b/drivers/wasapi/audio_driver_wasapi.h index 3d94f3ba49..71f56cfb5b 100644 --- a/drivers/wasapi/audio_driver_wasapi.h +++ b/drivers/wasapi/audio_driver_wasapi.h @@ -58,17 +58,17 @@ class AudioDriverWASAPI : public AudioDriver { String device_name; String new_device; - AudioDeviceWASAPI() { - audio_client = NULL; - render_client = NULL; - capture_client = NULL; - active = false; - format_tag = 0; - bits_per_sample = 0; - channels = 0; - frame_size = 0; - device_name = "Default"; - new_device = "Default"; + AudioDeviceWASAPI() : + audio_client(NULL), + render_client(NULL), + capture_client(NULL), + active(false), + format_tag(0), + bits_per_sample(0), + channels(0), + frame_size(0), + device_name("Default"), + new_device("Default") { } }; diff --git a/drivers/windows/file_access_windows.cpp b/drivers/windows/file_access_windows.cpp index 2582478259..a289945aa7 100644 --- a/drivers/windows/file_access_windows.cpp +++ b/drivers/windows/file_access_windows.cpp @@ -307,11 +307,10 @@ uint64_t FileAccessWindows::_get_modified_time(const String &p_file) { } } -FileAccessWindows::FileAccessWindows() { - - f = NULL; - flags = 0; - last_error = OK; +FileAccessWindows::FileAccessWindows() : + f(NULL), + flags(0), + last_error(OK) { } FileAccessWindows::~FileAccessWindows() { diff --git a/drivers/windows/thread_windows.cpp b/drivers/windows/thread_windows.cpp index 52dcfacdf8..dbccad3b5d 100644 --- a/drivers/windows/thread_windows.cpp +++ b/drivers/windows/thread_windows.cpp @@ -93,9 +93,8 @@ void ThreadWindows::make_default() { wait_to_finish_func = wait_to_finish_func_windows; } -ThreadWindows::ThreadWindows() { - - handle = NULL; +ThreadWindows::ThreadWindows() : + handle(NULL) { } ThreadWindows::~ThreadWindows() { diff --git a/drivers/xaudio2/audio_driver_xaudio2.cpp b/drivers/xaudio2/audio_driver_xaudio2.cpp index 452a1105ca..ce2f0db0fc 100644 --- a/drivers/xaudio2/audio_driver_xaudio2.cpp +++ b/drivers/xaudio2/audio_driver_xaudio2.cpp @@ -91,7 +91,7 @@ Error AudioDriverXAudio2::init() { thread = Thread::create(AudioDriverXAudio2::thread_func, this); return OK; -}; +} void AudioDriverXAudio2::thread_func(void *p_udata) { @@ -131,10 +131,10 @@ void AudioDriverXAudio2::thread_func(void *p_udata) { WaitForSingleObject(ad->voice_callback.buffer_end_event, INFINITE); } } - }; + } ad->thread_exited = true; -}; +} void AudioDriverXAudio2::start() { @@ -144,17 +144,17 @@ void AudioDriverXAudio2::start() { ERR_EXPLAIN("XAudio2 start error " + itos(hr)); ERR_FAIL(); } -}; +} int AudioDriverXAudio2::get_mix_rate() const { return mix_rate; -}; +} AudioDriver::SpeakerMode AudioDriverXAudio2::get_speaker_mode() const { return speaker_mode; -}; +} float AudioDriverXAudio2::get_latency() { @@ -172,13 +172,13 @@ void AudioDriverXAudio2::lock() { if (!thread || !mutex) return; mutex->lock(); -}; +} void AudioDriverXAudio2::unlock() { if (!thread || !mutex) return; mutex->unlock(); -}; +} void AudioDriverXAudio2::finish() { @@ -195,12 +195,12 @@ void AudioDriverXAudio2::finish() { if (samples_in) { memdelete_arr(samples_in); - }; + } if (samples_out[0]) { for (int i = 0; i < AUDIO_BUFFERS; i++) { memdelete_arr(samples_out[i]); } - }; + } mastering_voice->DestroyVoice(); @@ -208,20 +208,18 @@ void AudioDriverXAudio2::finish() { if (mutex) memdelete(mutex); thread = NULL; -}; - -AudioDriverXAudio2::AudioDriverXAudio2() { +} - mutex = NULL; - thread = NULL; +AudioDriverXAudio2::AudioDriverXAudio2() : + thread(NULL), + mutex(NULL), + current_buffer(0) { wave_format = { 0 }; for (int i = 0; i < AUDIO_BUFFERS; i++) { xaudio_buffer[i] = { 0 }; samples_out[i] = 0; } - current_buffer = 0; -}; - -AudioDriverXAudio2::~AudioDriverXAudio2(){ +} -}; +AudioDriverXAudio2::~AudioDriverXAudio2() { +} diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 2a11f70274..a0a8e9459d 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -673,7 +673,7 @@ void CodeTextEditor::_reset_zoom() { if (font.is_valid()) { EditorSettings::get_singleton()->set("interface/editor/code_font_size", 14); font->set_size(14); - zoom_nb->set_text("100%"); + font_size_nb->set_text("14 (100%)"); } } @@ -748,7 +748,7 @@ 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); - zoom_nb->set_text(itos(100 * new_size / (14 * 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); @@ -1162,6 +1162,9 @@ 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( EDITOR_DEF("text_editor/completion/auto_brace_complete", true)); @@ -1296,23 +1299,23 @@ CodeTextEditor::CodeTextEditor() { 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 *zoom_txt = memnew(Label); - status_bar->add_child(zoom_txt); - zoom_txt->set_align(Label::ALIGN_RIGHT); - zoom_txt->set_valign(Label::VALIGN_CENTER); - zoom_txt->set_v_size_flags(SIZE_FILL); - zoom_txt->set_text(TTR("Zoom:")); - zoom_txt->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - - zoom_nb = memnew(Label); - status_bar->add_child(zoom_nb); - zoom_nb->set_valign(Label::VALIGN_CENTER); - zoom_nb->set_v_size_flags(SIZE_FILL); - zoom_nb->set_autowrap(true); // workaround to prevent resizing the label on each change, do not touch - zoom_nb->set_clip_text(true); // workaround to prevent resizing the label on each change, do not touch - zoom_nb->set_custom_minimum_size(Size2(60, 1) * EDSCALE); - zoom_nb->set_align(Label::ALIGN_RIGHT); - zoom_nb->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); + 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); @@ -1368,7 +1371,7 @@ CodeTextEditor::CodeTextEditor() { font_resize_val = 0; font_size = EditorSettings::get_singleton()->get("interface/editor/code_font_size"); - zoom_nb->set_text(itos(100 * font_size / (14 * EDSCALE)) + "%"); + 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 311b6a959b..2d233c61c6 100644 --- a/editor/code_editor.h +++ b/editor/code_editor.h @@ -148,7 +148,7 @@ class CodeTextEditor : public VBoxContainer { Label *line_nb; Label *col_nb; - Label *zoom_nb; + Label *font_size_nb; Label *info; Timer *idle; Timer *code_complete_timer; diff --git a/editor/collada/collada.h b/editor/collada/collada.h index b777fa04c2..2d5819902c 100644 --- a/editor/collada/collada.h +++ b/editor/collada/collada.h @@ -110,14 +110,13 @@ public: float z_near; float z_far; - CameraData() { - - mode = MODE_PERSPECTIVE; - perspective.y_fov = 0; + CameraData() : + mode(MODE_PERSPECTIVE), + aspect(1), + z_near(0.1), + z_far(100) { perspective.x_fov = 0; - aspect = 1; - z_near = 0.1; - z_far = 100; + perspective.y_fov = 0; } }; @@ -141,16 +140,14 @@ public: float spot_angle; float spot_exp; - LightData() { - - mode = MODE_AMBIENT; - color = Color(1, 1, 1, 1); - constant_att = 0; - linear_att = 0; - quad_att = 0; - - spot_angle = 45; - spot_exp = 1; + LightData() : + mode(MODE_AMBIENT), + color(Color(1, 1, 1, 1)), + constant_att(0), + linear_att(0), + quad_att(0), + spot_angle(45), + spot_exp(1) { } }; @@ -580,11 +577,11 @@ public: float animation_length; - State() { - unit_scale = 1.0; - up_axis = Vector3::AXIS_Y; - import_flags = 0; - animation_length = 0; + State() : + import_flags(0), + unit_scale(1.0), + up_axis(Vector3::AXIS_Y), + animation_length(0) { } } state; diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index 926fa37040..9f1082ecc4 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -89,8 +89,9 @@ void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode) { _save_and_update_favorite_list(); // Restore valid window bounds or pop up at default size. - if (EditorSettings::get_singleton()->has_setting("interface/dialogs/create_new_node_bounds")) { - popup(EditorSettings::get_singleton()->get("interface/dialogs/create_new_node_bounds")); + Rect2 saved_size = EditorSettings::get_singleton()->get_project_metadata("dialog_bounds", "create_new_node", Rect2()); + if (saved_size != Rect2()) { + popup(saved_size); } else { Size2 popup_size = Size2(900, 700) * editor_get_scale(); @@ -415,7 +416,7 @@ void CreateDialog::_notification(int p_what) { } } break; case NOTIFICATION_POPUP_HIDE: { - EditorSettings::get_singleton()->set("interface/dialogs/create_new_node_bounds", get_rect()); + EditorSettings::get_singleton()->get_project_metadata("dialog_bounds", "create_new_node", get_rect()); } break; } } diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index 99b6955160..aa9125915c 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -495,11 +495,19 @@ void DependencyRemoveDialog::ok_pressed() { Resource *res = ResourceCache::get(files_to_delete[i]); res->set_path(""); } + + // If the file we are deleting is the main scene, clear its definition. + if (files_to_delete[i] == ProjectSettings::get_singleton()->get("application/run/main_scene")) { + ProjectSettings::get_singleton()->set("application/run/main_scene", ""); + } + String path = OS::get_singleton()->get_resource_dir() + files_to_delete[i].replace_first("res://", "/"); print_verbose("Moving to trash: " + path); Error err = OS::get_singleton()->move_to_trash(path); if (err != OK) { EditorNode::get_singleton()->add_io_error(TTR("Cannot remove:") + "\n" + files_to_delete[i] + "\n"); + } else { + emit_signal("file_removed", files_to_delete[i]); } } @@ -515,6 +523,8 @@ void DependencyRemoveDialog::ok_pressed() { Error err = OS::get_singleton()->move_to_trash(path); if (err != OK) { EditorNode::get_singleton()->add_io_error(TTR("Cannot remove:") + "\n" + dirs_to_delete[i] + "\n"); + } else { + emit_signal("folder_removed", dirs_to_delete[i]); } } @@ -540,6 +550,11 @@ void DependencyRemoveDialog::ok_pressed() { } } +void DependencyRemoveDialog::_bind_methods() { + ADD_SIGNAL(MethodInfo("file_removed", PropertyInfo(Variant::STRING, "file"))); + ADD_SIGNAL(MethodInfo("folder_removed", PropertyInfo(Variant::STRING, "folder"))); +} + DependencyRemoveDialog::DependencyRemoveDialog() { VBoxContainer *vb = memnew(VBoxContainer); diff --git a/editor/dependency_editor.h b/editor/dependency_editor.h index e46df4c837..5f1074764b 100644 --- a/editor/dependency_editor.h +++ b/editor/dependency_editor.h @@ -126,6 +126,8 @@ class DependencyRemoveDialog : public ConfirmationDialog { void ok_pressed(); + static void _bind_methods(); + public: void show(const Vector<String> &p_folders, const Vector<String> &p_files); DependencyRemoveDialog(); diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 6cd81626c7..b1f5bc4908 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -36,11 +36,35 @@ #include "filesystem_dock.h" #include "servers/audio_server.h" +void EditorAudioBus::_update_visible_channels() { + + int i = 0; + for (; i < cc; i++) { + + if (!channel[i].vu_l->is_visible()) { + channel[i].vu_l->show(); + } + if (!channel[i].vu_r->is_visible()) { + channel[i].vu_r->show(); + } + } + + for (; i < CHANNELS_MAX; i++) { + + if (channel[i].vu_l->is_visible()) { + channel[i].vu_l->hide(); + } + if (channel[i].vu_r->is_visible()) { + channel[i].vu_r->hide(); + } + } +} + void EditorAudioBus::_notification(int p_what) { if (p_what == NOTIFICATION_READY) { - for (int i = 0; i < cc; i++) { + for (int i = 0; i < CHANNELS_MAX; i++) { channel[i].vu_l->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); channel[i].vu_l->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); channel[i].vu_r->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); @@ -72,6 +96,11 @@ void EditorAudioBus::_notification(int p_what) { if (p_what == NOTIFICATION_PROCESS) { + if (cc != AudioServer::get_singleton()->get_bus_channels(get_index())) { + cc = AudioServer::get_singleton()->get_bus_channels(get_index()); + _update_visible_channels(); + } + for (int i = 0; i < cc; i++) { float real_peak[2] = { -100, -100 }; bool activity_found = false; @@ -113,7 +142,7 @@ void EditorAudioBus::_notification(int p_what) { if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - for (int i = 0; i < 4; i++) { + for (int i = 0; i < CHANNELS_MAX; i++) { channel[i].peak_l = -100; channel[i].peak_r = -100; channel[i].prev_active = true; @@ -124,7 +153,7 @@ void EditorAudioBus::_notification(int p_what) { if (p_what == NOTIFICATION_THEME_CHANGED) { - for (int i = 0; i < cc; i++) { + for (int i = 0; i < CHANNELS_MAX; i++) { channel[i].vu_l->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); channel[i].vu_l->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); channel[i].vu_r->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); @@ -709,9 +738,8 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { slider->connect("value_changed", this, "_volume_db_changed"); hb->add_child(slider); - cc = AudioServer::get_singleton()->get_channel_count(); - - for (int i = 0; i < cc; i++) { + cc = 0; + for (int i = 0; i < CHANNELS_MAX; i++) { channel[i].vu_l = memnew(TextureProgress); channel[i].vu_l->set_fill_mode(TextureProgress::FILL_BOTTOM_TO_TOP); hb->add_child(channel[i].vu_l); diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h index 4cdcb65d7b..02038fbe18 100644 --- a/editor/editor_audio_buses.h +++ b/editor/editor_audio_buses.h @@ -59,6 +59,7 @@ class EditorAudioBus : public PanelContainer { VSlider *slider; int cc; + static const int CHANNELS_MAX = 4; struct { bool prev_active; @@ -68,7 +69,7 @@ class EditorAudioBus : public PanelContainer { TextureProgress *vu_l; TextureProgress *vu_r; - } channel[4]; + } channel[CHANNELS_MAX]; TextureRect *scale; OptionButton *send; @@ -102,6 +103,7 @@ class EditorAudioBus : public PanelContainer { void _effect_selected(); void _delete_effect_pressed(int p_option); void _effect_rmb(const Vector2 &p_pos); + void _update_visible_channels(); virtual Variant get_drag_data(const Point2 &p_point); virtual bool can_drop_data(const Point2 &p_point, const Variant &p_data) const; diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 209a006a06..71315f1377 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -222,11 +222,10 @@ String EditorExportPreset::get_custom_features() const { return custom_features; } -EditorExportPreset::EditorExportPreset() { - - export_path = ""; - export_filter = EXPORT_ALL_RESOURCES; - runnable = false; +EditorExportPreset::EditorExportPreset() : + export_filter(EXPORT_ALL_RESOURCES), + export_path(""), + runnable(false) { } /////////////////////////////////// @@ -546,6 +545,13 @@ void EditorExportPlugin::_export_begin_script(const PoolVector<String> &p_featur } } +void EditorExportPlugin::_export_end_script() { + + if (get_script_instance()) { + get_script_instance()->call("_export_end"); + } +} + void EditorExportPlugin::_export_file(const String &p_path, const String &p_type, const Set<String> &p_features) { } @@ -587,6 +593,20 @@ EditorExportPlatform::FeatureContainers EditorExportPlatform::get_feature_contai result.features.insert(E->get()); result.features_pv.push_back(E->get()); } + + if (p_preset->get_custom_features() != String()) { + + Vector<String> tmp_custom_list = p_preset->get_custom_features().split(","); + + for (int i = 0; i < tmp_custom_list.size(); i++) { + String f = tmp_custom_list[i].strip_edges(); + if (f != String()) { + result.features.insert(f); + result.features_pv.push_back(f); + } + } + } + return result; } @@ -606,6 +626,9 @@ EditorExportPlatform::ExportNotifier::ExportNotifier(EditorExportPlatform &p_pla EditorExportPlatform::ExportNotifier::~ExportNotifier() { Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins(); for (int i = 0; i < export_plugins.size(); i++) { + if (export_plugins[i]->get_script_instance()) { + export_plugins.write[i]->_export_end_script(); + } export_plugins.write[i]->_export_end(); } } diff --git a/editor/editor_export.h b/editor/editor_export.h index 380b33cd17..881e86fb12 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -206,9 +206,9 @@ public: PropertyInfo option; Variant default_value; - ExportOption(const PropertyInfo &p_info, const Variant &p_default) { - option = p_info; - default_value = p_default; + ExportOption(const PropertyInfo &p_info, const Variant &p_default) : + option(p_info), + default_value(p_default) { } ExportOption() {} }; @@ -291,6 +291,7 @@ class EditorExportPlugin : public Reference { void _export_file_script(const String &p_path, const String &p_type, const PoolVector<String> &p_features); void _export_begin_script(const PoolVector<String> &p_features, bool p_debug, const String &p_path, int p_flags); + void _export_end_script(); protected: void add_file(const String &p_path, const Vector<uint8_t> &p_file, bool p_remap); diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index b39f910182..2360e5f410 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -830,11 +830,12 @@ void EditorFileDialog::update_file_list() { d["name"] = files.front()->get(); d["dir"] = false; String fullpath = cdir.plus_file(files.front()->get()); + d["path"] = fullpath; + item_list->set_item_metadata(item_list->get_item_count() - 1, d); + if (display_mode == DISPLAY_THUMBNAILS) { EditorResourcePreview::get_singleton()->queue_resource_preview(fullpath, this, "_thumbnail_result", fullpath); } - d["path"] = fullpath; - item_list->set_item_metadata(item_list->get_item_count() - 1, d); if (file->get_text() == files.front()->get()) item_list->set_current(item_list->get_item_count() - 1); @@ -1698,6 +1699,12 @@ EditorFileDialog::~EditorFileDialog() { memdelete(dir_access); } +void EditorLineEditFileChooser::_notification(int p_what) { + + if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED) + button->set_icon(get_icon("Folder", "EditorIcons")); +} + void EditorLineEditFileChooser::_bind_methods() { ClassDB::bind_method(D_METHOD("_browse"), &EditorLineEditFileChooser::_browse); @@ -1724,7 +1731,6 @@ EditorLineEditFileChooser::EditorLineEditFileChooser() { add_child(line_edit); line_edit->set_h_size_flags(SIZE_EXPAND_FILL); button = memnew(Button); - button->set_text(" .. "); add_child(button); button->connect("pressed", this, "_browse"); dialog = memnew(EditorFileDialog); diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h index 56cefb9a47..574fefcab4 100644 --- a/editor/editor_file_dialog.h +++ b/editor/editor_file_dialog.h @@ -254,6 +254,7 @@ class EditorLineEditFileChooser : public HBoxContainer { void _browse(); protected: + void _notification(int p_what); static void _bind_methods(); public: diff --git a/editor/editor_folding.cpp b/editor/editor_folding.cpp index 776342582c..a88cd740db 100644 --- a/editor/editor_folding.cpp +++ b/editor/editor_folding.cpp @@ -1,8 +1,8 @@ #include "editor_folding.h" #include "core/os/file_access.h" -#include "editor_settings.h" #include "editor_inspector.h" +#include "editor_settings.h" PoolVector<String> EditorFolding::_get_unfolds(const Object *p_object) { @@ -172,7 +172,6 @@ bool EditorFolding::has_folding_data(const String &p_path) { return FileAccess::exists(file); } - void EditorFolding::_do_object_unfolds(Object *p_object, Set<RES> &resources) { List<PropertyInfo> plist; @@ -185,34 +184,33 @@ void EditorFolding::_do_object_unfolds(Object *p_object, Set<RES> &resources) { for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) { if (E->get().usage & PROPERTY_USAGE_CATEGORY) { - group=""; - group_base=""; + group = ""; + group_base = ""; } if (E->get().usage & PROPERTY_USAGE_GROUP) { group = E->get().name; group_base = E->get().hint_string; if (group_base.ends_with("_")) { - group_base=group_base.substr(0,group_base.length()-1); + group_base = group_base.substr(0, group_base.length() - 1); } } //can unfold if (E->get().usage & PROPERTY_USAGE_EDITOR) { - if (group != "") { //group - if (group_base==String() || E->get().name.begins_with(group_base)) { - bool can_revert = EditorPropertyRevert::can_property_revert(p_object,E->get().name); - if (can_revert) { + if (group_base == String() || E->get().name.begins_with(group_base)) { + bool can_revert = EditorPropertyRevert::can_property_revert(p_object, E->get().name); + if (can_revert) { unfold_group.insert(group); } } } else { //path int last = E->get().name.find_last("/"); - if (last!=-1) { - bool can_revert = EditorPropertyRevert::can_property_revert(p_object,E->get().name); + if (last != -1) { + bool can_revert = EditorPropertyRevert::can_property_revert(p_object, E->get().name); if (can_revert) { - unfold_group.insert(E->get().name.substr(0,last)); + unfold_group.insert(E->get().name.substr(0, last)); } } } @@ -223,13 +221,13 @@ void EditorFolding::_do_object_unfolds(Object *p_object, Set<RES> &resources) { if (res.is_valid() && !resources.has(res) && res->get_path() != String() && !res->get_path().is_resource_file()) { resources.insert(res); - _do_object_unfolds(res.ptr(),resources); + _do_object_unfolds(res.ptr(), resources); } } } - for (Set<String>::Element *E=unfold_group.front();E;E=E->next()) { - p_object->editor_set_section_unfold(E->get(),true); + for (Set<String>::Element *E = unfold_group.front(); E; E = E->next()) { + p_object->editor_set_section_unfold(E->get(), true); } } @@ -243,7 +241,7 @@ void EditorFolding::_do_node_unfolds(Node *p_root, Node *p_node, Set<RES> &resou } } - _do_object_unfolds(p_node,resources); + _do_object_unfolds(p_node, resources); for (int i = 0; i < p_node->get_child_count(); i++) { _do_node_unfolds(p_root, p_node->get_child(i), resources); @@ -253,7 +251,7 @@ void EditorFolding::_do_node_unfolds(Node *p_root, Node *p_node, Set<RES> &resou void EditorFolding::unfold_scene(Node *p_scene) { Set<RES> resources; - _do_node_unfolds(p_scene,p_scene,resources); + _do_node_unfolds(p_scene, p_scene, resources); } EditorFolding::EditorFolding() { diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index 8676dac921..a9f7be0fff 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -130,9 +130,9 @@ void EditorHelpSearch::_notification(int p_what) { } break; case NOTIFICATION_POPUP_HIDE: { - results_tree->clear(); + results_tree->call_deferred("clear"); // Wait for the Tree's mouse event propagation. get_ok()->set_disabled(true); - EditorSettings::get_singleton()->set("interface/dialogs/search_help_bounds", get_rect()); + EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "search_help", get_rect()); } break; case NOTIFICATION_PROCESS: { @@ -177,8 +177,9 @@ void EditorHelpSearch::popup_dialog() { void EditorHelpSearch::popup_dialog(const String &p_term) { // Restore valid window bounds or pop up at default size. - if (EditorSettings::get_singleton()->has_setting("interface/dialogs/search_help_bounds")) - popup(EditorSettings::get_singleton()->get("interface/dialogs/search_help_bounds")); + Rect2 saved_size = EditorSettings::get_singleton()->get_project_metadata("dialog_bounds", "search_help", Rect2()); + if (saved_size != Rect2()) + popup(saved_size); else popup_centered_ratio(0.5F); @@ -578,18 +579,12 @@ bool EditorHelpSearch::Runner::work(uint64_t slot) { return true; } -EditorHelpSearch::Runner::Runner(Control *p_icon_service, Tree *p_results_tree, const String &p_term, int p_search_flags) { - - ui_service = p_icon_service; - results_tree = p_results_tree; - term = p_term.strip_edges(); - search_flags = p_search_flags; - - if ((search_flags & SEARCH_CASE_SENSITIVE) == 0) - term = term.to_lower(); - - empty_icon = ui_service->get_icon("ArrowRight", "EditorIcons"); - disabled_color = ui_service->get_color("disabled_font_color", "Editor"); - - phase = 0; +EditorHelpSearch::Runner::Runner(Control *p_icon_service, Tree *p_results_tree, const String &p_term, int p_search_flags) : + phase(0), + ui_service(p_icon_service), + results_tree(p_results_tree), + term((p_search_flags & SEARCH_CASE_SENSITIVE) == 0 ? p_term.strip_edges().to_lower() : p_term.strip_edges()), + search_flags(p_search_flags), + empty_icon(ui_service->get_icon("ArrowRight", "EditorIcons")), + disabled_color(ui_service->get_color("disabled_font_color", "Editor")) { } diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index b50af93352..10c9974cdd 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -128,18 +128,22 @@ void EditorProperty::_notification(int p_what) { bottom_rect = Rect2(m, rect.size.height + get_constant("vseparation", "Tree"), size.width - m, bottom_editor->get_combined_minimum_size().height); } - } - if (keying) { - Ref<Texture> key; + if (keying) { + Ref<Texture> key; - if (use_keying_next()) { - key = get_icon("KeyNext", "EditorIcons"); - } else { - key = get_icon("Key", "EditorIcons"); - } + if (use_keying_next()) { + key = get_icon("KeyNext", "EditorIcons"); + } else { + key = get_icon("Key", "EditorIcons"); + } - rect.size.x -= key->get_width() + get_constant("hseparator", "Tree"); + rect.size.x -= key->get_width() + get_constant("hseparator", "Tree"); + + if (no_children) { + text_size -= key->get_width() + 4 * EDSCALE; + } + } } //set children diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 8f9c91c008..d100d7f618 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -999,6 +999,22 @@ void EditorNode::_save_scene_with_preview(String p_file, int p_idx) { EditorResourcePreview::get_singleton()->check_for_invalidation(p_file); } +bool EditorNode::_validate_scene_recursive(const String &p_filename, Node *p_node) { + + for (int i = 0; i < p_node->get_child_count(); i++) { + Node *child = p_node->get_child(i); + if (child->get_filename() == p_filename) { + return true; + } + + if (_validate_scene_recursive(p_filename, child)) { + return true; + } + } + + return false; +} + void EditorNode::_save_scene(String p_file, int idx) { Node *scene = editor_data.get_edited_scene_root(idx); @@ -1009,6 +1025,11 @@ void EditorNode::_save_scene(String p_file, int idx) { return; } + if (scene->get_filename() != String() && _validate_scene_recursive(scene->get_filename(), scene)) { + show_accept(TTR("This scene can't be saved because there is a cyclic instancing inclusion.\nPlease resolve it and then attempt to save again."), TTR("OK")); + return; + } + editor_data.apply_changes_in_editors(); _save_default_environment(); @@ -1452,7 +1473,7 @@ void EditorNode::_edit_current() { bool is_node = current_obj->is_class("Node"); String editable_warning; //none by default - + if (is_resource) { Resource *current_res = Object::cast_to<Resource>(current_obj); @@ -3228,17 +3249,31 @@ Ref<Texture> EditorNode::get_class_icon(const String &p_class, const String &p_f void EditorNode::progress_add_task(const String &p_task, const String &p_label, int p_steps, bool p_can_cancel) { - singleton->progress_dialog->add_task(p_task, p_label, p_steps, p_can_cancel); + if (singleton->disable_progress_dialog) { + print_line(p_task + ": begin: " + p_label + " steps: " + itos(p_steps)); + } else { + singleton->progress_dialog->add_task(p_task, p_label, p_steps, p_can_cancel); + } } bool EditorNode::progress_task_step(const String &p_task, const String &p_state, int p_step, bool p_force_refresh) { - return singleton->progress_dialog->task_step(p_task, p_state, p_step, p_force_refresh); + if (singleton->disable_progress_dialog) { + print_line("\t" + p_task + ": step " + itos(p_step) + ": " + p_state); + return false; + } else { + + return singleton->progress_dialog->task_step(p_task, p_state, p_step, p_force_refresh); + } } void EditorNode::progress_end_task(const String &p_task) { - singleton->progress_dialog->end_task(p_task); + if (singleton->disable_progress_dialog) { + print_line(p_task + ": end"); + } else { + singleton->progress_dialog->end_task(p_task); + } } void EditorNode::progress_add_task_bg(const String &p_task, const String &p_label, int p_steps) { @@ -3320,7 +3355,7 @@ Error EditorNode::export_preset(const String &p_preset, const String &p_path, bo export_defer.path = p_path; export_defer.debug = p_debug; export_defer.password = p_password; - + disable_progress_dialog = true; return OK; } @@ -3610,6 +3645,7 @@ void EditorNode::_load_docks() { _load_docks_from_config(config, "docks"); _load_open_scenes_from_config(config, "EditorNode"); + editor_data.set_plugin_window_layout(config); } @@ -3804,6 +3840,23 @@ void EditorNode::_load_open_scenes_from_config(Ref<ConfigFile> p_layout, const S restoring_scenes = false; } +bool EditorNode::has_scenes_in_session() { + if (!bool(EDITOR_GET("interface/scene_tabs/restore_scenes_on_load"))) { + return false; + } + Ref<ConfigFile> config; + config.instance(); + Error err = config->load(EditorSettings::get_singleton()->get_project_settings_dir().plus_file("editor_layout.cfg")); + if (err != OK) { + return false; + } + if (!config->has_section("EditorNode") || !config->has_section_key("EditorNode", "open_scenes")) { + return false; + } + Array scenes = config->get_value("EditorNode", "open_scenes"); + return !scenes.empty(); +} + void EditorNode::_update_layouts_menu() { editor_layouts->clear(); @@ -4710,7 +4763,7 @@ EditorNode::EditorNode() { _initializing_addons = false; docks_visible = true; restoring_scenes = false; - + disable_progress_dialog = false; scene_distraction = false; script_distraction = false; @@ -5134,14 +5187,9 @@ EditorNode::EditorNode() { top_region->add_child(left_menu_hb); menu_hb->add_child(top_region); - { - Control *sp = memnew(Control); - sp->set_custom_minimum_size(Size2(30, 0) * EDSCALE); - menu_hb->add_child(sp); - } - file_menu = memnew(MenuButton); file_menu->set_flat(false); + file_menu->set_switch_on_hover(true); file_menu->set_text(TTR("Scene")); file_menu->add_style_override("hover", gui_base->get_stylebox("MenuHover", "EditorStyles")); left_menu_hb->add_child(file_menu); @@ -5233,6 +5281,7 @@ EditorNode::EditorNode() { project_menu = memnew(MenuButton); project_menu->set_flat(false); + project_menu->set_switch_on_hover(true); project_menu->set_tooltip(TTR("Miscellaneous project or scene-wide tools.")); project_menu->set_text(TTR("Project")); project_menu->add_style_override("hover", gui_base->get_stylebox("MenuHover", "EditorStyles")); @@ -5274,6 +5323,7 @@ EditorNode::EditorNode() { debug_menu = memnew(MenuButton); debug_menu->set_flat(false); + debug_menu->set_switch_on_hover(true); debug_menu->set_text(TTR("Debug")); debug_menu->add_style_override("hover", gui_base->get_stylebox("MenuHover", "EditorStyles")); left_menu_hb->add_child(debug_menu); @@ -5304,6 +5354,7 @@ EditorNode::EditorNode() { settings_menu = memnew(MenuButton); settings_menu->set_flat(false); + settings_menu->set_switch_on_hover(true); settings_menu->set_text(TTR("Editor")); settings_menu->add_style_override("hover", gui_base->get_stylebox("MenuHover", "EditorStyles")); left_menu_hb->add_child(settings_menu); @@ -5340,6 +5391,7 @@ EditorNode::EditorNode() { // Help Menu help_menu = memnew(MenuButton); help_menu->set_flat(false); + help_menu->set_switch_on_hover(true); help_menu->set_text(TTR("Help")); help_menu->add_style_override("hover", gui_base->get_stylebox("MenuHover", "EditorStyles")); left_menu_hb->add_child(help_menu); @@ -5356,12 +5408,8 @@ EditorNode::EditorNode() { p->add_separator(); p->add_icon_item(gui_base->get_icon("Godot", "EditorIcons"), TTR("About"), HELP_ABOUT); - play_cc = memnew(CenterContainer); - play_cc->set_mouse_filter(Control::MOUSE_FILTER_IGNORE); - menu_hb->add_child(play_cc); - play_button_panel = memnew(PanelContainer); - play_cc->add_child(play_button_panel); + menu_hb->add_child(play_button_panel); HBoxContainer *play_hb = memnew(HBoxContainer); play_button_panel->add_child(play_hb); @@ -5407,11 +5455,6 @@ EditorNode::EditorNode() { run_native = memnew(EditorRunNative); play_hb->add_child(run_native); - native_play_button = memnew(MenuButton); - native_play_button->set_text("NTV"); - menu_hb->add_child(native_play_button); - native_play_button->hide(); - native_play_button->get_popup()->connect("id_pressed", this, "_run_in_device"); run_native->connect("native_run", this, "_menu_option", varray(RUN_PLAY_NATIVE)); play_scene_button = memnew(ToolButton); @@ -5440,6 +5483,9 @@ EditorNode::EditorNode() { play_custom_scene_button->set_shortcut(ED_SHORTCUT("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F5)); #endif + HBoxContainer *right_menu_hb = memnew(HBoxContainer); + menu_hb->add_child(right_menu_hb); + // Toggle for video driver video_driver = memnew(OptionButton); video_driver->set_flat(true); @@ -5447,7 +5493,7 @@ EditorNode::EditorNode() { 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")); - menu_hb->add_child(video_driver); + right_menu_hb->add_child(video_driver); String video_drivers = ProjectSettings::get_singleton()->get_custom_property_info()["rendering/quality/driver/driver_name"].hint_string; String current_video_driver = OS::get_singleton()->get_video_driver_name(OS::get_singleton()->get_current_video_driver()); @@ -5473,9 +5519,6 @@ EditorNode::EditorNode() { progress_hb = memnew(BackgroundProgress); - HBoxContainer *right_menu_hb = memnew(HBoxContainer); - menu_hb->add_child(right_menu_hb); - layout_dialog = memnew(EditorNameDialog); gui_base->add_child(layout_dialog); layout_dialog->set_hide_on_ok(false); diff --git a/editor/editor_node.h b/editor/editor_node.h index e220daf8a9..e5670e5e7c 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -243,7 +243,6 @@ private: Control *vp_base; PaneDrag *pd; - CenterContainer *play_cc; HBoxContainer *menu_hb; Control *viewport; MenuButton *file_menu; @@ -255,7 +254,6 @@ private: ToolButton *export_button; ToolButton *prev_scene; ToolButton *play_button; - MenuButton *native_play_button; ToolButton *pause_button; ToolButton *stop_button; ToolButton *run_settings_button; @@ -445,6 +443,7 @@ private: void _show_messages(); void _vp_resized(); + bool _validate_scene_recursive(const String &p_filename, Node *p_node); void _save_scene(String p_file, int idx = -1); void _save_all_scenes(); int _next_unsaved_scene(bool p_valid_filename, int p_start = 0); @@ -524,6 +523,8 @@ private: } export_defer; + bool disable_progress_dialog; + static EditorNode *singleton; static Vector<EditorNodeInitCallback> _init_callbacks; @@ -786,6 +787,7 @@ public: void edit_current() { _edit_current(); }; void update_keying() const { inspector_dock->update_keying(); }; + bool has_scenes_in_session(); EditorNode(); ~EditorNode(); diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index 86b2db877e..cd024ff870 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -829,11 +829,11 @@ void EditorPlugin::_bind_methods() { BIND_ENUM_CONSTANT(DOCK_SLOT_MAX); } -EditorPlugin::EditorPlugin() { - undo_redo = NULL; - input_event_forwarding_always_enabled = false; - force_draw_over_forwarding_enabled = false; - last_main_screen_name = ""; +EditorPlugin::EditorPlugin() : + undo_redo(NULL), + input_event_forwarding_always_enabled(false), + force_draw_over_forwarding_enabled(false), + last_main_screen_name("") { } EditorPlugin::~EditorPlugin() { diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 57c6fa3547..b992b90758 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -233,7 +233,7 @@ void EditorPropertyPath::_path_pressed() { dialog->set_mode(EditorFileDialog::MODE_OPEN_DIR); dialog->set_current_dir(full_path); } else { - dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE); + dialog->set_mode(save_mode ? EditorFileDialog::MODE_SAVE_FILE : EditorFileDialog::MODE_OPEN_FILE); for (int i = 0; i < extensions.size(); i++) { String e = extensions[i].strip_edges(); if (e != String()) { @@ -260,6 +260,11 @@ void EditorPropertyPath::setup(const Vector<String> &p_extensions, bool p_folder global = p_global; } +void EditorPropertyPath::set_save_mode() { + + save_mode = true; +} + void EditorPropertyPath::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED) { @@ -296,6 +301,7 @@ EditorPropertyPath::EditorPropertyPath() { path_edit->connect("pressed", this, "_path_pressed"); folder = false; global = false; + save_mode = false; } ///////////////////// CLASS NAME ///////////////////////// @@ -1090,6 +1096,8 @@ void EditorPropertyVector2::setup(double p_min, double p_max, double p_step, boo spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1171,6 +1179,8 @@ void EditorPropertyRect2::setup(double p_min, double p_max, double p_step, bool spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1251,6 +1261,8 @@ void EditorPropertyVector3::setup(double p_min, double p_max, double p_step, boo spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1331,6 +1343,8 @@ void EditorPropertyPlane::setup(double p_min, double p_max, double p_step, bool spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1413,6 +1427,8 @@ void EditorPropertyQuat::setup(double p_min, double p_max, double p_step, bool p spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1500,6 +1516,8 @@ void EditorPropertyAABB::setup(double p_min, double p_max, double p_step, bool p spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1574,6 +1592,8 @@ void EditorPropertyTransform2D::setup(double p_min, double p_max, double p_step, spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1653,6 +1673,8 @@ void EditorPropertyBasis::setup(double p_min, double p_max, double p_step, bool spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1738,6 +1760,8 @@ void EditorPropertyTransform::setup(double p_min, double p_max, double p_step, b spin[i]->set_max(p_max); spin[i]->set_step(p_step); spin[i]->set_hide_slider(p_no_slider); + spin[i]->set_allow_greater(true); + spin[i]->set_allow_lesser(true); } } @@ -1932,6 +1956,20 @@ EditorPropertyNodePath::EditorPropertyNodePath() { void EditorPropertyResource::_file_selected(const String &p_path) { RES res = ResourceLoader::load(p_path); + + List<PropertyInfo> prop_list; + get_edited_object()->get_property_list(&prop_list); + String type; + + for (List<PropertyInfo>::Element *E = prop_list.front(); E; E = E->next()) { + if (E->get().name == get_edited_property() && (E->get().hint & PROPERTY_HINT_RESOURCE_TYPE)) { + type = E->get().hint_string; + } + } + + if (!type.empty() && !res->is_class(type)) + EditorNode::get_singleton()->show_warning(vformat(TTR("The selected resource (%s) does not match the type expected for this property (%s)."), res->get_class(), type)); + emit_signal("property_changed", get_edited_property(), res); update_property(); } @@ -2383,6 +2421,7 @@ void EditorPropertyResource::update_property() { sub_inspector->set_keying(is_keying()); sub_inspector->set_read_only(is_read_only()); sub_inspector->set_use_folding(is_using_folding()); + sub_inspector->set_undo_redo(EditorNode::get_singleton()->get_undo_redo()); sub_inspector_vbox = memnew(VBoxContainer); add_child(sub_inspector_vbox); @@ -3096,7 +3135,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; case Variant::ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::ARRAY); + editor->setup(Variant::ARRAY, p_hint_text); add_property_editor(p_path, editor); } break; case Variant::POOL_BYTE_ARRAY: { diff --git a/editor/editor_properties.h b/editor/editor_properties.h index b82ef977ef..05716408f3 100644 --- a/editor/editor_properties.h +++ b/editor/editor_properties.h @@ -106,6 +106,7 @@ class EditorPropertyPath : public EditorProperty { Vector<String> extensions; bool folder; bool global; + bool save_mode; EditorFileDialog *dialog; LineEdit *path; Button *path_edit; @@ -120,6 +121,7 @@ protected: public: void setup(const Vector<String> &p_extensions, bool p_folder, bool p_global); + void set_save_mode(); virtual void update_property(); EditorPropertyPath(); }; diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 431f608f46..090c7b2d3d 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -223,31 +223,31 @@ void EditorPropertyArray::update_property() { // arrays case Variant::POOL_BYTE_ARRAY: { - arrtype = "ByteArray"; + arrtype = "PoolByteArray"; } break; case Variant::POOL_INT_ARRAY: { - arrtype = "IntArray"; + arrtype = "PoolIntArray"; } break; case Variant::POOL_REAL_ARRAY: { - arrtype = "FltArray"; + arrtype = "PoolFloatArray"; } break; case Variant::POOL_STRING_ARRAY: { - arrtype = "StrArray"; + arrtype = "PoolStringArray"; } break; case Variant::POOL_VECTOR2_ARRAY: { - arrtype = "Vec2Array"; + arrtype = "PoolVector2Array"; } break; case Variant::POOL_VECTOR3_ARRAY: { - arrtype = "Vec3Array"; + arrtype = "PoolVector3Array"; } break; case Variant::POOL_COLOR_ARRAY: { - arrtype = "ColArray"; + arrtype = "PoolColorArray"; } break; default: {} } @@ -261,7 +261,7 @@ void EditorPropertyArray::update_property() { return; } - edit->set_text(arrtype + "(size " + itos(array.call("size")) + ")"); + edit->set_text(arrtype + " (size " + itos(array.call("size")) + ")"); #ifdef TOOLS_ENABLED @@ -334,185 +334,18 @@ void EditorPropertyArray::update_property() { EditorProperty *prop = NULL; Variant value = array.get(i + offset); + Variant::Type value_type = value.get_type(); - switch (value.get_type()) { - case Variant::NIL: { - prop = memnew(EditorPropertyNil); - - } break; - - // atomic types - case Variant::BOOL: { - - prop = memnew(EditorPropertyCheck); - - } break; - case Variant::INT: { - EditorPropertyInteger *editor = memnew(EditorPropertyInteger); - editor->setup(-100000, 100000, 1, true, true); - prop = editor; - - } break; - case Variant::REAL: { - - EditorPropertyFloat *editor = memnew(EditorPropertyFloat); - editor->setup(-100000, 100000, 0.001, true, false, true, true); - prop = editor; - } break; - case Variant::STRING: { - - prop = memnew(EditorPropertyText); - - } break; - - // math types - - case Variant::VECTOR2: { - - EditorPropertyVector2 *editor = memnew(EditorPropertyVector2); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::RECT2: { - - EditorPropertyRect2 *editor = memnew(EditorPropertyRect2); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::VECTOR3: { - - EditorPropertyVector3 *editor = memnew(EditorPropertyVector3); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::TRANSFORM2D: { - - EditorPropertyTransform2D *editor = memnew(EditorPropertyTransform2D); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::PLANE: { - - EditorPropertyPlane *editor = memnew(EditorPropertyPlane); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::QUAT: { - - EditorPropertyQuat *editor = memnew(EditorPropertyQuat); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::AABB: { - - EditorPropertyAABB *editor = memnew(EditorPropertyAABB); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::BASIS: { - EditorPropertyBasis *editor = memnew(EditorPropertyBasis); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - case Variant::TRANSFORM: { - EditorPropertyTransform *editor = memnew(EditorPropertyTransform); - editor->setup(-100000, 100000, 0.001, true); - prop = editor; - - } break; - - // misc types - case Variant::COLOR: { - prop = memnew(EditorPropertyColor); - - } break; - case Variant::NODE_PATH: { - prop = memnew(EditorPropertyNodePath); - - } break; - case Variant::_RID: { - prop = memnew(EditorPropertyNil); - - } break; - case Variant::OBJECT: { - - if (Object::cast_to<EncodedObjectAsID>(value)) { - - EditorPropertyObjectID *editor = memnew(EditorPropertyObjectID); - editor->setup("Object"); - prop = editor; - - } else { - - EditorPropertyResource *editor = memnew(EditorPropertyResource); - editor->setup("Resource"); - prop = editor; - } - - } break; - case Variant::DICTIONARY: { - prop = memnew(EditorPropertyDictionary); - - } break; - - // arrays - case Variant::ARRAY: { - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::ARRAY); - prop = editor; - - } break; - case Variant::POOL_BYTE_ARRAY: { - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_BYTE_ARRAY); - prop = editor; - - } break; - case Variant::POOL_INT_ARRAY: { - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_INT_ARRAY); - prop = editor; - - } break; - case Variant::POOL_REAL_ARRAY: { - - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_REAL_ARRAY); - prop = editor; - } break; - case Variant::POOL_STRING_ARRAY: { - - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_STRING_ARRAY); - prop = editor; - } break; - case Variant::POOL_VECTOR2_ARRAY: { - - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_VECTOR2_ARRAY); - prop = editor; - } break; - case Variant::POOL_VECTOR3_ARRAY: { - - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_VECTOR3_ARRAY); - prop = editor; - } break; - case Variant::POOL_COLOR_ARRAY: { + if (value_type == Variant::NIL && subtype != Variant::NIL) { + value_type = subtype; + } - EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_COLOR_ARRAY); - prop = editor; - } break; - default: {} + if (value_type == Variant::OBJECT && Object::cast_to<EncodedObjectAsID>(value)) { + EditorPropertyObjectID *editor = memnew(EditorPropertyObjectID); + editor->setup("Object"); + prop = editor; + } else { + prop = EditorInspector::instantiate_property_editor(NULL, value_type, "", subtype_hint, subtype_hint_string, 0); } prop->set_object_and_property(object.ptr(), prop_name); @@ -583,15 +416,39 @@ void EditorPropertyArray::_length_changed(double p_page) { emit_signal("property_changed", get_edited_property(), array); if (array.get_type() == Variant::ARRAY) { + if (subtype != Variant::NIL) { + int size = array.call("size"); + for (int i = 0; i < size; i++) { + if (array.get(i).get_type() == Variant::NIL) { + Variant::CallError ce; + array.set(i, Variant::construct(subtype, NULL, 0, ce)); + } + } + } array = array.call("duplicate"); //dupe, so undo/redo works better } object->set_array(array); update_property(); } -void EditorPropertyArray::setup(Variant::Type p_array_type) { +void EditorPropertyArray::setup(Variant::Type p_array_type, const String &p_hint_string) { array_type = p_array_type; + + if (array_type == Variant::ARRAY && !p_hint_string.empty()) { + int hint_subtype_seperator = p_hint_string.find(":"); + if (hint_subtype_seperator >= 0) { + String subtype_string = p_hint_string.substr(0, hint_subtype_seperator); + int slash_pos = subtype_string.find("/"); + if (slash_pos >= 0) { + subtype_hint = PropertyHint(subtype_string.substr(slash_pos + 1, subtype_string.size() - slash_pos - 1).to_int()); + subtype_string = subtype_string.substr(0, slash_pos); + } + + subtype_hint_string = p_hint_string.substr(hint_subtype_seperator + 1, p_hint_string.size() - hint_subtype_seperator - 1); + subtype = Variant::Type(subtype_string.to_int()); + } + } } void EditorPropertyArray::_bind_methods() { @@ -630,6 +487,10 @@ EditorPropertyArray::EditorPropertyArray() { change_type->add_item(type, i); } changing_type_idx = -1; + + subtype = Variant::NIL; + subtype_hint = PROPERTY_HINT_NONE; + subtype_hint_string = ""; } ///////////////////// DICTIONARY /////////////////////////// diff --git a/editor/editor_properties_array_dict.h b/editor/editor_properties_array_dict.h index d5eecd9106..46c9bebf2a 100644 --- a/editor/editor_properties_array_dict.h +++ b/editor/editor_properties_array_dict.h @@ -93,6 +93,9 @@ class EditorPropertyArray : public EditorProperty { EditorSpinSlider *page; HBoxContainer *page_hb; Variant::Type array_type; + Variant::Type subtype; + PropertyHint subtype_hint; + String subtype_hint_string; void _page_changed(double p_page); void _length_changed(double p_page); @@ -108,7 +111,7 @@ protected: void _notification(int p_what); public: - void setup(Variant::Type p_array_type); + void setup(Variant::Type p_array_type, const String &p_hint_string = ""); virtual void update_property(); EditorPropertyArray(); }; diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp index 310c3b3a52..71e9aced7e 100644 --- a/editor/editor_resource_preview.cpp +++ b/editor/editor_resource_preview.cpp @@ -326,7 +326,7 @@ void EditorResourcePreview::queue_edited_resource_preview(const Ref<Resource> &p if (cache.has(path_id) && cache[path_id].last_hash == p_res->hash_edited_version()) { cache[path_id].order = order++; - p_receiver->call_deferred(p_receiver_func, path_id, cache[path_id].preview, cache[path_id].small_preview, p_userdata); + p_receiver->call(p_receiver_func, path_id, cache[path_id].preview, cache[path_id].small_preview, p_userdata); preview_mutex->unlock(); return; } @@ -351,7 +351,7 @@ void EditorResourcePreview::queue_resource_preview(const String &p_path, Object preview_mutex->lock(); if (cache.has(p_path)) { cache[p_path].order = order++; - p_receiver->call_deferred(p_receiver_func, p_path, cache[p_path].preview, cache[p_path].small_preview, p_userdata); + p_receiver->call(p_receiver_func, p_path, cache[p_path].preview, cache[p_path].small_preview, p_userdata); preview_mutex->unlock(); return; } diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp index 9d3ab59116..a28d071d77 100644 --- a/editor/editor_sectioned_inspector.cpp +++ b/editor/editor_sectioned_inspector.cpp @@ -298,19 +298,18 @@ EditorInspector *SectionedInspector::get_inspector() { return inspector; } -SectionedInspector::SectionedInspector() { - - obj = -1; - - search_box = NULL; - +SectionedInspector::SectionedInspector() : + obj(-1), + sections(memnew(Tree)), + filter(memnew(SectionedInspectorFilter)), + inspector(memnew(EditorInspector)), + search_box(NULL) { add_constant_override("autohide", 1); // Fixes the dragger always showing up VBoxContainer *left_vb = memnew(VBoxContainer); left_vb->set_custom_minimum_size(Size2(170, 0) * EDSCALE); add_child(left_vb); - sections = memnew(Tree); sections->set_v_size_flags(SIZE_EXPAND_FILL); sections->set_hide_root(true); @@ -321,8 +320,6 @@ SectionedInspector::SectionedInspector() { right_vb->set_h_size_flags(SIZE_EXPAND_FILL); add_child(right_vb); - filter = memnew(SectionedInspectorFilter); - inspector = memnew(EditorInspector); inspector->set_v_size_flags(SIZE_EXPAND_FILL); right_vb->add_child(inspector, true); inspector->set_use_doc_hints(true); diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index fdfa094ba2..039ba22a77 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -256,6 +256,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _THREAD_SAFE_METHOD_ + /* Languages */ + { String lang_hint = "en"; String host_lang = OS::get_singleton()->get_locale(); @@ -291,11 +293,13 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["interface/editor/editor_language"] = PropertyInfo(Variant::STRING, "interface/editor/editor_language", PROPERTY_HINT_ENUM, lang_hint, PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); } + /* Interface */ + + // Editor _initial_set("interface/editor/display_scale", 0); hints["interface/editor/display_scale"] = PropertyInfo(Variant::INT, "interface/editor/display_scale", PROPERTY_HINT_ENUM, "Auto,75%,100%,125%,150%,175%,200%,Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/custom_display_scale", 1.0f); hints["interface/editor/custom_display_scale"] = PropertyInfo(Variant::REAL, "interface/editor/custom_display_scale", PROPERTY_HINT_RANGE, "0.75,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); - _initial_set("interface/scene_tabs/show_script_button", false); _initial_set("interface/editor/main_font_size", 14); hints["interface/editor/main_font_size"] = PropertyInfo(Variant::INT, "interface/editor/main_font_size", PROPERTY_HINT_RANGE, "10,40,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/code_font_size", 14); @@ -317,12 +321,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["interface/editor/dim_amount"] = PropertyInfo(Variant::REAL, "interface/editor/dim_amount", PROPERTY_HINT_RANGE, "0,1,0.01", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/dim_transition_time", 0.08f); hints["interface/editor/dim_transition_time"] = PropertyInfo(Variant::REAL, "interface/editor/dim_transition_time", PROPERTY_HINT_RANGE, "0,1,0.001", PROPERTY_USAGE_DEFAULT); - _initial_set("interface/editor/separate_distraction_mode", false); - _initial_set("interface/editor/save_each_scene_on_quit", true); // Regression _initial_set("interface/editor/quit_confirmation", true); + // Theme _initial_set("interface/theme/preset", "Default"); hints["interface/theme/preset"] = PropertyInfo(Variant::STRING, "interface/theme/preset", PROPERTY_HINT_ENUM, "Default,Alien,Arc,Godot 2,Grey,Light,Solarized (Dark),Solarized (Light),Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/theme/icon_and_font_color", 0); @@ -342,35 +345,78 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("interface/theme/custom_theme", ""); hints["interface/theme/custom_theme"] = PropertyInfo(Variant::STRING, "interface/theme/custom_theme", PROPERTY_HINT_GLOBAL_FILE, "*.res,*.tres,*.theme", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + // Scene tabs _initial_set("interface/scene_tabs/show_extension", false); _initial_set("interface/scene_tabs/show_thumbnail_on_hover", true); _initial_set("interface/scene_tabs/resize_if_many_tabs", true); _initial_set("interface/scene_tabs/minimum_width", 50); hints["interface/scene_tabs/minimum_width"] = PropertyInfo(Variant::INT, "interface/scene_tabs/minimum_width", PROPERTY_HINT_RANGE, "50,500,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + _initial_set("interface/scene_tabs/show_script_button", false); + + /* Filesystem */ + // Directories _initial_set("filesystem/directories/autoscan_project_path", ""); hints["filesystem/directories/autoscan_project_path"] = PropertyInfo(Variant::STRING, "filesystem/directories/autoscan_project_path", PROPERTY_HINT_GLOBAL_DIR); _initial_set("filesystem/directories/default_project_path", OS::get_singleton()->has_environment("HOME") ? OS::get_singleton()->get_environment("HOME") : OS::get_singleton()->get_system_dir(OS::SYSTEM_DIR_DOCUMENTS)); hints["filesystem/directories/default_project_path"] = PropertyInfo(Variant::STRING, "filesystem/directories/default_project_path", PROPERTY_HINT_GLOBAL_DIR); - _initial_set("filesystem/directories/default_project_export_path", ""); - hints["filesystem/directories/default_project_export_path"] = PropertyInfo(Variant::STRING, "filesystem/directories/default_project_export_path", PROPERTY_HINT_GLOBAL_DIR); - _initial_set("interface/scene_tabs/show_script_button", false); + // On save + _initial_set("filesystem/on_save/compress_binary_resources", true); + _initial_set("filesystem/on_save/safe_save_on_backup_then_rename", true); + + // File dialog + _initial_set("filesystem/file_dialog/show_hidden_files", false); + _initial_set("filesystem/file_dialog/display_mode", 0); + hints["filesystem/file_dialog/display_mode"] = PropertyInfo(Variant::INT, "filesystem/file_dialog/display_mode", PROPERTY_HINT_ENUM, "Thumbnails,List"); + _initial_set("filesystem/file_dialog/thumbnail_size", 64); + hints["filesystem/file_dialog/thumbnail_size"] = PropertyInfo(Variant::INT, "filesystem/file_dialog/thumbnail_size", PROPERTY_HINT_RANGE, "32,128,16"); + + // Import + _initial_set("filesystem/import/pvrtc_texture_tool", ""); +#ifdef WINDOWS_ENABLED + hints["filesystem/import/pvrtc_texture_tool"] = PropertyInfo(Variant::STRING, "filesystem/import/pvrtc_texture_tool", PROPERTY_HINT_GLOBAL_FILE, "*.exe"); +#else + hints["filesystem/import/pvrtc_texture_tool"] = PropertyInfo(Variant::STRING, "filesystem/import/pvrtc_texture_tool", PROPERTY_HINT_GLOBAL_FILE, ""); +#endif + _initial_set("filesystem/import/pvrtc_fast_conversion", false); + + /* Docks */ + + // SceneTree + _initial_set("docks/scene_tree/start_create_dialog_fully_expanded", false); + _initial_set("docks/scene_tree/draw_relationship_lines", true); + _initial_set("docks/scene_tree/relationship_line_color", Color::html("464646")); + + // FileSystem + _initial_set("docks/filesystem/display_mode", 0); + hints["docks/filesystem/display_mode"] = PropertyInfo(Variant::INT, "docks/filesystem/display_mode", PROPERTY_HINT_ENUM, "Tree only, Split"); + _initial_set("docks/filesystem/thumbnail_size", 64); + hints["docks/filesystem/thumbnail_size"] = PropertyInfo(Variant::INT, "docks/filesystem/thumbnail_size", PROPERTY_HINT_RANGE, "32,128,16"); + _initial_set("docks/filesystem/files_display_mode", 0); + hints["docks/filesystem/files_display_mode"] = PropertyInfo(Variant::INT, "docks/filesystem/files_display_mode", PROPERTY_HINT_ENUM, "Thumbnails,List"); + _initial_set("docks/filesystem/always_show_folders", true); + + // Property editor + _initial_set("docks/property_editor/auto_refresh_interval", 0.3); + + /* Text editor */ + + // Theme _initial_set("text_editor/theme/color_theme", "Adaptive"); hints["text_editor/theme/color_theme"] = PropertyInfo(Variant::STRING, "text_editor/theme/color_theme", PROPERTY_HINT_ENUM, "Adaptive,Default,Custom"); - _initial_set("text_editor/theme/line_spacing", 6); _initial_set("text_editor/theme/selection_color", Color::html("40808080")); _load_default_text_editor_theme(); + // Highlighting _initial_set("text_editor/highlighting/syntax_highlighting", true); - _initial_set("text_editor/highlighting/highlight_all_occurrences", true); _initial_set("text_editor/highlighting/highlight_current_line", true); _initial_set("text_editor/highlighting/highlight_type_safe_lines", true); - _initial_set("text_editor/cursor/scroll_past_end_of_file", false); + // Indent _initial_set("text_editor/indent/type", 0); hints["text_editor/indent/type"] = PropertyInfo(Variant::INT, "text_editor/indent/type", PROPERTY_HINT_ENUM, "Tabs,Spaces"); _initial_set("text_editor/indent/size", 4); @@ -379,6 +425,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("text_editor/indent/convert_indent_on_save", false); _initial_set("text_editor/indent/draw_tabs", true); + // Line numbers _initial_set("text_editor/line_numbers/show_line_numbers", true); _initial_set("text_editor/line_numbers/line_numbers_zero_padded", false); _initial_set("text_editor/line_numbers/show_breakpoint_gutter", true); @@ -388,35 +435,45 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("text_editor/line_numbers/line_length_guideline_column", 80); hints["text_editor/line_numbers/line_length_guideline_column"] = PropertyInfo(Variant::INT, "text_editor/line_numbers/line_length_guideline_column", PROPERTY_HINT_RANGE, "20, 160, 1"); + // Open scripts _initial_set("text_editor/open_scripts/smooth_scrolling", true); _initial_set("text_editor/open_scripts/v_scroll_speed", 80); _initial_set("text_editor/open_scripts/show_members_overview", true); + // Files _initial_set("text_editor/files/trim_trailing_whitespace_on_save", false); - _initial_set("text_editor/completion/idle_parse_delay", 2); + _initial_set("text_editor/files/autosave_interval_secs", 0); + _initial_set("text_editor/files/restore_scripts_on_load", true); + + // Tools _initial_set("text_editor/tools/create_signal_callbacks", true); _initial_set("text_editor/tools/sort_members_outline_alphabetically", false); - _initial_set("text_editor/files/autosave_interval_secs", 0); + // Cursor + _initial_set("text_editor/cursor/scroll_past_end_of_file", false); _initial_set("text_editor/cursor/block_caret", false); _initial_set("text_editor/cursor/caret_blink", true); _initial_set("text_editor/cursor/caret_blink_speed", 0.5); hints["text_editor/cursor/caret_blink_speed"] = PropertyInfo(Variant::REAL, "text_editor/cursor/caret_blink_speed", PROPERTY_HINT_RANGE, "0.1, 10, 0.01"); _initial_set("text_editor/cursor/right_click_moves_caret", true); + // Completion + _initial_set("text_editor/completion/idle_parse_delay", 2); _initial_set("text_editor/completion/auto_brace_complete", false); _initial_set("text_editor/completion/put_callhint_tooltip_below_current_line", true); _initial_set("text_editor/completion/callhint_tooltip_offset", Vector2()); - _initial_set("text_editor/files/restore_scripts_on_load", true); _initial_set("text_editor/completion/complete_file_paths", true); _initial_set("text_editor/completion/add_type_hints", false); - _initial_set("docks/scene_tree/start_create_dialog_fully_expanded", false); - _initial_set("docks/scene_tree/draw_relationship_lines", true); - _initial_set("docks/scene_tree/relationship_line_color", Color::html("464646")); + // Help + _initial_set("text_editor/help/show_help_index", true); + /* Editors */ + + // GridMap _initial_set("editors/grid_map/pick_distance", 5000.0); + // 3D _initial_set("editors/3d/primary_grid_color", Color::html("909090")); hints["editors/3d/primary_grid_color"] = PropertyInfo(Variant::COLOR, "editors/3d/primary_grid_color", PROPERTY_HINT_COLOR_NO_ALPHA, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); @@ -433,7 +490,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("editors/3d/default_z_near", 0.05); _initial_set("editors/3d/default_z_far", 500.0); - // navigation + // 3D: Navigation _initial_set("editors/3d/navigation/navigation_scheme", 0); _initial_set("editors/3d/navigation/invert_y_axis", false); hints["editors/3d/navigation/navigation_scheme"] = PropertyInfo(Variant::INT, "editors/3d/navigation/navigation_scheme", PROPERTY_HINT_ENUM, "Godot,Maya,Modo"); @@ -447,14 +504,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["editors/3d/navigation/pan_modifier"] = PropertyInfo(Variant::INT, "editors/3d/navigation/pan_modifier", PROPERTY_HINT_ENUM, "None,Shift,Alt,Meta,Ctrl"); _initial_set("editors/3d/navigation/zoom_modifier", 4); hints["editors/3d/navigation/zoom_modifier"] = PropertyInfo(Variant::INT, "editors/3d/navigation/zoom_modifier", PROPERTY_HINT_ENUM, "None,Shift,Alt,Meta,Ctrl"); - - // _initial_set("editors/3d/navigation/emulate_numpad", false); not used at the moment _initial_set("editors/3d/navigation/warped_mouse_panning", true); - // navigation feel + // 3D: Navigation feel _initial_set("editors/3d/navigation_feel/orbit_sensitivity", 0.4); hints["editors/3d/navigation_feel/orbit_sensitivity"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/orbit_sensitivity", PROPERTY_HINT_RANGE, "0.0, 2, 0.01"); - _initial_set("editors/3d/navigation_feel/orbit_inertia", 0.05); hints["editors/3d/navigation_feel/orbit_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/orbit_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); _initial_set("editors/3d/navigation_feel/translation_inertia", 0.15); @@ -466,7 +520,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("editors/3d/navigation_feel/manipulation_translation_inertia", 0.075); hints["editors/3d/navigation_feel/manipulation_translation_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/manipulation_translation_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); - // freelook + // 3D: Freelook _initial_set("editors/3d/freelook/freelook_inertia", 0.1); hints["editors/3d/freelook/freelook_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); _initial_set("editors/3d/freelook/freelook_base_speed", 5.0); @@ -477,6 +531,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["editors/3d/freelook/freelook_modifier_speed_factor"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_modifier_speed_factor", PROPERTY_HINT_RANGE, "0.0, 10.0, 0.1"); _initial_set("editors/3d/freelook/freelook_speed_zoom_link", false); + // 2D _initial_set("editors/2d/grid_color", Color(1.0, 1.0, 1.0, 0.07)); _initial_set("editors/2d/guides_color", Color(0.6, 0.0, 0.8)); _initial_set("editors/2d/bone_width", 5); @@ -493,9 +548,19 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("editors/2d/scroll_to_pan", false); _initial_set("editors/2d/pan_speed", 20); + // Polygon editor _initial_set("editors/poly_editor/point_grab_radius", 8); _initial_set("editors/poly_editor/show_previous_outline", true); + // Animation + _initial_set("editors/animation/autorename_animation_tracks", true); + _initial_set("editors/animation/confirm_insert_track", true); + _initial_set("editors/animation/onion_layers_past_color", Color(1, 0, 0)); + _initial_set("editors/animation/onion_layers_future_color", Color(0, 1, 0)); + + /* Run */ + + // Window placement _initial_set("run/window_placement/rect", 1); hints["run/window_placement/rect"] = PropertyInfo(Variant::INT, "run/window_placement/rect", PROPERTY_HINT_ENUM, "Top Left,Centered,Custom Position,Force Maximized,Force Fullscreen"); String screen_hints = "Same as Editor,Previous Monitor,Next Monitor"; @@ -506,54 +571,15 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("run/window_placement/screen", 0); hints["run/window_placement/screen"] = PropertyInfo(Variant::INT, "run/window_placement/screen", PROPERTY_HINT_ENUM, screen_hints); - _initial_set("filesystem/on_save/compress_binary_resources", true); - _initial_set("filesystem/on_save/save_modified_external_resources", true); - - _initial_set("text_editor/tools/create_signal_callbacks", true); - - _initial_set("filesystem/file_dialog/show_hidden_files", false); - _initial_set("filesystem/file_dialog/display_mode", 0); - hints["filesystem/file_dialog/display_mode"] = PropertyInfo(Variant::INT, "filesystem/file_dialog/display_mode", PROPERTY_HINT_ENUM, "Thumbnails,List"); - - _initial_set("filesystem/file_dialog/thumbnail_size", 64); - hints["filesystem/file_dialog/thumbnail_size"] = PropertyInfo(Variant::INT, "filesystem/file_dialog/thumbnail_size", PROPERTY_HINT_RANGE, "32,128,16"); - - _initial_set("docks/filesystem/display_mode", 0); - hints["docks/filesystem/display_mode"] = PropertyInfo(Variant::INT, "docks/filesystem/display_mode", PROPERTY_HINT_ENUM, "Tree only, Split"); - _initial_set("docks/filesystem/thumbnail_size", 64); - hints["docks/filesystem/thumbnail_size"] = PropertyInfo(Variant::INT, "docks/filesystem/thumbnail_size", PROPERTY_HINT_RANGE, "32,128,16"); - _initial_set("docks/filesystem/files_display_mode", 0); - hints["docks/filesystem/files_display_mode"] = PropertyInfo(Variant::INT, "docks/filesystem/files_display_mode", PROPERTY_HINT_ENUM, "Thumbnails,List"); - _initial_set("docks/filesystem/always_show_folders", true); - - _initial_set("editors/animation/autorename_animation_tracks", true); - _initial_set("editors/animation/confirm_insert_track", true); - _initial_set("editors/animation/onion_layers_past_color", Color(1, 0, 0)); - _initial_set("editors/animation/onion_layers_future_color", Color(0, 1, 0)); - - _initial_set("docks/property_editor/texture_preview_width", 48); - _initial_set("docks/property_editor/auto_refresh_interval", 0.3); - _initial_set("text_editor/help/show_help_index", true); - - _initial_set("filesystem/import/ask_save_before_reimport", false); - - _initial_set("filesystem/import/pvrtc_texture_tool", ""); -#ifdef WINDOWS_ENABLED - hints["filesystem/import/pvrtc_texture_tool"] = PropertyInfo(Variant::STRING, "filesystem/import/pvrtc_texture_tool", PROPERTY_HINT_GLOBAL_FILE, "*.exe"); -#else - hints["filesystem/import/pvrtc_texture_tool"] = PropertyInfo(Variant::STRING, "filesystem/import/pvrtc_texture_tool", PROPERTY_HINT_GLOBAL_FILE, ""); -#endif - _initial_set("filesystem/import/pvrtc_fast_conversion", false); - + // Auto save _initial_set("run/auto_save/save_before_running", true); + + // Output _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); - _initial_set("filesystem/resources/save_compressed_resources", true); - _initial_set("filesystem/resources/auto_reload_modified_images", true); - _initial_set("filesystem/import/automatic_reimport_on_sources_changed", true); - _initial_set("filesystem/on_save/safe_save_on_backup_then_rename", true); + /* Extra config */ if (p_extra_config.is_valid()) { diff --git a/editor/editor_settings.h b/editor/editor_settings.h index 7b0de9617c..dabe697f10 100644 --- a/editor/editor_settings.h +++ b/editor/editor_settings.h @@ -71,23 +71,23 @@ private: bool hide_from_editor; bool save; bool restart_if_changed; - VariantContainer() { - variant = Variant(); - initial = Variant(); - order = 0; - hide_from_editor = false; - has_default_value = false; - save = false; - restart_if_changed = false; + VariantContainer() : + order(0), + variant(Variant()), + initial(Variant()), + has_default_value(false), + hide_from_editor(false), + save(false), + restart_if_changed(false) { } - VariantContainer(const Variant &p_variant, int p_order) { - variant = p_variant; - initial = Variant(); - order = p_order; - hide_from_editor = false; - has_default_value = false; - save = false; - restart_if_changed = false; + VariantContainer(const Variant &p_variant, int p_order) : + order(p_order), + variant(p_variant), + initial(Variant()), + has_default_value(false), + hide_from_editor(false), + save(false), + restart_if_changed(false) { } }; diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp index b6e4375ce9..1b7322fd13 100644 --- a/editor/editor_spin_slider.cpp +++ b/editor/editor_spin_slider.cpp @@ -63,6 +63,7 @@ void EditorSpinSlider::_gui_input(const Ref<InputEvent> &p_event) { grabbing_spinner_attempt = true; grabbing_spinner_dist_cache = 0; + pre_grab_value = get_value(); grabbing_spinner = false; grabbing_spinner_mouse_pos = Input::get_singleton()->get_mouse_position(); } @@ -107,10 +108,10 @@ void EditorSpinSlider::_gui_input(const Ref<InputEvent> &p_event) { if (ABS(grabbing_spinner_dist_cache) > 6) { set_value(get_value() + SGN(grabbing_spinner_dist_cache)); grabbing_spinner_dist_cache = 0; + pre_grab_value = get_value(); } } else { - set_value(get_value() + get_step() * grabbing_spinner_dist_cache * 10); - grabbing_spinner_dist_cache = 0; + set_value(pre_grab_value + get_step() * grabbing_spinner_dist_cache * 10); } } } else if (updown_offset != -1) { @@ -154,7 +155,7 @@ void EditorSpinSlider::_grabber_gui_input(const Ref<InputEvent> &p_event) { void EditorSpinSlider::_notification(int p_what) { - if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_OUT || p_what == MainLoop::NOTIFICATION_WM_FOCUS_OUT) { + if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_OUT || p_what == MainLoop::NOTIFICATION_WM_FOCUS_IN) { if (grabbing_spinner) { Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_VISIBLE); grabbing_spinner = false; @@ -434,6 +435,7 @@ EditorSpinSlider::EditorSpinSlider() { grabbing_spinner_attempt = false; grabbing_spinner = false; grabbing_spinner_dist_cache = 0; + pre_grab_value = 0; set_focus_mode(FOCUS_ALL); updown_offset = -1; hover_updown = false; diff --git a/editor/editor_spin_slider.h b/editor/editor_spin_slider.h index e48eb171b8..9d43bd2884 100644 --- a/editor/editor_spin_slider.h +++ b/editor/editor_spin_slider.h @@ -59,6 +59,7 @@ class EditorSpinSlider : public Range { bool read_only; float grabbing_spinner_dist_cache; Vector2 grabbing_spinner_mouse_pos; + double pre_grab_value; LineEdit *value_input; bool value_input_just_closed; diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 828e608fa4..b2368fff6b 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -951,7 +951,7 @@ void FileSystemDock::_find_remaps(EditorFileSystemDirectory *efsd, const Map<Str } void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_new_path, - Map<String, String> &p_file_renames, Map<String, String> &p_folder_renames) const { + Map<String, String> &p_file_renames, Map<String, String> &p_folder_renames) { //Ensure folder paths end with "/" String old_path = (p_item.is_file || p_item.path.ends_with("/")) ? p_item.path : (p_item.path + "/"); String new_path = (p_item.is_file || p_new_path.ends_with("/")) ? p_new_path : (p_new_path + "/"); @@ -981,6 +981,7 @@ void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_ print_verbose("Moving " + old_path + " -> " + new_path); Error err = da->rename(old_path, new_path); if (err == OK) { + //Move/Rename any corresponding import settings too if (p_item.is_file && FileAccess::exists(old_path + ".import")) { err = da->rename(old_path + ".import", new_path + ".import"); @@ -1007,9 +1008,11 @@ void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_ for (int i = 0; i < file_changed_paths.size(); ++i) { p_file_renames[file_changed_paths[i]] = file_changed_paths[i].replace_first(old_path, new_path); print_verbose(" Remap: " + file_changed_paths[i] + " -> " + p_file_renames[file_changed_paths[i]]); + emit_signal("files_moved", file_changed_paths[i], p_file_renames[file_changed_paths[i]]); } for (int i = 0; i < folder_changed_paths.size(); ++i) { p_folder_renames[folder_changed_paths[i]] = folder_changed_paths[i].replace_first(old_path, new_path); + emit_signal("folder_moved", folder_changed_paths[i], p_folder_renames[folder_changed_paths[i]].substr(0, p_folder_renames[folder_changed_paths[i]].length() - 1)); } } else { EditorNode::get_singleton()->add_io_error(TTR("Error moving:") + "\n" + old_path + "\n"); @@ -1205,6 +1208,14 @@ void FileSystemDock::_make_dir_confirm() { } } +void FileSystemDock::_file_deleted(String p_file) { + emit_signal("file_deleted", p_file); +} + +void FileSystemDock::_folder_deleted(String p_folder) { + emit_signal("folder_deleted", p_folder); +} + void FileSystemDock::_rename_operation_confirm() { String new_name = rename_dialog_text->get_text().strip_edges(); @@ -2273,6 +2284,9 @@ void FileSystemDock::_bind_methods() { ClassDB::bind_method(D_METHOD("_file_list_rmb_select"), &FileSystemDock::_file_list_rmb_select); ClassDB::bind_method(D_METHOD("_file_list_rmb_pressed"), &FileSystemDock::_file_list_rmb_pressed); + ClassDB::bind_method(D_METHOD("_file_deleted"), &FileSystemDock::_file_deleted); + ClassDB::bind_method(D_METHOD("_folder_deleted"), &FileSystemDock::_folder_deleted); + ClassDB::bind_method(D_METHOD("_file_list_thumbnail_done"), &FileSystemDock::_file_list_thumbnail_done); ClassDB::bind_method(D_METHOD("_tree_thumbnail_done"), &FileSystemDock::_tree_thumbnail_done); ClassDB::bind_method(D_METHOD("_file_list_activate_file"), &FileSystemDock::_file_list_activate_file); @@ -2303,6 +2317,11 @@ void FileSystemDock::_bind_methods() { ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::POOL_STRING_ARRAY, "files"))); ADD_SIGNAL(MethodInfo("open")); + + ADD_SIGNAL(MethodInfo("file_removed", PropertyInfo(Variant::STRING, "file"))); + ADD_SIGNAL(MethodInfo("folder_removed", PropertyInfo(Variant::STRING, "folder"))); + ADD_SIGNAL(MethodInfo("files_moved", PropertyInfo(Variant::STRING, "old_file"), PropertyInfo(Variant::STRING, "new_file"))); + ADD_SIGNAL(MethodInfo("folder_moved", PropertyInfo(Variant::STRING, "old_folder"), PropertyInfo(Variant::STRING, "new_file"))); } FileSystemDock::FileSystemDock(EditorNode *p_editor) { @@ -2464,6 +2483,8 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { add_child(owners_editor); remove_dialog = memnew(DependencyRemoveDialog); + remove_dialog->connect("file_removed", this, "_file_deleted"); + remove_dialog->connect("folder_removed", this, "_folder_deleted"); add_child(remove_dialog); move_dialog = memnew(EditorDirDialog); diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index df6fa5f9d2..7692566c0b 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -202,13 +202,18 @@ private: void _get_all_items_in_dir(EditorFileSystemDirectory *efsd, Vector<String> &files, Vector<String> &folders) const; void _find_remaps(EditorFileSystemDirectory *efsd, const Map<String, String> &renames, Vector<String> &to_remaps) const; - void _try_move_item(const FileOrFolder &p_item, const String &p_new_path, Map<String, String> &p_file_renames, Map<String, String> &p_folder_renames) const; + void _try_move_item(const FileOrFolder &p_item, const String &p_new_path, Map<String, String> &p_file_renames, Map<String, String> &p_folder_renames); void _try_duplicate_item(const FileOrFolder &p_item, const String &p_new_path) const; void _update_dependencies_after_move(const Map<String, String> &p_renames) const; void _update_resource_paths_after_move(const Map<String, String> &p_renames) const; void _update_favorites_list_after_move(const Map<String, String> &p_files_renames, const Map<String, String> &p_folders_renames) const; void _update_project_settings_after_move(const Map<String, String> &p_folders_renames) const; + void _file_deleted(String p_file); + void _folder_deleted(String p_folder); + void _files_moved(String p_old_file, String p_new_file); + void _folder_moved(String p_old_folder, String p_new_folder); + void _resource_created() const; void _make_dir_confirm(); void _rename_operation_confirm(); diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index 705bb1d9c5..6ebe8cfe2c 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -44,8 +44,6 @@ #include "scene/gui/progress_bar.h" #include "scene/gui/tree.h" -#define ROOT_PREFIX "res://" - const char *FindInFiles::SIGNAL_RESULT_FOUND = "result_found"; const char *FindInFiles::SIGNAL_FINISHED = "finished"; @@ -89,7 +87,6 @@ static bool find_next(const String &line, String pattern, int from, bool match_c //-------------------------------------------------------------------------------- FindInFiles::FindInFiles() { - _root_prefix = ROOT_PREFIX; _searching = false; _whole_words = true; _match_case = true; @@ -182,7 +179,7 @@ void FindInFiles::_iterate() { _current_dir = _current_dir.plus_file(folder_name); PoolStringArray sub_dirs; - _scan_dir(_root_prefix + _current_dir, sub_dirs); + _scan_dir("res://" + _current_dir, sub_dirs); _folders_stack.push_back(sub_dirs); @@ -348,7 +345,7 @@ FindInFilesDialog::FindInFilesDialog() { HBoxContainer *hbc = memnew(HBoxContainer); Label *prefix_label = memnew(Label); - prefix_label->set_text(ROOT_PREFIX); + prefix_label->set_text("res://"); hbc->add_child(prefix_label); _folder_line_edit = memnew(LineEdit); @@ -375,10 +372,12 @@ FindInFilesDialog::FindInFilesDialog() { { HBoxContainer *hbc = memnew(HBoxContainer); + // TODO: Unhardcode this. Vector<String> exts; exts.push_back("gd"); if (Engine::get_singleton()->has_singleton("GodotSharp")) exts.push_back("cs"); + exts.push_back("shader"); for (int i = 0; i < exts.size(); ++i) { CheckBox *cb = memnew(CheckBox); diff --git a/editor/find_in_files.h b/editor/find_in_files.h index 7f37123430..9705c4796c 100644 --- a/editor/find_in_files.h +++ b/editor/find_in_files.h @@ -73,7 +73,6 @@ private: // Config String _pattern; Set<String> _extension_filter; - String _root_prefix; String _root_dir; bool _whole_words; bool _match_case; diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp index cb9703342f..7ff3daf3d2 100644 --- a/editor/groups_editor.cpp +++ b/editor/groups_editor.cpp @@ -189,7 +189,7 @@ void GroupDialog::_group_renamed() { if (name == "") { renamed_group->set_text(0, selected_group); - error->set_text(TTR("invalid Group name.")); + error->set_text(TTR("Invalid group name.")); error->popup_centered(); return; } diff --git a/editor/import/editor_import_collada.cpp b/editor/import/editor_import_collada.cpp index afd09748f3..93c462f747 100644 --- a/editor/import/editor_import_collada.cpp +++ b/editor/import/editor_import_collada.cpp @@ -771,7 +771,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref<ArrayMesh> &p_me int binormal_pos = (binormal_src->stride ? binormal_src->stride : 3) * p.indices[src + binormal_ofs]; ERR_FAIL_INDEX_V(binormal_pos, binormal_src->array.size(), ERR_INVALID_DATA); - Vector3 binormal = Vector3(-binormal_src->array[binormal_pos + 0], -binormal_src->array[binormal_pos + 1], -binormal_src->array[binormal_pos + 2]); // Due to Godots face order it seems we need to flip our binormal! + Vector3 binormal = Vector3(binormal_src->array[binormal_pos + 0], binormal_src->array[binormal_pos + 1], binormal_src->array[binormal_pos + 2]); int tangent_pos = (tangent_src->stride ? tangent_src->stride : 3) * p.indices[src + tangent_ofs]; ERR_FAIL_INDEX_V(tangent_pos, tangent_src->array.size(), ERR_INVALID_DATA); @@ -1191,6 +1191,7 @@ Error ColladaImport::_create_resources(Collada::Node *p_node, bool p_use_compres if (collada.state.mesh_data_map.has(meshid)) { Ref<ArrayMesh> mesh = Ref<ArrayMesh>(memnew(ArrayMesh)); const Collada::MeshData &meshdata = collada.state.mesh_data_map[meshid]; + mesh->set_name(meshdata.name); Error err = _create_mesh_surfaces(false, mesh, ng->material_map, meshdata, apply_xform, bone_remap, skin, NULL, Vector<Ref<ArrayMesh> >(), false); ERR_FAIL_COND_V(err, err); @@ -1655,8 +1656,9 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones } } - Quat q = Math::is_equal_approx(xform.basis.determinant(), 0) ? Quat() : xform.basis.get_rotation_quat(); Vector3 s = xform.basis.get_scale(); + bool singular_matrix = Math::is_equal_approx(s.x, 0.0f) || Math::is_equal_approx(s.y, 0.0f) || Math::is_equal_approx(s.z, 0.0f); + Quat q = singular_matrix ? Quat() : xform.basis.get_rotation_quat(); Vector3 l = xform.origin; animation->transform_track_insert_key(track, snapshots[i], l, q, s); @@ -1705,8 +1707,9 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones xform = sk->get_bone_rest(nm.bone).affine_inverse() * xform; - Quat q = Math::is_equal_approx(xform.basis.determinant(), 0) ? Quat() : xform.basis.get_rotation_quat(); Vector3 s = xform.basis.get_scale(); + bool singular_matrix = Math::is_equal_approx(s.x, 0.0f) || Math::is_equal_approx(s.y, 0.0f) || Math::is_equal_approx(s.z, 0.0f); + Quat q = singular_matrix ? Quat() : xform.basis.get_rotation_quat(); Vector3 l = xform.origin; animation->transform_track_insert_key(track, 0, l, q, s); diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp index 00ca86a43b..b5d646d5d4 100644 --- a/editor/import/editor_scene_importer_gltf.cpp +++ b/editor/import/editor_scene_importer_gltf.cpp @@ -899,16 +899,7 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { array[Mesh::ARRAY_NORMAL] = _decode_accessor_as_vec3(state, a["NORMAL"], true); } if (a.has("TANGENT")) { - PoolVector<float> tans = _decode_accessor_as_floats(state, a["TANGENT"], true); - { // we need our binormals inversed, so flip our w component. - int ts = tans.size(); - PoolVector<float>::Write w = tans.write(); - - for (int j = 3; j < ts; j += 4) { - w[j] *= -1.0; - } - } - array[Mesh::ARRAY_TANGENT] = tans; + array[Mesh::ARRAY_TANGENT] = _decode_accessor_as_floats(state, a["TANGENT"], true); } if (a.has("TEXCOORD_0")) { array[Mesh::ARRAY_TEX_UV] = _decode_accessor_as_vec2(state, a["TEXCOORD_0"], true); diff --git a/editor/import/editor_scene_importer_gltf.h b/editor/import/editor_scene_importer_gltf.h index 8258ec41fd..721db30112 100644 --- a/editor/import/editor_scene_importer_gltf.h +++ b/editor/import/editor_scene_importer_gltf.h @@ -114,14 +114,14 @@ class EditorSceneImporterGLTF : public EditorSceneImporter { Vector<int> children; Vector<Node *> godot_nodes; - GLTFNode() { - // child_of_skeleton = -1; - // skeleton_skin = -1; - mesh = -1; - camera = -1; - parent = -1; - skin = -1; - scale = Vector3(1, 1, 1); + GLTFNode() : + parent(-1), + mesh(-1), + camera(-1), + skin(-1), + //skeleton_skin(-1), + //child_of_skeleton(-1), + scale(Vector3(1, 1, 1)) { } }; @@ -134,12 +134,12 @@ class EditorSceneImporterGLTF : public EditorSceneImporter { bool indices; //matrices need to be transformed to this - GLTFBufferView() { - buffer = 0; - byte_offset = 0; - byte_length = 0; - byte_stride = 0; - indices = false; + GLTFBufferView() : + buffer(0), + byte_offset(0), + byte_length(0), + byte_stride(0), + indices(false) { } }; diff --git a/editor/import/resource_importer_wav.cpp b/editor/import/resource_importer_wav.cpp index 55f4cc7439..85ea0d343c 100644 --- a/editor/import/resource_importer_wav.cpp +++ b/editor/import/resource_importer_wav.cpp @@ -272,12 +272,18 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s for (int i = 0; i < 10; i++) file->get_32(); // i wish to know why should i do this... no doc! - // only read 0x00 (loop forward) and 0x01 (loop ping-pong) and skip anything else because - // it's not supported (loop backward), reserved for future uses or sampler specific + // only read 0x00 (loop forward), 0x01 (loop ping-pong) and 0x02 (loop backward) + // Skip anything else because it's not supported, reserved for future uses or sampler specific // from https://sites.google.com/site/musicgapi/technical-documents/wav-file-format#smpl (loop type values table) int loop_type = file->get_32(); - if (loop_type == 0x00 || loop_type == 0x01) { - loop = loop_type ? AudioStreamSample::LOOP_PING_PONG : AudioStreamSample::LOOP_FORWARD; + if (loop_type == 0x00 || loop_type == 0x01 || loop_type == 0x02) { + if (loop_type == 0x00) { + loop = AudioStreamSample::LOOP_FORWARD; + } else if (loop_type == 0x01) { + loop = AudioStreamSample::LOOP_PING_PONG; + } else if (loop_type == 0x02) { + loop = AudioStreamSample::LOOP_BACKWARD; + } loop_begin = file->get_32(); loop_end = file->get_32(); } diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp index 750fca2852..d201087ecf 100644 --- a/editor/inspector_dock.cpp +++ b/editor/inspector_dock.cpp @@ -334,6 +334,7 @@ void InspectorDock::_notification(int p_what) { set_theme(editor->get_gui_base()->get_theme()); resource_new_button->set_icon(get_icon("New", "EditorIcons")); resource_load_button->set_icon(get_icon("Load", "EditorIcons")); + resource_save_button->set_icon(get_icon("Save", "EditorIcons")); backward_button->set_icon(get_icon("Back", "EditorIcons")); forward_button->set_icon(get_icon("Forward", "EditorIcons")); history_menu->set_icon(get_icon("History", "EditorIcons")); @@ -416,6 +417,7 @@ void InspectorDock::update(Object *p_object) { object_menu->set_disabled(false); search->set_editable(true); + resource_save_button->set_disabled(!is_resource); PopupMenu *p = object_menu->get_popup(); @@ -515,6 +517,16 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { resource_load_button->connect("pressed", this, "_open_resource_selector"); resource_load_button->set_focus_mode(Control::FOCUS_NONE); + resource_save_button = memnew(MenuButton); + resource_save_button->set_tooltip(TTR("Save the currently edited resource.")); + resource_save_button->set_icon(get_icon("Save", "EditorIcons")); + general_options_hb->add_child(resource_save_button); + resource_save_button->get_popup()->add_item(TTR("Save"), RESOURCE_SAVE); + resource_save_button->get_popup()->add_item(TTR("Save As..."), RESOURCE_SAVE_AS); + resource_save_button->get_popup()->connect("id_pressed", this, "_menu_option"); + resource_save_button->set_focus_mode(Control::FOCUS_NONE); + resource_save_button->set_disabled(true); + general_options_hb->add_spacer(); backward_button = memnew(ToolButton); diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp index 16423decc4..dfdf56a2ef 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -103,6 +103,11 @@ bool AbstractPolygon2DEditor::_is_line() const { return false; } +bool AbstractPolygon2DEditor::_has_uv() const { + + return false; +} + int AbstractPolygon2DEditor::_get_polygon_count() const { return 1; @@ -202,12 +207,7 @@ void AbstractPolygon2DEditor::_notification(int p_what) { button_edit->set_pressed(true); get_tree()->connect("node_removed", this, "_node_removed"); - create_resource->connect("confirmed", this, "_create_resource"); - - } break; - case NOTIFICATION_PHYSICS_PROCESS: { - } break; } } @@ -250,8 +250,12 @@ void AbstractPolygon2DEditor::_wip_close() { _set_polygon(0, wip); } else if (wip.size() >= (_is_line() ? 2 : 3)) { - undo_redo->create_action(TTR("Create Poly")); + undo_redo->create_action(TTR("Create Polygon")); _action_add_polygon(wip); + if (_has_uv()) { + undo_redo->add_do_method(_get_node(), "set_uv", PoolVector<Vector2>()); + undo_redo->add_undo_method(_get_node(), "set_uv", _get_node()->get("uv")); + } _commit_action(); } else { @@ -313,7 +317,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) if (vertices.size() < (_is_line() ? 2 : 3)) { vertices.push_back(cpoint); - undo_redo->create_action(TTR("Edit Poly")); + undo_redo->create_action(TTR("Edit Polygon")); selected_point = Vertex(insert.polygon, vertices.size()); _action_set_polygon(insert.polygon, vertices); _commit_action(); @@ -331,7 +335,6 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) undo_redo->create_action(TTR("Insert Point")); _action_set_polygon(insert.polygon, vertices); _commit_action(); - return true; } } else { @@ -363,7 +366,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) ERR_FAIL_INDEX_V(edited_point.vertex, vertices.size(), false); vertices.write[edited_point.vertex] = edited_point.pos - _get_offset(edited_point.polygon); - undo_redo->create_action(TTR("Edit Poly")); + undo_redo->create_action(TTR("Edit Polygon")); _action_set_polygon(edited_point.polygon, pre_move_edit, vertices); _commit_action(); @@ -422,7 +425,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) return true; } else { - const real_t grab_threshold = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8); + const real_t grab_threshold = EDITOR_GET("editors/poly_editor/point_grab_radius"); if (!_is_line() && wip.size() > 1 && xform.xform(wip[0]).distance_to(gpoint) < grab_threshold) { //wip closed @@ -531,6 +534,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) } void AbstractPolygon2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { + if (!_get_node()) return; @@ -561,7 +565,7 @@ void AbstractPolygon2DEditor::forward_canvas_draw_over_viewport(Control *p_overl offset = _get_offset(j); } - if (!wip_active && j == edited_point.polygon && EDITOR_DEF("editors/poly_editor/show_previous_outline", true)) { + if (!wip_active && j == edited_point.polygon && EDITOR_GET("editors/poly_editor/show_previous_outline")) { const Color col = Color(0.5, 0.5, 0.5); // FIXME polygon->get_outline_color(); const int n = pre_move_edit.size(); @@ -631,9 +635,11 @@ void AbstractPolygon2DEditor::edit(Node *p_polygon) { _set_node(p_polygon); - //Enable the pencil tool if the polygon is empty + // Enable the pencil tool if the polygon is empty. if (_is_empty()) _menu_option(MODE_CREATE); + else + _menu_option(MODE_EDIT); wip.clear(); wip_active = false; @@ -664,12 +670,12 @@ void AbstractPolygon2DEditor::remove_point(const Vertex &p_vertex) { vertices.remove(p_vertex.vertex); - undo_redo->create_action(TTR("Edit Poly (Remove Point)")); + undo_redo->create_action(TTR("Edit Polygon (Remove Point)")); _action_set_polygon(p_vertex.polygon, vertices); _commit_action(); } else { - undo_redo->create_action(TTR("Remove Poly And Point")); + undo_redo->create_action(TTR("Remove Polygon And Point")); _action_remove_polygon(p_vertex.polygon); _commit_action(); } @@ -689,7 +695,7 @@ AbstractPolygon2DEditor::Vertex AbstractPolygon2DEditor::get_active_point() cons AbstractPolygon2DEditor::PosVertex AbstractPolygon2DEditor::closest_point(const Vector2 &p_pos) const { - const real_t grab_threshold = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8); + const real_t grab_threshold = EDITOR_GET("editors/poly_editor/point_grab_radius"); const int n_polygons = _get_polygon_count(); const Transform2D xform = canvas_item_editor->get_canvas_transform() * _get_node()->get_global_transform(); @@ -720,7 +726,7 @@ AbstractPolygon2DEditor::PosVertex AbstractPolygon2DEditor::closest_point(const AbstractPolygon2DEditor::PosVertex AbstractPolygon2DEditor::closest_edge_point(const Vector2 &p_pos) const { - const real_t grab_threshold = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8); + const real_t grab_threshold = EDITOR_GET("editors/poly_editor/point_grab_radius"); const real_t eps = grab_threshold * 2; const real_t eps2 = eps * eps; @@ -777,19 +783,19 @@ AbstractPolygon2DEditor::AbstractPolygon2DEditor(EditorNode *p_editor, bool p_wi add_child(button_create); button_create->connect("pressed", this, "_menu_option", varray(MODE_CREATE)); button_create->set_toggle_mode(true); - button_create->set_tooltip(TTR("Create a new polygon from scratch")); + button_create->set_tooltip(TTR("Create points.")); button_edit = memnew(ToolButton); add_child(button_edit); button_edit->connect("pressed", this, "_menu_option", varray(MODE_EDIT)); button_edit->set_toggle_mode(true); - button_edit->set_tooltip(TTR("Edit existing polygon:\nLMB: Move Point.\nCtrl+LMB: Split Segment.\nRMB: Erase Point.")); + button_edit->set_tooltip(TTR("Edit points.\nLMB: Move Point\nRMB: Erase Point")); button_delete = memnew(ToolButton); add_child(button_delete); button_delete->connect("pressed", this, "_menu_option", varray(MODE_DELETE)); button_delete->set_toggle_mode(true); - button_delete->set_tooltip(TTR("Delete points")); + button_delete->set_tooltip(TTR("Erase points.")); create_resource = memnew(ConfirmationDialog); add_child(create_resource); @@ -820,13 +826,11 @@ void AbstractPolygon2DEditorPlugin::make_visible(bool p_visible) { } } -AbstractPolygon2DEditorPlugin::AbstractPolygon2DEditorPlugin(EditorNode *p_node, AbstractPolygon2DEditor *p_polygon_editor, String p_class) { - - editor = p_node; - polygon_editor = p_polygon_editor; - klass = p_class; +AbstractPolygon2DEditorPlugin::AbstractPolygon2DEditorPlugin(EditorNode *p_node, AbstractPolygon2DEditor *p_polygon_editor, String p_class) : + polygon_editor(p_polygon_editor), + editor(p_node), + klass(p_class) { CanvasItemEditor::get_singleton()->add_control_to_menu_panel(polygon_editor); - polygon_editor->hide(); } diff --git a/editor/plugins/abstract_polygon_2d_editor.h b/editor/plugins/abstract_polygon_2d_editor.h index c03670f254..046e8540e7 100644 --- a/editor/plugins/abstract_polygon_2d_editor.h +++ b/editor/plugins/abstract_polygon_2d_editor.h @@ -88,12 +88,10 @@ class AbstractPolygon2DEditor : public HBoxContainer { protected: enum { - MODE_CREATE, MODE_EDIT, MODE_DELETE, MODE_CONT, - }; int mode; @@ -116,13 +114,12 @@ protected: PosVertex closest_edge_point(const Vector2 &p_pos) const; bool _is_empty() const; - void _commit_action(); -protected: virtual Node2D *_get_node() const = 0; virtual void _set_node(Node *p_polygon) = 0; virtual bool _is_line() const; + virtual bool _has_uv() const; virtual int _get_polygon_count() const; virtual Vector2 _get_offset(int p_idx) const; virtual Variant _get_polygon(int p_idx) const; @@ -132,6 +129,7 @@ protected: virtual void _action_remove_polygon(int p_idx); virtual void _action_set_polygon(int p_idx, const Variant &p_polygon); virtual void _action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon); + virtual void _commit_action(); virtual bool _has_resource() const; virtual void _create_resource(); diff --git a/editor/plugins/animation_blend_tree_editor_plugin.h b/editor/plugins/animation_blend_tree_editor_plugin.h index e2daefdec6..e7934ea3a0 100644 --- a/editor/plugins/animation_blend_tree_editor_plugin.h +++ b/editor/plugins/animation_blend_tree_editor_plugin.h @@ -70,9 +70,9 @@ class AnimationNodeBlendTreeEditor : public AnimationTreeNodeEditorPlugin { String name; String type; Ref<Script> script; - AddOption(const String &p_name = String(), const String &p_type = String()) { - name = p_name; - type = p_type; + AddOption(const String &p_name = String(), const String &p_type = String()) : + name(p_name), + type(p_type) { } }; diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index e83773257b..990c77430f 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -849,7 +849,7 @@ void AnimationNodeStateMachineEditor::_state_machine_pos_draw() { return; int idx = -1; - for (int i = 0; node_rects.size(); i++) { + for (int i = 0; i < node_rects.size(); i++) { if (node_rects[i].node_name == playback->get_current_node()) { idx = i; break; diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index ee2283a035..89ef52dcce 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -456,7 +456,7 @@ void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos, Node *p_no if (Object::cast_to<Viewport>(p_node)) return; - const real_t grab_distance = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8); + const real_t grab_distance = EDITOR_GET("editors/poly_editor/point_grab_radius"); CanvasItem *canvas_item = Object::cast_to<CanvasItem>(p_node); for (int i = p_node->get_child_count() - 1; i >= 0; i--) { @@ -4606,7 +4606,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { warning_child_of_container = memnew(Label); warning_child_of_container->hide(); - warning_child_of_container->set_text("Warning: Children of a container get their position and size determined only by their parent"); + warning_child_of_container->set_text(TTR("Warning: Children of a container get their position and size determined only by their parent.")); add_control_to_info_overlay(warning_child_of_container); h_scroll = memnew(HScrollBar); @@ -4626,19 +4626,19 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { zoom_minus = memnew(ToolButton); zoom_hb->add_child(zoom_minus); zoom_minus->connect("pressed", this, "_button_zoom_minus"); - zoom_minus->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_minus", TTR("Zoom out"), KEY_MASK_CMD | KEY_MINUS)); + zoom_minus->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_minus", TTR("Zoom Out"), KEY_MASK_CMD | KEY_MINUS)); zoom_minus->set_focus_mode(FOCUS_NONE); zoom_reset = memnew(ToolButton); zoom_hb->add_child(zoom_reset); zoom_reset->connect("pressed", this, "_button_zoom_reset"); - zoom_reset->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_reset", TTR("Zoom reset"), KEY_MASK_CMD | KEY_0)); + zoom_reset->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_reset", TTR("Zoom Reset"), KEY_MASK_CMD | KEY_0)); zoom_reset->set_focus_mode(FOCUS_NONE); zoom_plus = memnew(ToolButton); zoom_hb->add_child(zoom_plus); zoom_plus->connect("pressed", this, "_button_zoom_plus"); - zoom_plus->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_plus", TTR("Zoom in"), KEY_MASK_CMD | KEY_EQUAL)); // Usually direct access key for PLUS + zoom_plus->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_plus", TTR("Zoom In"), KEY_MASK_CMD | KEY_EQUAL)); // Usually direct access key for PLUS zoom_plus->set_focus_mode(FOCUS_NONE); updating_scroll = false; diff --git a/editor/plugins/collision_polygon_editor_plugin.cpp b/editor/plugins/collision_polygon_editor_plugin.cpp index 805a7d3835..9b31f2e24d 100644 --- a/editor/plugins/collision_polygon_editor_plugin.cpp +++ b/editor/plugins/collision_polygon_editor_plugin.cpp @@ -95,7 +95,7 @@ void Polygon3DEditor::_menu_option(int p_option) { void Polygon3DEditor::_wip_close() { - undo_redo->create_action(TTR("Create Poly3D")); + undo_redo->create_action(TTR("Create Polygon3D")); undo_redo->add_undo_method(node, "set_polygon", node->call("get_polygon")); undo_redo->add_do_method(node, "set_polygon", wip); undo_redo->add_do_method(this, "_polygon_draw"); @@ -144,7 +144,7 @@ bool Polygon3DEditor::forward_spatial_gui_input(Camera *p_camera, const Ref<Inpu Vector<Vector2> poly = node->call("get_polygon"); //first check if a point is to be added (segment split) - real_t grab_threshold = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8); + real_t grab_threshold = EDITOR_GET("editors/poly_editor/point_grab_radius"); switch (mode) { diff --git a/editor/plugins/item_list_editor_plugin.cpp b/editor/plugins/item_list_editor_plugin.cpp index 8df40232b0..a32f42cc56 100644 --- a/editor/plugins/item_list_editor_plugin.cpp +++ b/editor/plugins/item_list_editor_plugin.cpp @@ -265,6 +265,9 @@ void ItemListEditor::_notification(int p_notification) { add_button->set_icon(get_icon("Add", "EditorIcons")); del_button->set_icon(get_icon("Remove", "EditorIcons")); + } else if (p_notification == NOTIFICATION_READY) { + + get_tree()->connect("node_removed", this, "_node_removed"); } } @@ -341,6 +344,7 @@ bool ItemListEditor::handles(Object *p_object) const { void ItemListEditor::_bind_methods() { + ClassDB::bind_method("_node_removed", &ItemListEditor::_node_removed); ClassDB::bind_method("_edit_items", &ItemListEditor::_edit_items); ClassDB::bind_method("_add_button", &ItemListEditor::_add_pressed); ClassDB::bind_method("_delete_button", &ItemListEditor::_delete_pressed); diff --git a/editor/plugins/light_occluder_2d_editor_plugin.cpp b/editor/plugins/light_occluder_2d_editor_plugin.cpp index 6a16cf0989..646883fbda 100644 --- a/editor/plugins/light_occluder_2d_editor_plugin.cpp +++ b/editor/plugins/light_occluder_2d_editor_plugin.cpp @@ -30,425 +30,91 @@ #include "light_occluder_2d_editor_plugin.h" -#include "canvas_item_editor_plugin.h" -#include "core/os/file_access.h" -#include "editor/editor_settings.h" +Ref<OccluderPolygon2D> LightOccluder2DEditor::_ensure_occluder() const { -void LightOccluder2DEditor::_notification(int p_what) { + Ref<OccluderPolygon2D> occluder = node->get_occluder_polygon(); + if (!occluder.is_valid()) { - switch (p_what) { - - case NOTIFICATION_READY: { - - button_create->set_icon(get_icon("Edit", "EditorIcons")); - button_edit->set_icon(get_icon("MovePoint", "EditorIcons")); - button_edit->set_pressed(true); - get_tree()->connect("node_removed", this, "_node_removed"); - create_poly->connect("confirmed", this, "_create_poly"); - - } break; - case NOTIFICATION_PHYSICS_PROCESS: { - - } break; - } -} -void LightOccluder2DEditor::_node_removed(Node *p_node) { - - if (p_node == node) { - node = NULL; - hide(); - canvas_item_editor->update_viewport(); + occluder = Ref<OccluderPolygon2D>(memnew(OccluderPolygon2D)); + node->set_occluder_polygon(occluder); } + return occluder; } -void LightOccluder2DEditor::_menu_option(int p_option) { +Node2D *LightOccluder2DEditor::_get_node() const { - switch (p_option) { - - case MODE_CREATE: { - - mode = MODE_CREATE; - button_create->set_pressed(true); - button_edit->set_pressed(false); - } break; - case MODE_EDIT: { - - mode = MODE_EDIT; - button_create->set_pressed(false); - button_edit->set_pressed(true); - } break; - } + return node; } -void LightOccluder2DEditor::_wip_close(bool p_closed) { - - undo_redo->create_action(TTR("Create Poly")); - undo_redo->add_undo_method(node->get_occluder_polygon().ptr(), "set_polygon", node->get_occluder_polygon()->get_polygon()); - undo_redo->add_do_method(node->get_occluder_polygon().ptr(), "set_polygon", wip); - undo_redo->add_undo_method(node->get_occluder_polygon().ptr(), "set_closed", node->get_occluder_polygon()->is_closed()); - undo_redo->add_do_method(node->get_occluder_polygon().ptr(), "set_closed", p_closed); +void LightOccluder2DEditor::_set_node(Node *p_polygon) { - undo_redo->add_do_method(canvas_item_editor, "update_viewport"); - undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); - undo_redo->commit_action(); - wip.clear(); - wip_active = false; - mode = MODE_EDIT; - button_edit->set_pressed(true); - button_create->set_pressed(false); - edited_point = -1; + node = Object::cast_to<LightOccluder2D>(p_polygon); } -bool LightOccluder2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { +bool LightOccluder2DEditor::_is_line() const { - if (!node) + Ref<OccluderPolygon2D> occluder = node->get_occluder_polygon(); + if (occluder.is_valid()) + return !occluder->is_closed(); + else return false; - - if (node->get_occluder_polygon().is_null()) { - Ref<InputEventMouseButton> mb = p_event; - if (mb.is_valid() && mb->get_button_index() == 1 && mb->is_pressed()) { - create_poly->set_text(TTR("No OccluderPolygon2D resource on this node.\nCreate and assign one?")); - create_poly->popup_centered_minsize(); - } - return (mb.is_valid() && mb->get_button_index() == 1); - } - - Ref<InputEventMouseButton> mb = p_event; - - if (mb.is_valid()) { - - Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); - - Vector2 gpoint = mb->get_position(); - Vector2 cpoint = node->get_global_transform().affine_inverse().xform(canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(mb->get_position()))); - - Vector<Vector2> poly = Variant(node->get_occluder_polygon()->get_polygon()); - - //first check if a point is to be added (segment split) - real_t grab_threshold = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8); - - switch (mode) { - - case MODE_CREATE: { - - if (mb->get_button_index() == BUTTON_LEFT && mb->is_pressed()) { - - if (!wip_active) { - - wip.clear(); - wip.push_back(cpoint); - wip_active = true; - edited_point_pos = cpoint; - canvas_item_editor->update_viewport(); - edited_point = 1; - return true; - } else { - - if (wip.size() > 1 && xform.xform(wip[0]).distance_to(gpoint) < grab_threshold) { - //wip closed - _wip_close(true); - - return true; - } else if (wip.size() > 1 && xform.xform(wip[wip.size() - 1]).distance_to(gpoint) < grab_threshold) { - //wip closed - _wip_close(false); - return true; - - } else { - - wip.push_back(cpoint); - edited_point = wip.size(); - canvas_item_editor->update_viewport(); - return true; - - //add wip point - } - } - } else if (mb->get_button_index() == BUTTON_RIGHT && mb->is_pressed() && wip_active) { - _wip_close(true); - } - - } break; - - case MODE_EDIT: { - - if (mb->get_button_index() == BUTTON_LEFT) { - if (mb->is_pressed()) { - - if (mb->get_control()) { - - if (poly.size() < 3) { - - undo_redo->create_action(TTR("Edit Poly")); - undo_redo->add_undo_method(node->get_occluder_polygon().ptr(), "set_polygon", poly); - poly.push_back(cpoint); - undo_redo->add_do_method(node->get_occluder_polygon().ptr(), "set_polygon", poly); - undo_redo->add_do_method(canvas_item_editor, "update_viewport"); - undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); - undo_redo->commit_action(); - return true; - } - - //search edges - int closest_idx = -1; - Vector2 closest_pos; - real_t closest_dist = 1e10; - for (int i = 0; i < poly.size(); i++) { - - Vector2 points[2] = { xform.xform(poly[i]), - xform.xform(poly[(i + 1) % poly.size()]) }; - - Vector2 cp = Geometry::get_closest_point_to_segment_2d(gpoint, points); - if (cp.distance_squared_to(points[0]) < CMP_EPSILON2 || cp.distance_squared_to(points[1]) < CMP_EPSILON2) - continue; //not valid to reuse point - - real_t d = cp.distance_to(gpoint); - if (d < closest_dist && d < grab_threshold) { - closest_dist = d; - closest_pos = cp; - closest_idx = i; - } - } - - if (closest_idx >= 0) { - - pre_move_edit = poly; - poly.insert(closest_idx + 1, xform.affine_inverse().xform(closest_pos)); - edited_point = closest_idx + 1; - edited_point_pos = xform.affine_inverse().xform(closest_pos); - node->get_occluder_polygon()->set_polygon(Variant(poly)); - canvas_item_editor->update_viewport(); - return true; - } - } else { - - //look for points to move - - int closest_idx = -1; - Vector2 closest_pos; - real_t closest_dist = 1e10; - for (int i = 0; i < poly.size(); i++) { - - Vector2 cp = xform.xform(poly[i]); - - real_t d = cp.distance_to(gpoint); - if (d < closest_dist && d < grab_threshold) { - closest_dist = d; - closest_pos = cp; - closest_idx = i; - } - } - - if (closest_idx >= 0) { - - pre_move_edit = poly; - edited_point = closest_idx; - edited_point_pos = xform.affine_inverse().xform(closest_pos); - canvas_item_editor->update_viewport(); - return true; - } - } - } else { - - if (edited_point != -1) { - - //apply - - ERR_FAIL_INDEX_V(edited_point, poly.size(), false); - poly.write[edited_point] = edited_point_pos; - undo_redo->create_action(TTR("Edit Poly")); - undo_redo->add_do_method(node->get_occluder_polygon().ptr(), "set_polygon", poly); - undo_redo->add_undo_method(node->get_occluder_polygon().ptr(), "set_polygon", pre_move_edit); - undo_redo->add_do_method(canvas_item_editor, "update_viewport"); - undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); - undo_redo->commit_action(); - - edited_point = -1; - return true; - } - } - } else if (mb->get_button_index() == BUTTON_RIGHT && mb->is_pressed() && edited_point == -1) { - - int closest_idx = -1; - Vector2 closest_pos; - real_t closest_dist = 1e10; - for (int i = 0; i < poly.size(); i++) { - - Vector2 cp = xform.xform(poly[i]); - - real_t d = cp.distance_to(gpoint); - if (d < closest_dist && d < grab_threshold) { - closest_dist = d; - closest_pos = cp; - closest_idx = i; - } - } - - if (closest_idx >= 0) { - - undo_redo->create_action(TTR("Edit Poly (Remove Point)")); - undo_redo->add_undo_method(node->get_occluder_polygon().ptr(), "set_polygon", poly); - poly.remove(closest_idx); - undo_redo->add_do_method(node->get_occluder_polygon().ptr(), "set_polygon", poly); - undo_redo->add_do_method(canvas_item_editor, "update_viewport"); - undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); - undo_redo->commit_action(); - return true; - } - } - - } break; - } - } - - Ref<InputEventMouseMotion> mm = p_event; - - if (mm.is_valid()) { - - if (edited_point != -1 && (wip_active || mm->get_button_mask() & BUTTON_MASK_LEFT)) { - - Vector2 gpoint = mm->get_position(); - Vector2 cpoint = canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint); - cpoint = canvas_item_editor->snap_point(cpoint); - edited_point_pos = node->get_global_transform().affine_inverse().xform(cpoint); - - canvas_item_editor->update_viewport(); - } - } - - return false; } -void LightOccluder2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { - - if (!node || !node->get_occluder_polygon().is_valid()) - return; - - Vector<Vector2> poly; +int LightOccluder2DEditor::_get_polygon_count() const { - if (wip_active) - poly = wip; + Ref<OccluderPolygon2D> occluder = node->get_occluder_polygon(); + if (occluder.is_valid()) + return occluder->get_polygon().size(); else - poly = Variant(node->get_occluder_polygon()->get_polygon()); - - Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); - Ref<Texture> handle = get_icon("EditorHandle", "EditorIcons"); - - for (int i = 0; i < poly.size(); i++) { - - Vector2 p, p2; - p = i == edited_point ? edited_point_pos : poly[i]; - if ((wip_active && i == poly.size() - 1) || (((i + 1) % poly.size()) == edited_point)) - p2 = edited_point_pos; - else - p2 = poly[(i + 1) % poly.size()]; + return 0; +} - Vector2 point = xform.xform(p); - Vector2 next_point = xform.xform(p2); +Variant LightOccluder2DEditor::_get_polygon(int p_idx) const { - Color col = Color(1, 0.3, 0.1, 0.8); + Ref<OccluderPolygon2D> occluder = node->get_occluder_polygon(); + if (occluder.is_valid()) + return occluder->get_polygon(); + else + return Variant(Vector<Vector2>()); +} - if (i == poly.size() - 1 && (!node->get_occluder_polygon()->is_closed() || wip_active)) { +void LightOccluder2DEditor::_set_polygon(int p_idx, const Variant &p_polygon) const { - } else { - p_overlay->draw_line(point, next_point, col, 2); - } - p_overlay->draw_texture(handle, point - handle->get_size() * 0.5); - } + Ref<OccluderPolygon2D> occluder = _ensure_occluder(); + occluder->set_polygon(p_polygon); } -void LightOccluder2DEditor::edit(Node *p_collision_polygon) { +void LightOccluder2DEditor::_action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon) { - if (!canvas_item_editor) { - canvas_item_editor = CanvasItemEditor::get_singleton(); - } + Ref<OccluderPolygon2D> occluder = _ensure_occluder(); + undo_redo->add_do_method(occluder.ptr(), "set_polygon", p_polygon); + undo_redo->add_undo_method(occluder.ptr(), "set_polygon", p_previous); +} - if (p_collision_polygon) { +bool LightOccluder2DEditor::_has_resource() const { - node = Object::cast_to<LightOccluder2D>(p_collision_polygon); - wip.clear(); - wip_active = false; - edited_point = -1; - canvas_item_editor->update_viewport(); - } else { - node = NULL; - } + return node && node->get_occluder_polygon().is_valid(); } -void LightOccluder2DEditor::_create_poly() { +void LightOccluder2DEditor::_create_resource() { if (!node) return; + undo_redo->create_action(TTR("Create Occluder Polygon")); undo_redo->add_do_method(node, "set_occluder_polygon", Ref<OccluderPolygon2D>(memnew(OccluderPolygon2D))); undo_redo->add_undo_method(node, "set_occluder_polygon", Variant(REF())); undo_redo->commit_action(); -} - -void LightOccluder2DEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_menu_option"), &LightOccluder2DEditor::_menu_option); - ClassDB::bind_method(D_METHOD("_node_removed"), &LightOccluder2DEditor::_node_removed); - ClassDB::bind_method(D_METHOD("_create_poly"), &LightOccluder2DEditor::_create_poly); + _menu_option(MODE_CREATE); } -LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) { +LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) : + AbstractPolygon2DEditor(p_editor) { node = NULL; - canvas_item_editor = NULL; - editor = p_editor; - undo_redo = editor->get_undo_redo(); - - add_child(memnew(VSeparator)); - button_create = memnew(ToolButton); - add_child(button_create); - button_create->connect("pressed", this, "_menu_option", varray(MODE_CREATE)); - button_create->set_toggle_mode(true); - button_create->set_tooltip(TTR("Create a new polygon from scratch.")); - - button_edit = memnew(ToolButton); - add_child(button_edit); - button_edit->connect("pressed", this, "_menu_option", varray(MODE_EDIT)); - button_edit->set_toggle_mode(true); - button_edit->set_tooltip(TTR("Edit existing polygon:") + "\n" + TTR("LMB: Move Point.") + "\n" + TTR("Ctrl+LMB: Split Segment.") + "\n" + TTR("RMB: Erase Point.")); - - create_poly = memnew(ConfirmationDialog); - add_child(create_poly); - create_poly->get_ok()->set_text(TTR("Create")); - - mode = MODE_EDIT; - wip_active = false; -} - -void LightOccluder2DEditorPlugin::edit(Object *p_object) { - - light_occluder_editor->edit(Object::cast_to<Node>(p_object)); -} - -bool LightOccluder2DEditorPlugin::handles(Object *p_object) const { - - return p_object->is_class("LightOccluder2D"); -} - -void LightOccluder2DEditorPlugin::make_visible(bool p_visible) { - - if (p_visible) { - light_occluder_editor->show(); - } else { - - light_occluder_editor->hide(); - light_occluder_editor->edit(NULL); - } -} - -LightOccluder2DEditorPlugin::LightOccluder2DEditorPlugin(EditorNode *p_node) { - - editor = p_node; - light_occluder_editor = memnew(LightOccluder2DEditor(p_node)); - CanvasItemEditor::get_singleton()->add_control_to_menu_panel(light_occluder_editor); - - light_occluder_editor->hide(); } -LightOccluder2DEditorPlugin::~LightOccluder2DEditorPlugin() { +LightOccluder2DEditorPlugin::LightOccluder2DEditorPlugin(EditorNode *p_node) : + AbstractPolygon2DEditorPlugin(p_node, memnew(LightOccluder2DEditor(p_node)), "LightOccluder2D") { } diff --git a/editor/plugins/light_occluder_2d_editor_plugin.h b/editor/plugins/light_occluder_2d_editor_plugin.h index a1962892ee..6117d50e89 100644 --- a/editor/plugins/light_occluder_2d_editor_plugin.h +++ b/editor/plugins/light_occluder_2d_editor_plugin.h @@ -31,83 +31,44 @@ #ifndef LIGHT_OCCLUDER_2D_EDITOR_PLUGIN_H #define LIGHT_OCCLUDER_2D_EDITOR_PLUGIN_H -#include "editor/editor_node.h" -#include "editor/editor_plugin.h" +#include "editor/plugins/abstract_polygon_2d_editor.h" #include "scene/2d/light_occluder_2d.h" -#include "scene/gui/tool_button.h" /** @author Juan Linietsky <reduzio@gmail.com> */ -class CanvasItemEditor; +class LightOccluder2DEditor : public AbstractPolygon2DEditor { -class LightOccluder2DEditor : public HBoxContainer { + GDCLASS(LightOccluder2DEditor, AbstractPolygon2DEditor); - GDCLASS(LightOccluder2DEditor, HBoxContainer); - - UndoRedo *undo_redo; - enum Mode { - - MODE_CREATE, - MODE_EDIT, - - }; - - Mode mode; - - ToolButton *button_create; - ToolButton *button_edit; - - CanvasItemEditor *canvas_item_editor; - EditorNode *editor; - Panel *panel; LightOccluder2D *node; - MenuButton *options; - int edited_point; - Vector2 edited_point_pos; - Vector<Vector2> pre_move_edit; - Vector<Vector2> wip; - bool wip_active; + Ref<OccluderPolygon2D> _ensure_occluder() const; - ConfirmationDialog *create_poly; +protected: + virtual Node2D *_get_node() const; + virtual void _set_node(Node *p_polygon); - void _wip_close(bool p_closed); - void _menu_option(int p_option); - void _create_poly(); + virtual bool _is_line() const; + virtual int _get_polygon_count() const; + virtual Variant _get_polygon(int p_idx) const; + virtual void _set_polygon(int p_idx, const Variant &p_polygon) const; -protected: - void _notification(int p_what); - void _node_removed(Node *p_node); - static void _bind_methods(); + virtual void _action_set_polygon(int p_idx, const Variant &p_previous, const Variant &p_polygon); + + virtual bool _has_resource() const; + virtual void _create_resource(); public: - Vector2 snap_point(const Vector2 &p_point) const; - void forward_canvas_draw_over_viewport(Control *p_overlay); - bool forward_gui_input(const Ref<InputEvent> &p_event); - void edit(Node *p_collision_polygon); LightOccluder2DEditor(EditorNode *p_editor); }; -class LightOccluder2DEditorPlugin : public EditorPlugin { +class LightOccluder2DEditorPlugin : public AbstractPolygon2DEditorPlugin { - GDCLASS(LightOccluder2DEditorPlugin, EditorPlugin); - - LightOccluder2DEditor *light_occluder_editor; - EditorNode *editor; + GDCLASS(LightOccluder2DEditorPlugin, AbstractPolygon2DEditorPlugin); public: - virtual bool forward_canvas_gui_input(const Ref<InputEvent> &p_event) { return light_occluder_editor->forward_gui_input(p_event); } - virtual void forward_canvas_draw_over_viewport(Control *p_overlay) { return light_occluder_editor->forward_canvas_draw_over_viewport(p_overlay); } - - virtual String get_name() const { return "LightOccluder2D"; } - bool has_main_screen() const { return false; } - virtual void edit(Object *p_object); - virtual bool handles(Object *p_object) const; - virtual void make_visible(bool p_visible); - LightOccluder2DEditorPlugin(EditorNode *p_node); - ~LightOccluder2DEditorPlugin(); }; #endif // LIGHT_OCCLUDER_2D_EDITOR_PLUGIN_H diff --git a/editor/plugins/path_2d_editor_plugin.cpp b/editor/plugins/path_2d_editor_plugin.cpp index c67c96798a..3d4816b17b 100644 --- a/editor/plugins/path_2d_editor_plugin.cpp +++ b/editor/plugins/path_2d_editor_plugin.cpp @@ -70,8 +70,9 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { if (!node->get_curve().is_valid()) return false; - Ref<InputEventMouseButton> mb = p_event; + real_t grab_threshold = EDITOR_GET("editors/poly_editor/point_grab_radius"); + Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid()) { Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); @@ -79,8 +80,6 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { Vector2 gpoint = mb->get_position(); Vector2 cpoint = node->get_global_transform().affine_inverse().xform(canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(mb->get_position()))); - real_t grab_threshold = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8); - if (mb->is_pressed() && action == ACTION_NONE) { Ref<Curve2D> curve = node->get_curve(); @@ -179,6 +178,41 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { return true; } + // Check for segment split. + if (mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT && mode == MODE_EDIT && on_edge == true) { + Vector2 gpoint = mb->get_position(); + Ref<Curve2D> curve = node->get_curve(); + + int insertion_point = -1; + float mbLength = curve->get_closest_offset(xform.affine_inverse().xform(gpoint)); + int len = curve->get_point_count(); + for (int i = 0; i < len - 1; i++) { + float compareLength = curve->get_closest_offset(curve->get_point_position(i + 1)); + if (mbLength >= curve->get_closest_offset(curve->get_point_position(i)) && mbLength <= compareLength) + insertion_point = i; + } + if (insertion_point == -1) + insertion_point = curve->get_point_count() - 2; + + undo_redo->create_action(TTR("Split Curve")); + undo_redo->add_do_method(curve.ptr(), "add_point", xform.affine_inverse().xform(gpoint), Vector2(0, 0), Vector2(0, 0), insertion_point + 1); + undo_redo->add_undo_method(curve.ptr(), "remove_point", insertion_point + 1); + undo_redo->add_do_method(canvas_item_editor, "update_viewport"); + undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); + undo_redo->commit_action(); + + action = ACTION_MOVING_POINT; + action_point = insertion_point + 1; + moving_from = curve->get_point_position(action_point); + moving_screen_from = gpoint; + + canvas_item_editor->update_viewport(); + + on_edge = false; + + return true; + } + // Check for point movement completion. if (!mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT && action != ACTION_NONE) { @@ -245,6 +279,49 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { if (mm.is_valid()) { + if (action == ACTION_NONE && mode == MODE_EDIT) { + // Handle Edge Follow + bool old_edge = on_edge; + + Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + Vector2 gpoint = mm->get_position(); + + Ref<Curve2D> curve = node->get_curve(); + if (curve == NULL) return true; + if (curve->get_point_count() < 2) return true; + + // Find edge + edge_point = xform.xform(curve->get_closest_point(xform.affine_inverse().xform(mm->get_position()))); + on_edge = false; + if (edge_point.distance_to(gpoint) <= grab_threshold) { + on_edge = true; + } + // However, if near a control point or its in-out handles then not on edge + int len = curve->get_point_count(); + for (int i = 0; i < len; i++) { + Vector2 pp = curve->get_point_position(i); + Vector2 p = xform.xform(pp); + if (p.distance_to(gpoint) <= grab_threshold) { + on_edge = false; + break; + } + p = xform.xform(pp + curve->get_point_in(i)); + if (p.distance_to(gpoint) <= grab_threshold) { + on_edge = false; + break; + } + p = xform.xform(pp + curve->get_point_out(i)); + if (p.distance_to(gpoint) <= grab_threshold) { + on_edge = false; + break; + } + } + if (on_edge || old_edge != on_edge) { + canvas_item_editor->update_viewport(); + return true; + } + } + if (action != ACTION_NONE) { // Handle point/control movement. Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); @@ -309,7 +386,6 @@ void Path2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { Control *vpc = canvas_item_editor->get_viewport_control(); for (int i = 0; i < len; i++) { - Vector2 point = xform.xform(curve->get_point_position(i)); vpc->draw_texture_rect(handle, Rect2(point - handle_size * 0.5, handle_size), false, Color(1, 1, 1, 1)); @@ -325,6 +401,11 @@ void Path2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { vpc->draw_texture_rect(handle, Rect2(pointin - handle_size * 0.5, handle_size), false, Color(1, 0.5, 1, 0.3)); } } + + if (on_edge) { + Ref<Texture> add_handle = get_icon("EditorHandleAdd", "EditorIcons"); + p_overlay->draw_texture(add_handle, edge_point - add_handle->get_size() * 0.5); + } } void Path2DEditor::_node_visibility_changed() { @@ -442,6 +523,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) { undo_redo = editor->get_undo_redo(); mirror_handle_angle = true; mirror_handle_length = true; + on_edge = false; mode = MODE_EDIT; action = ACTION_NONE; @@ -455,7 +537,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) { curve_edit->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("CurveEdit", "EditorIcons")); curve_edit->set_toggle_mode(true); curve_edit->set_focus_mode(Control::FOCUS_NONE); - curve_edit->set_tooltip(TTR("Select Points") + "\n" + TTR("Shift+Drag: Select Control Points") + "\n" + keycode_get_string(KEY_MASK_CMD) + TTR("Click: Add Point") + "\n" + TTR("Right Click: Delete Point")); + curve_edit->set_tooltip(TTR("Select Points") + "\n" + TTR("Shift+Drag: Select Control Points") + "\n" + keycode_get_string(KEY_MASK_CMD) + TTR("Click: Add Point") + "\n" + TTR("Left Click: Split Segment (in curve)") + "\n" + TTR("Right Click: Delete Point")); curve_edit->connect("pressed", this, "_mode_selected", varray(MODE_EDIT)); base_hb->add_child(curve_edit); curve_edit_curve = memnew(ToolButton); @@ -469,7 +551,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) { curve_create->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("CurveCreate", "EditorIcons")); curve_create->set_toggle_mode(true); curve_create->set_focus_mode(Control::FOCUS_NONE); - curve_create->set_tooltip(TTR("Add Point (in empty space)") + "\n" + TTR("Split Segment (in curve)")); + curve_create->set_tooltip(TTR("Add Point (in empty space)")); curve_create->connect("pressed", this, "_mode_selected", varray(MODE_CREATE)); base_hb->add_child(curve_create); curve_del = memnew(ToolButton); diff --git a/editor/plugins/path_2d_editor_plugin.h b/editor/plugins/path_2d_editor_plugin.h index 3a78657746..34952b473a 100644 --- a/editor/plugins/path_2d_editor_plugin.h +++ b/editor/plugins/path_2d_editor_plugin.h @@ -73,6 +73,7 @@ class Path2DEditor : public HBoxContainer { bool mirror_handle_angle; bool mirror_handle_length; + bool on_edge; enum HandleOption { HANDLE_OPTION_ANGLE, @@ -93,6 +94,7 @@ class Path2DEditor : public HBoxContainer { Point2 moving_screen_from; float orig_in_length; float orig_out_length; + Vector2 edge_point; void _mode_selected(int p_mode); void _handle_option_pressed(int p_option); diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp index 45268d8c8d..97448f3f88 100644 --- a/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/editor/plugins/polygon_2d_editor_plugin.cpp @@ -56,6 +56,12 @@ void Polygon2DEditor::_notification(int p_what) { switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + + uv_edit_draw->add_style_override("panel", get_stylebox("bg", "Tree")); + bone_scroll->add_style_override("bg", get_stylebox("bg", "Tree")); + } break; case NOTIFICATION_READY: { button_uv->set_icon(get_icon("Uv", "EditorIcons")); @@ -73,66 +79,68 @@ void Polygon2DEditor::_notification(int p_what) { b_snap_grid->set_icon(get_icon("Grid", "EditorIcons")); b_snap_enable->set_icon(get_icon("SnapGrid", "EditorIcons")); uv_icon_zoom->set_texture(get_icon("Zoom", "EditorIcons")); - } break; - case NOTIFICATION_PHYSICS_PROCESS: { + case NOTIFICATION_VISIBILITY_CHANGED: { + if (!is_visible()) { + uv_edit->hide(); + } } break; } } void Polygon2DEditor::_sync_bones() { + Skeleton2D *skeleton; if (!node->has_node(node->get_skeleton())) { error->set_text(TTR("The skeleton property of the Polygon2D does not point to a Skeleton2D node")); error->popup_centered_minsize(); - return; + } else { + Node *sn = node->get_node(node->get_skeleton()); + skeleton = Object::cast_to<Skeleton2D>(sn); } - Node *sn = node->get_node(node->get_skeleton()); - Skeleton2D *skeleton = Object::cast_to<Skeleton2D>(sn); + Array prev_bones = node->call("_get_bones"); + node->clear_bones(); if (!skeleton) { error->set_text(TTR("The skeleton property of the Polygon2D does not point to a Skeleton2D node")); error->popup_centered_minsize(); - return; - } - - Array prev_bones = node->call("_get_bones"); - node->clear_bones(); - - for (int i = 0; i < skeleton->get_bone_count(); i++) { - NodePath path = skeleton->get_path_to(skeleton->get_bone(i)); - PoolVector<float> weights; - int wc = node->get_polygon().size(); - - for (int j = 0; j < prev_bones.size(); j += 2) { - NodePath pvp = prev_bones[j]; - PoolVector<float> pv = prev_bones[j + 1]; - if (pvp == path && pv.size() == wc) { - weights = pv; + } else { + for (int i = 0; i < skeleton->get_bone_count(); i++) { + NodePath path = skeleton->get_path_to(skeleton->get_bone(i)); + PoolVector<float> weights; + int wc = node->get_polygon().size(); + + for (int j = 0; j < prev_bones.size(); j += 2) { + NodePath pvp = prev_bones[j]; + PoolVector<float> pv = prev_bones[j + 1]; + if (pvp == path && pv.size() == wc) { + weights = pv; + } } - } - if (weights.size() == 0) { //create them - weights.resize(node->get_polygon().size()); - PoolVector<float>::Write w = weights.write(); - for (int j = 0; j < wc; j++) { - w[j] = 0.0; + if (weights.size() == 0) { //create them + weights.resize(node->get_polygon().size()); + PoolVector<float>::Write w = weights.write(); + for (int j = 0; j < wc; j++) { + w[j] = 0.0; + } } - } - node->add_bone(path, weights); + node->add_bone(path, weights); + } } + Array new_bones = node->call("_get_bones"); - undo_redo->create_action(TTR("Sync bones")); + undo_redo->create_action(TTR("Sync Bones")); undo_redo->add_do_method(node, "_set_bones", new_bones); undo_redo->add_undo_method(node, "_set_bones", prev_bones); - undo_redo->add_do_method(uv_edit_draw, "update"); - undo_redo->add_undo_method(uv_edit_draw, "update"); undo_redo->add_do_method(this, "_update_bone_list"); undo_redo->add_undo_method(this, "_update_bone_list"); + undo_redo->add_do_method(uv_edit_draw, "update"); + undo_redo->add_undo_method(uv_edit_draw, "update"); undo_redo->commit_action(); } @@ -162,9 +170,10 @@ void Polygon2DEditor::_update_bone_list() { cb->set_text(name); cb->set_button_group(bg); cb->set_meta("bone_path", np); + cb->set_focus_mode(FOCUS_NONE); bone_scroll_vb->add_child(cb); - if (np == selected) + if (np == selected || bone_scroll_vb->get_child_count() < 2) cb->set_pressed(true); cb->connect("pressed", this, "_bone_paint_selected", varray(i)); @@ -180,6 +189,7 @@ void Polygon2DEditor::_bone_paint_selected(int p_index) { void Polygon2DEditor::_uv_edit_mode_select(int p_mode) { if (p_mode == 0) { //uv + uv_button[UV_MODE_CREATE]->hide(); for (int i = UV_MODE_MOVE; i <= UV_MODE_SCALE; i++) { uv_button[i]->show(); @@ -194,8 +204,8 @@ void Polygon2DEditor::_uv_edit_mode_select(int p_mode) { bone_paint_strength->hide(); bone_paint_radius->hide(); bone_paint_radius_label->hide(); - } else if (p_mode == 1) { //poly + for (int i = 0; i <= UV_MODE_SCALE; i++) { uv_button[i]->show(); } @@ -209,8 +219,8 @@ void Polygon2DEditor::_uv_edit_mode_select(int p_mode) { bone_paint_strength->hide(); bone_paint_radius->hide(); bone_paint_radius_label->hide(); - } else if (p_mode == 2) { //splits + for (int i = 0; i <= UV_MODE_SCALE; i++) { uv_button[i]->hide(); } @@ -224,8 +234,8 @@ void Polygon2DEditor::_uv_edit_mode_select(int p_mode) { bone_paint_strength->hide(); bone_paint_radius->hide(); bone_paint_radius_label->hide(); - } else if (p_mode == 3) { //bones´ + for (int i = 0; i <= UV_MODE_REMOVE_SPLIT; i++) { uv_button[i]->hide(); } @@ -241,9 +251,17 @@ void Polygon2DEditor::_uv_edit_mode_select(int p_mode) { bone_paint_pos = Vector2(-100000, -100000); //send brush away when switching } + uv_edit->set_size(uv_edit->get_size()); // Necessary readjustment of the popup window. uv_edit_draw->update(); } +void Polygon2DEditor::_uv_edit_popup_hide() { + + EditorSettings::get_singleton()->set("interface/dialogs/uv_editor_bounds", uv_edit->get_rect()); + + _cancel_editing(); +} + void Polygon2DEditor::_menu_option(int p_option) { switch (p_option) { @@ -252,7 +270,7 @@ void Polygon2DEditor::_menu_option(int p_option) { if (node->get_texture().is_null()) { - error->set_text("No texture in this polygon.\nSet a texture to be able to edit UV."); + error->set_text(TTR("No texture in this polygon.\nSet a texture to be able to edit UV.")); error->popup_centered_minsize(); return; } @@ -268,7 +286,10 @@ void Polygon2DEditor::_menu_option(int p_option) { undo_redo->commit_action(); } - uv_edit->popup_centered_ratio(0.85); + if (EditorSettings::get_singleton()->has_setting("interface/dialogs/uv_editor_bounds")) + uv_edit->popup(EditorSettings::get_singleton()->get("interface/dialogs/uv_editor_bounds")); + else + uv_edit->popup_centered_ratio(0.85); } break; case UVEDIT_POLYGON_TO_UV: { @@ -282,7 +303,6 @@ void Polygon2DEditor::_menu_option(int p_option) { undo_redo->add_do_method(uv_edit_draw, "update"); undo_redo->add_undo_method(uv_edit_draw, "update"); undo_redo->commit_action(); - } break; case UVEDIT_UV_TO_POLYGON: { @@ -291,13 +311,12 @@ void Polygon2DEditor::_menu_option(int p_option) { if (uvs.size() == 0) break; - undo_redo->create_action(TTR("Create UV Map")); + undo_redo->create_action(TTR("Create Polygon")); undo_redo->add_do_method(node, "set_polygon", uvs); undo_redo->add_undo_method(node, "set_polygon", points); undo_redo->add_do_method(uv_edit_draw, "update"); undo_redo->add_undo_method(uv_edit_draw, "update"); undo_redo->commit_action(); - } break; case UVEDIT_UV_CLEAR: { @@ -310,43 +329,81 @@ void Polygon2DEditor::_menu_option(int p_option) { undo_redo->add_do_method(uv_edit_draw, "update"); undo_redo->add_undo_method(uv_edit_draw, "update"); undo_redo->commit_action(); - } break; case UVEDIT_GRID_SETTINGS: { + grid_settings->popup_centered_minsize(); } break; default: { + AbstractPolygon2DEditor::_menu_option(p_option); } break; } } +void Polygon2DEditor::_cancel_editing() { + + if (uv_create) { + uv_drag = false; + uv_create = false; + node->set_uv(uv_create_uv_prev); + node->set_polygon(uv_create_poly_prev); + node->call("_set_bones", uv_create_bones_prev); + node->set_splits(splits_prev); + } else if (uv_drag) { + uv_drag = false; + if (uv_edit_mode[0]->is_pressed()) { // Edit UV. + node->set_uv(points_prev); + } else if (uv_edit_mode[1]->is_pressed()) { // Edit polygon. + node->set_polygon(points_prev); + } + } else if (split_create) { + split_create = false; + } +} + +void Polygon2DEditor::_commit_action() { + + // Makes that undo/redoing actions made outside of the UV editor still affects its polygon. + undo_redo->add_do_method(uv_edit_draw, "update"); + undo_redo->add_undo_method(uv_edit_draw, "update"); + undo_redo->add_do_method(CanvasItemEditor::get_singleton(), "update_viewport"); + undo_redo->add_undo_method(CanvasItemEditor::get_singleton(), "update_viewport"); + undo_redo->commit_action(); +} + void Polygon2DEditor::_set_use_snap(bool p_use) { use_snap = p_use; + EditorSettings::get_singleton()->set_project_metadata("polygon_2d_uv_editor", "snap_enabled", p_use); } void Polygon2DEditor::_set_show_grid(bool p_show) { snap_show_grid = p_show; + EditorSettings::get_singleton()->set_project_metadata("polygon_2d_uv_editor", "show_grid", p_show); uv_edit_draw->update(); } void Polygon2DEditor::_set_snap_off_x(float p_val) { snap_offset.x = p_val; + EditorSettings::get_singleton()->set_project_metadata("polygon_2d_uv_editor", "snap_offset", snap_offset); uv_edit_draw->update(); } void Polygon2DEditor::_set_snap_off_y(float p_val) { snap_offset.y = p_val; + EditorSettings::get_singleton()->set_project_metadata("polygon_2d_uv_editor", "snap_offset", snap_offset); uv_edit_draw->update(); } void Polygon2DEditor::_set_snap_step_x(float p_val) { snap_step.x = p_val; + EditorSettings::get_singleton()->set_project_metadata("polygon_2d_uv_editor", "snap_step", snap_step); uv_edit_draw->update(); } void Polygon2DEditor::_set_snap_step_y(float p_val) { snap_step.y = p_val; + EditorSettings::get_singleton()->set_project_metadata("polygon_2d_uv_editor", "snap_step", snap_step); uv_edit_draw->update(); } @@ -364,6 +421,9 @@ void Polygon2DEditor::_uv_mode(int p_mode) { void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { + if (!_get_node()) + return; + Transform2D mtx; mtx.elements[2] = -uv_draw_ofs; mtx.scale_basis(Vector2(uv_draw_zoom, uv_draw_zoom)); @@ -376,7 +436,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { if (mb->is_pressed()) { - uv_drag_from = Vector2(mb->get_position().x, mb->get_position().y); + uv_drag_from = snap_point(Vector2(mb->get_position().x, mb->get_position().y)); uv_drag = true; points_prev = node->get_uv(); @@ -390,8 +450,9 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { if (uv_move_current == UV_MODE_CREATE) { if (!uv_create) { + points_prev.resize(0); - Vector2 tuv = mtx.affine_inverse().xform(Vector2(mb->get_position().x, mb->get_position().y)); + Vector2 tuv = mtx.affine_inverse().xform(snap_point(Vector2(mb->get_position().x, mb->get_position().y))); points_prev.push_back(tuv); uv_create_to = tuv; point_drag_index = 0; @@ -405,23 +466,27 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { node->set_polygon(points_prev); node->set_uv(points_prev); + uv_edit_draw->update(); } else { - Vector2 tuv = mtx.affine_inverse().xform(Vector2(mb->get_position().x, mb->get_position().y)); - if (points_prev.size() > 3 && tuv.distance_to(points_prev[0]) < 8) { + Vector2 tuv = mtx.affine_inverse().xform(snap_point(Vector2(mb->get_position().x, mb->get_position().y))); + + if (points_prev.size() > 2 && tuv.distance_to(points_prev[0]) < 8) { undo_redo->create_action(TTR("Create Polygon & UV")); undo_redo->add_do_method(node, "set_uv", node->get_uv()); - undo_redo->add_undo_method(node, "set_uv", points_prev); + undo_redo->add_undo_method(node, "set_uv", uv_create_uv_prev); undo_redo->add_do_method(node, "set_polygon", node->get_polygon()); - undo_redo->add_undo_method(node, "set_polygon", points_prev); + undo_redo->add_undo_method(node, "set_polygon", uv_create_poly_prev); undo_redo->add_do_method(node, "clear_bones"); - undo_redo->add_undo_method(node, "_set_bones", node->call("_get_bones")); + undo_redo->add_undo_method(node, "_set_bones", uv_create_bones_prev); undo_redo->add_do_method(uv_edit_draw, "update"); undo_redo->add_undo_method(uv_edit_draw, "update"); undo_redo->commit_action(); uv_drag = false; uv_create = false; + _uv_mode(UV_MODE_EDIT_POINT); + _menu_option(MODE_EDIT); } else { points_prev.push_back(tuv); point_drag_index = points_prev.size() - 1; @@ -430,6 +495,8 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { node->set_polygon(points_prev); node->set_uv(points_prev); } + + CanvasItemEditor::get_singleton()->update_viewport(); } if (uv_move_current == UV_MODE_EDIT_POINT) { @@ -540,7 +607,6 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { splits_prev.push_back(split_to_index); undo_redo->create_action(TTR("Add Split")); - undo_redo->add_do_method(node, "set_splits", splits_prev); undo_redo->add_undo_method(node, "set_splits", node->get_splits()); undo_redo->add_do_method(uv_edit_draw, "update"); @@ -575,13 +641,11 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { splits_prev.remove(i); undo_redo->create_action(TTR("Remove Split")); - undo_redo->add_do_method(node, "set_splits", splits_prev); undo_redo->add_undo_method(node, "set_splits", node->get_splits()); undo_redo->add_do_method(uv_edit_draw, "update"); undo_redo->add_undo_method(uv_edit_draw, "update"); undo_redo->commit_action(); - break; } } @@ -608,12 +672,12 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } else if (uv_drag && !uv_create) { - undo_redo->create_action(TTR("Transform UV Map")); - if (uv_edit_mode[0]->is_pressed()) { //edit uv + undo_redo->create_action(TTR("Transform UV Map")); undo_redo->add_do_method(node, "set_uv", node->get_uv()); undo_redo->add_undo_method(node, "set_uv", points_prev); } else if (uv_edit_mode[1]->is_pressed()) { //edit polygon + undo_redo->create_action(TTR("Transform Polygon")); undo_redo->add_do_method(node, "set_polygon", node->get_polygon()); undo_redo->add_undo_method(node, "set_polygon", points_prev); } @@ -624,7 +688,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { uv_drag = false; } else if (bone_painting) { - undo_redo->create_action(TTR("Paint bone weights")); + undo_redo->create_action(TTR("Paint Bone Weights")); undo_redo->add_do_method(node, "set_bone_weights", bone_painting_bone, node->get_bone_weights(bone_painting_bone)); undo_redo->add_undo_method(node, "set_bone_weights", bone_painting_bone, prev_weights); undo_redo->add_do_method(uv_edit_draw, "update"); @@ -635,30 +699,12 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } else if (mb->get_button_index() == BUTTON_RIGHT && mb->is_pressed()) { - if (uv_create) { - - uv_drag = false; - uv_create = false; - node->set_uv(uv_create_uv_prev); - node->set_polygon(uv_create_poly_prev); - node->call("_set_bones", uv_create_bones_prev); - node->set_splits(splits_prev); - uv_edit_draw->update(); - } else if (uv_drag) { + _cancel_editing(); - uv_drag = false; - if (uv_edit_mode[0]->is_pressed()) { //edit uv - node->set_uv(points_prev); - } else if (uv_edit_mode[1]->is_pressed()) { //edit polygon - node->set_polygon(points_prev); - } - uv_edit_draw->update(); - } else if (split_create) { - split_create = false; - uv_edit_draw->update(); - } else if (bone_painting) { + if (bone_painting) node->set_bone_weights(bone_painting_bone, prev_weights); - } + + uv_edit_draw->update(); } else if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed()) { @@ -682,13 +728,15 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } else if (uv_drag) { Vector2 uv_drag_to = mm->get_position(); + uv_drag_to = snap_point(uv_drag_to); // FIXME: Only works correctly with 'UV_MODE_EDIT_POINT', it's imprecise with the rest. Vector2 drag = mtx.affine_inverse().xform(uv_drag_to) - mtx.affine_inverse().xform(uv_drag_from); switch (uv_move_current) { case UV_MODE_CREATE: { + if (uv_create) { - uv_create_to = mtx.affine_inverse().xform(Vector2(mm->get_position().x, mm->get_position().y)); + uv_create_to = mtx.affine_inverse().xform(snap_point(Vector2(mm->get_position().x, mm->get_position().y))); } } break; case UV_MODE_EDIT_POINT: { @@ -713,7 +761,6 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } else if (uv_edit_mode[1]->is_pressed()) { //edit polygon node->set_polygon(uv_new); } - } break; case UV_MODE_ROTATE: { @@ -737,7 +784,6 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } else if (uv_edit_mode[1]->is_pressed()) { //edit polygon node->set_polygon(uv_new); } - } break; case UV_MODE_SCALE: { @@ -767,11 +813,15 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { node->set_polygon(uv_new); } } break; + case UV_MODE_PAINT_WEIGHT: + case UV_MODE_CLEAR_WEIGHT: { + + bone_paint_pos = Vector2(mm->get_position().x, mm->get_position().y); + } break; default: {} } if (bone_painting) { - bone_paint_pos = Vector2(mm->get_position().x, mm->get_position().y); PoolVector<float> painted_weights = node->get_bone_weights(bone_painting_bone); { @@ -796,7 +846,9 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { node->set_bone_weights(bone_painting_bone, painted_weights); } + uv_edit_draw->update(); + CanvasItemEditor::get_singleton()->update_viewport(); } else if (split_create) { uv_create_to = mtx.affine_inverse().xform(Vector2(mm->get_position().x, mm->get_position().y)); uv_edit_draw->update(); @@ -833,6 +885,9 @@ void Polygon2DEditor::_uv_scroll_changed(float) { void Polygon2DEditor::_uv_draw() { + if (!uv_edit->is_visible() || !_get_node()) + return; + Ref<Texture> base_tex = node->get_texture(); if (base_tex.is_null()) return; @@ -848,6 +903,7 @@ void Polygon2DEditor::_uv_draw() { VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(), Transform2D()); if (snap_show_grid) { + Color grid_color = Color(1.0, 1.0, 1.0, 0.15); Size2 s = uv_edit_draw->get_size(); int last_cell = 0; @@ -857,7 +913,7 @@ void Polygon2DEditor::_uv_draw() { if (i == 0) last_cell = cell; if (last_cell != cell) - uv_edit_draw->draw_line(Point2(i, 0), Point2(i, s.height), Color(0.3, 0.7, 1, 0.3)); + uv_edit_draw->draw_line(Point2(i, 0), Point2(i, s.height), grid_color); last_cell = cell; } } @@ -868,7 +924,7 @@ void Polygon2DEditor::_uv_draw() { if (i == 0) last_cell = cell; if (last_cell != cell) - uv_edit_draw->draw_line(Point2(0, i), Point2(s.width, i), Color(0.3, 0.7, 1, 0.3)); + uv_edit_draw->draw_line(Point2(0, i), Point2(s.width, i), grid_color); last_cell = cell; } } @@ -901,19 +957,26 @@ void Polygon2DEditor::_uv_draw() { Ref<Texture> handle = get_icon("EditorHandle", "EditorIcons"); + Color poly_line_color = Color(0.9, 0.5, 0.5); + Color prev_color = Color(0.5, 0.5, 0.5); Rect2 rect(Point2(), mtx.basis_xform(base_tex->get_size())); rect.expand_to(mtx.basis_xform(uv_edit_draw->get_size())); for (int i = 0; i < uvs.size(); i++) { int next = (i + 1) % uvs.size(); + + if (uv_drag && uv_move_current == UV_MODE_EDIT_POINT && EDITOR_DEF("editors/poly_editor/show_previous_outline", true)) { + uv_edit_draw->draw_line(mtx.xform(points_prev[i]), mtx.xform(points_prev[next]), prev_color, 2 * EDSCALE); + } + Vector2 next_point = uvs[next]; if (uv_create && i == uvs.size() - 1) { next_point = uv_create_to; } - uv_edit_draw->draw_line(mtx.xform(uvs[i]), mtx.xform(next_point), Color(0.9, 0.5, 0.5), 2); - if (weight_r.ptr()) { + uv_edit_draw->draw_line(mtx.xform(uvs[i]), mtx.xform(next_point), poly_line_color, 2 * EDSCALE); + if (weight_r.ptr()) { Vector2 draw_pos = mtx.xform(uvs[i]); float weight = weight_r[i]; uv_edit_draw->draw_rect(Rect2(draw_pos - Vector2(2, 2) * EDSCALE, Vector2(5, 5) * EDSCALE), Color(weight, weight, weight, 1.0)); @@ -926,7 +989,7 @@ void Polygon2DEditor::_uv_draw() { if (split_create) { Vector2 from = uvs[point_drag_index]; Vector2 to = uv_create_to; - uv_edit_draw->draw_line(mtx.xform(from), mtx.xform(to), Color(0.9, 0.5, 0.5), 2); + uv_edit_draw->draw_line(mtx.xform(from), mtx.xform(to), poly_line_color, 2); } PoolVector<int> splits = node->get_splits(); @@ -936,7 +999,7 @@ void Polygon2DEditor::_uv_draw() { int idx_to = splits[i + 1]; if (idx_from < 0 || idx_to >= uvs.size()) continue; - uv_edit_draw->draw_line(mtx.xform(uvs[idx_from]), mtx.xform(uvs[idx_to]), Color(0.9, 0.5, 0.5), 2); + uv_edit_draw->draw_line(mtx.xform(uvs[idx_from]), mtx.xform(uvs[idx_to]), poly_line_color, 2); } if (uv_mode == UV_MODE_PAINT_WEIGHT || uv_mode == UV_MODE_CLEAR_WEIGHT) { @@ -1002,15 +1065,23 @@ void Polygon2DEditor::_uv_draw() { updating_uv_scroll = true; uv_hscroll->set_min(rect.position.x); uv_hscroll->set_max(rect.position.x + rect.size.x); - uv_hscroll->set_page(uv_edit_draw->get_size().x); - uv_hscroll->set_value(uv_draw_ofs.x); - uv_hscroll->set_step(0.001); + if (ABS(rect.position.x - (rect.position.x + rect.size.x)) <= uv_edit_draw->get_size().x) { + uv_hscroll->hide(); + } else { + uv_hscroll->show(); + uv_hscroll->set_page(uv_edit_draw->get_size().x); + uv_hscroll->set_value(uv_draw_ofs.x); + } uv_vscroll->set_min(rect.position.y); uv_vscroll->set_max(rect.position.y + rect.size.y); - uv_vscroll->set_page(uv_edit_draw->get_size().y); - uv_vscroll->set_value(uv_draw_ofs.y); - uv_vscroll->set_step(0.001); + if (ABS(rect.position.y - (rect.position.y + rect.size.y)) <= uv_edit_draw->get_size().y) { + uv_vscroll->hide(); + } else { + uv_vscroll->show(); + uv_vscroll->set_page(uv_edit_draw->get_size().y); + uv_vscroll->set_value(uv_draw_ofs.y); + } updating_uv_scroll = false; } @@ -1027,9 +1098,9 @@ void Polygon2DEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_set_snap_step_x"), &Polygon2DEditor::_set_snap_step_x); ClassDB::bind_method(D_METHOD("_set_snap_step_y"), &Polygon2DEditor::_set_snap_step_y); ClassDB::bind_method(D_METHOD("_uv_edit_mode_select"), &Polygon2DEditor::_uv_edit_mode_select); + ClassDB::bind_method(D_METHOD("_uv_edit_popup_hide"), &Polygon2DEditor::_uv_edit_popup_hide); ClassDB::bind_method(D_METHOD("_sync_bones"), &Polygon2DEditor::_sync_bones); ClassDB::bind_method(D_METHOD("_update_bone_list"), &Polygon2DEditor::_update_bone_list); - ClassDB::bind_method(D_METHOD("_bone_paint_selected"), &Polygon2DEditor::_bone_paint_selected); } @@ -1046,23 +1117,25 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : AbstractPolygon2DEditor(p_editor) { node = NULL; - snap_step = Vector2(10, 10); - use_snap = false; - snap_show_grid = false; + snap_offset = EditorSettings::get_singleton()->get_project_metadata("polygon_2d_uv_editor", "snap_offset", Vector2()); + snap_step = EditorSettings::get_singleton()->get_project_metadata("polygon_2d_uv_editor", "snap_step", Vector2(10, 10)); + use_snap = EditorSettings::get_singleton()->get_project_metadata("polygon_2d_uv_editor", "snap_enabled", false); + snap_show_grid = EditorSettings::get_singleton()->get_project_metadata("polygon_2d_uv_editor", "show_grid", false); button_uv = memnew(ToolButton); add_child(button_uv); + button_uv->set_tooltip(TTR("Open Polygon 2D UV editor.")); button_uv->connect("pressed", this, "_menu_option", varray(MODE_EDIT_UV)); uv_mode = UV_MODE_EDIT_POINT; uv_edit = memnew(AcceptDialog); add_child(uv_edit); uv_edit->set_title(TTR("Polygon 2D UV Editor")); - uv_edit->set_self_modulate(Color(1, 1, 1, 0.9)); + uv_edit->set_resizable(true); + uv_edit->connect("popup_hide", this, "_uv_edit_popup_hide"); VBoxContainer *uv_main_vb = memnew(VBoxContainer); uv_edit->add_child(uv_main_vb); - //uv_edit->set_child_rect(uv_main_vb); HBoxContainer *uv_mode_hb = memnew(HBoxContainer); uv_edit_group.instance(); @@ -1109,14 +1182,14 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : } uv_button[0]->set_tooltip(TTR("Create Polygon")); - uv_button[1]->set_tooltip(TTR("Move Point") + "\n" + TTR("Ctrl: Rotate") + "\n" + TTR("Shift: Move All") + "\n" + TTR("Shift+Ctrl: Scale")); + uv_button[1]->set_tooltip(TTR("Move Points") + "\n" + TTR("Ctrl: Rotate") + "\n" + TTR("Shift: Move All") + "\n" + TTR("Shift+Ctrl: Scale")); uv_button[2]->set_tooltip(TTR("Move Polygon")); uv_button[3]->set_tooltip(TTR("Rotate Polygon")); uv_button[4]->set_tooltip(TTR("Scale Polygon")); - uv_button[5]->set_tooltip(TTR("Connect two points to make a split")); - uv_button[6]->set_tooltip(TTR("Select a split to erase it")); - uv_button[7]->set_tooltip(TTR("Paint weights with specified intensity")); - uv_button[8]->set_tooltip(TTR("UnPaint weights with specified intensity")); + uv_button[5]->set_tooltip(TTR("Connect two points to make a split.")); + uv_button[6]->set_tooltip(TTR("Select a split to erase it.")); + uv_button[7]->set_tooltip(TTR("Paint weights with specified intensity.")); + uv_button[8]->set_tooltip(TTR("Unpaint weights with specified intensity.")); uv_button[0]->hide(); uv_button[5]->hide(); @@ -1134,7 +1207,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : bone_paint_strength->set_step(0.01); bone_paint_strength->set_value(0.5); - bone_paint_radius_label = memnew(Label(" " + TTR("Radius:") + " ")); + bone_paint_radius_label = memnew(Label(TTR("Radius:"))); uv_mode_hb->add_child(bone_paint_radius_label); bone_paint_radius = memnew(SpinBox); uv_mode_hb->add_child(bone_paint_radius); @@ -1147,12 +1220,13 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : bone_paint_radius->set_step(1); bone_paint_radius->set_value(32); - HBoxContainer *uv_main_hb = memnew(HBoxContainer); - uv_main_vb->add_child(uv_main_hb); - uv_edit_draw = memnew(Control); - uv_main_hb->add_child(uv_edit_draw); - uv_main_hb->set_v_size_flags(SIZE_EXPAND_FILL); + HSplitContainer *uv_main_hsc = memnew(HSplitContainer); + uv_main_vb->add_child(uv_main_hsc); + uv_main_hsc->set_v_size_flags(SIZE_EXPAND_FILL); + uv_edit_draw = memnew(Panel); + uv_main_hsc->add_child(uv_edit_draw); uv_edit_draw->set_h_size_flags(SIZE_EXPAND_FILL); + uv_edit_draw->set_custom_minimum_size(Size2(200, 200) * EDSCALE); uv_menu = memnew(MenuButton); uv_mode_hb->add_child(uv_menu); uv_menu->set_text(TTR("Edit")); @@ -1228,6 +1302,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : uv_mode_hb->add_child(memnew(VSeparator)); uv_icon_zoom = memnew(TextureRect); + uv_icon_zoom->set_stretch_mode(TextureRect::STRETCH_KEEP_CENTERED); uv_mode_hb->add_child(uv_icon_zoom); uv_zoom = memnew(HSlider); uv_zoom->set_min(0.01); @@ -1245,17 +1320,25 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : uv_zoom->connect("value_changed", this, "_uv_scroll_changed"); uv_vscroll = memnew(VScrollBar); - uv_main_hb->add_child(uv_vscroll); + uv_vscroll->set_step(0.001); + uv_edit_draw->add_child(uv_vscroll); + uv_vscroll->set_anchors_and_margins_preset(PRESET_RIGHT_WIDE); uv_vscroll->connect("value_changed", this, "_uv_scroll_changed"); uv_hscroll = memnew(HScrollBar); - uv_main_vb->add_child(uv_hscroll); + uv_hscroll->set_step(0.001); + uv_edit_draw->add_child(uv_hscroll); + uv_hscroll->set_anchors_and_margins_preset(PRESET_BOTTOM_WIDE); + uv_hscroll->set_margin(MARGIN_RIGHT, -uv_vscroll->get_size().x * EDSCALE); uv_hscroll->connect("value_changed", this, "_uv_scroll_changed"); bone_scroll_main_vb = memnew(VBoxContainer); bone_scroll_main_vb->hide(); + bone_scroll_main_vb->set_custom_minimum_size(Size2(150 * EDSCALE, 0)); sync_bones = memnew(Button(TTR("Sync Bones to Polygon"))); bone_scroll_main_vb->add_child(sync_bones); - uv_main_hb->add_child(bone_scroll_main_vb); + sync_bones->set_h_size_flags(0); + sync_bones->connect("pressed", this, "_sync_bones"); + uv_main_hsc->add_child(bone_scroll_main_vb); bone_scroll = memnew(ScrollContainer); bone_scroll->set_v_scroll(true); bone_scroll->set_h_scroll(false); @@ -1263,7 +1346,6 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : bone_scroll->set_v_size_flags(SIZE_EXPAND_FILL); bone_scroll_vb = memnew(VBoxContainer); bone_scroll->add_child(bone_scroll_vb); - sync_bones->connect("pressed", this, "_sync_bones"); uv_edit_draw->connect("draw", this, "_uv_draw"); uv_edit_draw->connect("gui_input", this, "_uv_input"); diff --git a/editor/plugins/polygon_2d_editor_plugin.h b/editor/plugins/polygon_2d_editor_plugin.h index f9b42a21c2..935f1cfff0 100644 --- a/editor/plugins/polygon_2d_editor_plugin.h +++ b/editor/plugins/polygon_2d_editor_plugin.h @@ -41,13 +41,11 @@ class Polygon2DEditor : public AbstractPolygon2DEditor { GDCLASS(Polygon2DEditor, AbstractPolygon2DEditor); enum Mode { - MODE_EDIT_UV = MODE_CONT, UVEDIT_POLYGON_TO_UV, UVEDIT_UV_TO_POLYGON, UVEDIT_UV_CLEAR, UVEDIT_GRID_SETTINGS - }; enum UVMode { @@ -73,7 +71,7 @@ class Polygon2DEditor : public AbstractPolygon2DEditor { ToolButton *uv_button[UV_MODE_MAX]; ToolButton *b_snap_enable; ToolButton *b_snap_grid; - Control *uv_edit_draw; + Panel *uv_edit_draw; HSlider *uv_zoom; SpinBox *uv_zoom_value; HScrollBar *uv_hscroll; @@ -125,6 +123,8 @@ class Polygon2DEditor : public AbstractPolygon2DEditor { virtual void _menu_option(int p_option); + void _cancel_editing(); + void _uv_scroll_changed(float); void _uv_input(const Ref<InputEvent> &p_input); void _uv_draw(); @@ -138,6 +138,7 @@ class Polygon2DEditor : public AbstractPolygon2DEditor { void _set_snap_step_y(float p_val); void _uv_edit_mode_select(int p_mode); + void _uv_edit_popup_hide(); void _bone_paint_selected(int p_index); protected: @@ -146,6 +147,9 @@ protected: virtual Vector2 _get_offset(int p_idx) const; + virtual bool _has_uv() const { return true; }; + virtual void _commit_action(); + void _notification(int p_what); static void _bind_methods(); diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index ae6fa8e6bb..44f1625d06 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -40,6 +40,7 @@ #include "editor/editor_settings.h" #include "editor/find_in_files.h" #include "editor/node_dock.h" +#include "editor/plugins/shader_editor_plugin.h" #include "editor/script_editor_debugger.h" #include "scene/main/viewport.h" #include "script_text_editor.h" @@ -896,12 +897,12 @@ void ScriptEditor::_file_dialog_action(String p_file) { } break; case THEME_SAVE_AS: { if (!EditorSettings::get_singleton()->save_text_editor_theme_as(p_file)) { - editor->show_warning(TTR("Error while saving theme"), TTR("Error saving")); + editor->show_warning(TTR("Error while saving theme."), TTR("Error Saving")); } } break; case THEME_IMPORT: { if (!EditorSettings::get_singleton()->import_text_editor_theme(p_file)) { - editor->show_warning(TTR("Error importing theme"), TTR("Error importing")); + editor->show_warning(TTR("Error importing theme."), TTR("Error Importing")); } } break; } @@ -1089,7 +1090,7 @@ void ScriptEditor::_menu_option(int p_option) { Ref<Script> scr = current->get_edited_resource(); if (scr == NULL || scr.is_null()) { - EditorNode::get_singleton()->show_warning("Can't obtain the script for running"); + EditorNode::get_singleton()->show_warning("Can't obtain the script for running."); break; } @@ -1102,13 +1103,13 @@ void ScriptEditor::_menu_option(int p_option) { } if (!scr->is_tool()) { - EditorNode::get_singleton()->show_warning("Script is not in tool mode, will not be able to run"); + EditorNode::get_singleton()->show_warning("Script is not in tool mode, will not be able to run."); return; } if (!ClassDB::is_parent_class(scr->get_instance_base_type(), "EditorScript")) { - EditorNode::get_singleton()->show_warning("To run this script, it must inherit EditorScript and be set to tool mode"); + EditorNode::get_singleton()->show_warning("To run this script, it must inherit EditorScript and be set to tool mode."); return; } @@ -1815,6 +1816,10 @@ Ref<TextFile> ScriptEditor::_load_text_file(const String &p_path, Error *r_error text_file->set_file_path(local_path); text_file->set_path(local_path, true); + if (ResourceLoader::get_timestamp_on_load()) { + text_file->set_last_modified_time(FileAccess::get_modified_time(path)); + } + if (r_error) { *r_error = OK; } @@ -1844,6 +1849,10 @@ Error ScriptEditor::_save_text_file(Ref<TextFile> p_text_file, const String &p_p file->close(); memdelete(file); + if (ResourceSaver::get_timestamp_on_save()) { + p_text_file->set_last_modified_time(FileAccess::get_modified_time(p_path)); + } + _res_saved_callback(sqscr); return OK; } @@ -2770,13 +2779,18 @@ void ScriptEditor::_on_find_in_files_requested(String text) { void ScriptEditor::_on_find_in_files_result_selected(String fpath, int line_number, int begin, int end) { RES res = ResourceLoader::load(fpath); - edit(res); - - ScriptEditorBase *seb = _get_current_editor(); + if (fpath.get_extension() == "shader") { + ShaderEditorPlugin *shader_editor = Object::cast_to<ShaderEditorPlugin>(EditorNode::get_singleton()->get_editor_data().get_editor("Shader")); + shader_editor->edit(res.ptr()); + shader_editor->make_visible(true); + shader_editor->get_shader_editor()->goto_line_selection(line_number - 1, begin, end); + } else { + edit(res); - ScriptTextEditor *ste = Object::cast_to<ScriptTextEditor>(seb); - if (ste) { - ste->goto_line_selection(line_number - 1, begin, end); + ScriptTextEditor *ste = Object::cast_to<ScriptTextEditor>(_get_current_editor()); + if (ste) { + ste->goto_line_selection(line_number - 1, begin, end); + } } } @@ -2963,10 +2977,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { file_menu = memnew(MenuButton); menu_hb->add_child(file_menu); file_menu->set_text(TTR("File")); + file_menu->set_switch_on_hover(true); file_menu->get_popup()->set_hide_on_window_lose_focus(true); - file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/new", TTR("New Script")), FILE_NEW); - file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/new_textfile", TTR("New TextFile")), FILE_NEW_TEXTFILE); - file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/open", TTR("Open")), FILE_OPEN); + file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/new", TTR("New Script...")), FILE_NEW); + file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/new_textfile", TTR("New TextFile...")), FILE_NEW_TEXTFILE); + file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/open", TTR("Open...")), FILE_OPEN); file_menu->get_popup()->add_submenu_item(TTR("Open Recent"), "RecentScripts", FILE_OPEN_RECENT); recent_scripts = memnew(PopupMenu); @@ -2995,10 +3010,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { theme_submenu->set_name("Theme"); file_menu->get_popup()->add_child(theme_submenu); theme_submenu->connect("id_pressed", this, "_theme_option"); - theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/import_theme", TTR("Import Theme")), THEME_IMPORT); + theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/import_theme", TTR("Import Theme...")), THEME_IMPORT); theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/reload_theme", TTR("Reload Theme")), THEME_RELOAD); + theme_submenu->add_separator(); theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/save_theme", TTR("Save Theme")), THEME_SAVE); - theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/save_theme_as", TTR("Save Theme As")), THEME_SAVE_AS); + theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/save_theme_as", TTR("Save Theme As...")), THEME_SAVE_AS); file_menu->get_popup()->add_separator(); file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/close_docs", TTR("Close Docs")), CLOSE_DOCS); @@ -3014,6 +3030,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { script_search_menu = memnew(MenuButton); menu_hb->add_child(script_search_menu); script_search_menu->set_text(TTR("Search")); + script_search_menu->set_switch_on_hover(true); script_search_menu->get_popup()->set_hide_on_window_lose_focus(true); script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find..."), KEY_MASK_CMD | KEY_F), HELP_SEARCH_FIND); script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_next", TTR("Find Next"), KEY_F3), HELP_SEARCH_FIND_NEXT); @@ -3023,6 +3040,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { debug_menu = memnew(MenuButton); menu_hb->add_child(debug_menu); debug_menu->set_text(TTR("Debug")); + debug_menu->set_switch_on_hover(true); debug_menu->get_popup()->set_hide_on_window_lose_focus(true); debug_menu->get_popup()->add_shortcut(ED_SHORTCUT("debugger/step_over", TTR("Step Over"), KEY_F10), DEBUG_NEXT); debug_menu->get_popup()->add_shortcut(ED_SHORTCUT("debugger/step_into", TTR("Step Into"), KEY_F11), DEBUG_STEP); diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index e6bb8b24a9..85237f64d9 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -1076,7 +1076,7 @@ void ScriptTextEditor::set_syntax_highlighter(SyntaxHighlighter *p_highlighter) if (p_highlighter != NULL) highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(p_highlighter->get_name()), true); else - highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text("Standard"), true); + highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(TTR("Standard")), true); } void ScriptTextEditor::_change_syntax_highlighter(int p_idx) { @@ -1466,6 +1466,7 @@ ScriptTextEditor::ScriptTextEditor() { edit_menu = memnew(MenuButton); edit_menu->set_text(TTR("Edit")); + edit_menu->set_switch_on_hover(true); edit_menu->get_popup()->set_hide_on_window_lose_focus(true); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); @@ -1509,7 +1510,7 @@ ScriptTextEditor::ScriptTextEditor() { convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/capitalize", TTR("Capitalize"), KEY_MASK_SHIFT | KEY_F6), EDIT_CAPITALIZE); convert_case->connect("id_pressed", this, "_edit_option"); - highlighters["Standard"] = NULL; + highlighters[TTR("Standard")] = NULL; highlighter_menu = memnew(PopupMenu); highlighter_menu->set_name("highlighter_menu"); edit_menu->get_popup()->add_child(highlighter_menu); @@ -1520,6 +1521,7 @@ ScriptTextEditor::ScriptTextEditor() { search_menu = memnew(MenuButton); edit_hb->add_child(search_menu); search_menu->set_text(TTR("Search")); + search_menu->set_switch_on_hover(true); search_menu->get_popup()->set_hide_on_window_lose_focus(true); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find"), SEARCH_FIND); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT); diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index 6bc5c77df2..b8d4cf57e3 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -350,9 +350,9 @@ void ShaderEditor::_menu_option(int p_option) { void ShaderEditor::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - } - if (p_what == NOTIFICATION_DRAW) { + if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { + if (is_visible_in_tree()) + shader_editor->get_text_edit()->grab_focus(); } } @@ -389,7 +389,6 @@ void ShaderEditor::_bind_methods() { ClassDB::bind_method("_menu_option", &ShaderEditor::_menu_option); ClassDB::bind_method("_params_changed", &ShaderEditor::_params_changed); ClassDB::bind_method("apply_shaders", &ShaderEditor::apply_shaders); - //ClassDB::bind_method("_close_current_tab",&ShaderEditor::_close_current_tab); } void ShaderEditor::ensure_select_current() { @@ -405,6 +404,11 @@ void ShaderEditor::ensure_select_current() { }*/ } +void ShaderEditor::goto_line_selection(int p_line, int p_begin, int p_end) { + + shader_editor->goto_line_selection(p_line, p_begin, p_end); +} + void ShaderEditor::edit(const Ref<Shader> &p_shader) { if (p_shader.is_null() || !p_shader->is_text_shader()) @@ -527,9 +531,8 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { HBoxContainer *hbc = memnew(HBoxContainer); edit_menu = memnew(MenuButton); - //edit_menu->set_position(Point2(5, -1)); edit_menu->set_text(TTR("Edit")); - + edit_menu->set_switch_on_hover(true); edit_menu->get_popup()->set_hide_on_window_lose_focus(true); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); @@ -549,12 +552,11 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/clone_down"), EDIT_CLONE_DOWN); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/complete_symbol"), EDIT_COMPLETE); - edit_menu->get_popup()->connect("id_pressed", this, "_menu_option"); search_menu = memnew(MenuButton); - //search_menu->set_position(Point2(38, -1)); search_menu->set_text(TTR("Search")); + search_menu->set_switch_on_hover(true); search_menu->get_popup()->set_hide_on_window_lose_focus(true); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find"), SEARCH_FIND); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT); diff --git a/editor/plugins/shader_editor_plugin.h b/editor/plugins/shader_editor_plugin.h index 2ea1562310..46e3dffdd5 100644 --- a/editor/plugins/shader_editor_plugin.h +++ b/editor/plugins/shader_editor_plugin.h @@ -120,6 +120,8 @@ public: void ensure_select_current(); void edit(const Ref<Shader> &p_shader); + void goto_line_selection(int p_line, int p_begin, int p_end); + virtual Size2 get_minimum_size() const { return Size2(0, 200); } void save_external_data(); @@ -143,6 +145,8 @@ public: virtual void make_visible(bool p_visible); virtual void selected_notify(); + ShaderEditor *get_shader_editor() const { return shader_editor; } + virtual void save_external_data(); virtual void apply_changes(); diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index a5563c0497..4fe278d005 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -3238,7 +3238,7 @@ bool SpatialEditorViewport::_create_instance(Node *parent, String &path, const P if (mesh != NULL) { MeshInstance *mesh_instance = memnew(MeshInstance); mesh_instance->set_mesh(mesh); - mesh_instance->set_name(mesh->get_name()); + mesh_instance->set_name(path.get_file().get_basename()); instanced_scene = mesh_instance; } else { if (!scene.is_valid()) { // invalid scene @@ -5475,6 +5475,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { transform_menu = memnew(MenuButton); transform_menu->set_text(TTR("Transform")); + transform_menu->set_switch_on_hover(true); hbc_menu->add_child(transform_menu); p = transform_menu->get_popup(); @@ -5487,6 +5488,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { view_menu = memnew(MenuButton); view_menu->set_text(TTR("View")); + view_menu->set_switch_on_hover(true); hbc_menu->add_child(view_menu); p = view_menu->get_popup(); diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index 40781908fd..82936d63d2 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -598,7 +598,7 @@ bool SpriteFramesEditor::can_drop_data_fw(const Point2 &p_point, const Variant & return false; for (int i = 0; i < files.size(); i++) { - String file = files[0]; + String file = files[i]; String ftype = EditorFileSystem::get_singleton()->get_file_type(file); if (!ClassDB::is_parent_class(ftype, "Texture")) { diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp index 7c3e524d89..aed3a7d503 100644 --- a/editor/plugins/texture_region_editor_plugin.cpp +++ b/editor/plugins/texture_region_editor_plugin.cpp @@ -169,15 +169,24 @@ void TextureRegionEditor::_region_draw() { updating_scroll = true; hscroll->set_min(scroll_rect.position.x); hscroll->set_max(scroll_rect.position.x + scroll_rect.size.x); - hscroll->set_page(edit_draw->get_size().x); - hscroll->set_value(draw_ofs.x); - hscroll->set_step(0.001); + if (ABS(scroll_rect.position.x - (scroll_rect.position.x + scroll_rect.size.x)) <= edit_draw->get_size().x) { + hscroll->hide(); + } else { + hscroll->show(); + hscroll->set_page(edit_draw->get_size().x); + hscroll->set_value(draw_ofs.x); + } vscroll->set_min(scroll_rect.position.y); vscroll->set_max(scroll_rect.position.y + scroll_rect.size.y); - vscroll->set_page(edit_draw->get_size().y); - vscroll->set_value(draw_ofs.y); - vscroll->set_step(0.001); + if (ABS(scroll_rect.position.y - (scroll_rect.position.y + scroll_rect.size.y)) <= edit_draw->get_size().y) { + vscroll->hide(); + draw_ofs.y = scroll_rect.position.y; + } else { + vscroll->show(); + vscroll->set_page(edit_draw->get_size().y); + vscroll->set_value(draw_ofs.y); + } updating_scroll = false; float margins[4]; @@ -299,6 +308,8 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) { undo_redo->add_do_method(atlas_tex.ptr(), "set_region", rect); undo_redo->add_undo_method(atlas_tex.ptr(), "set_region", atlas_tex->get_region()); } + undo_redo->add_do_method(this, "_update_rect"); + undo_redo->add_undo_method(this, "_update_rect"); undo_redo->add_do_method(edit_draw, "update"); undo_redo->add_undo_method(edit_draw, "update"); undo_redo->commit_action(); @@ -336,7 +347,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) { } else if (drag) { if (edited_margin >= 0) { - undo_redo->create_action("Set Margin"); + undo_redo->create_action(TTR("Set Margin")); static Margin m[4] = { MARGIN_TOP, MARGIN_BOTTOM, MARGIN_LEFT, MARGIN_RIGHT }; if (node_ninepatch) { undo_redo->add_do_method(node_ninepatch, "set_patch_margin", m[edited_margin], node_ninepatch->get_patch_margin(m[edited_margin])); @@ -348,7 +359,7 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) { } edited_margin = -1; } else { - undo_redo->create_action("Set Region Rect"); + undo_redo->create_action(TTR("Set Region Rect")); if (node_sprite) { undo_redo->add_do_method(node_sprite, "set_region_rect", node_sprite->get_region_rect()); undo_redo->add_undo_method(node_sprite, "set_region_rect", rect_prev); @@ -364,6 +375,8 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) { } drag_index = -1; } + undo_redo->add_do_method(this, "_update_rect"); + undo_redo->add_undo_method(this, "_update_rect"); undo_redo->add_do_method(edit_draw, "update"); undo_redo->add_undo_method(edit_draw, "update"); undo_redo->commit_action(); @@ -509,10 +522,7 @@ void TextureRegionEditor::_scroll_changed(float) { } void TextureRegionEditor::_set_snap_mode(int p_mode) { - snap_mode_button->get_popup()->set_item_checked(snap_mode, false); snap_mode = p_mode; - snap_mode_button->set_text(snap_mode_button->get_popup()->get_item_text(p_mode)); - snap_mode_button->get_popup()->set_item_checked(snap_mode, true); if (snap_mode == SNAP_GRID) hb_grid->show(); @@ -577,15 +587,26 @@ void TextureRegionEditor::_zoom_out() { } } -void TextureRegionEditor::apply_rect(const Rect2 &rect) { +void TextureRegionEditor::apply_rect(const Rect2 &p_rect) { + if (node_sprite) + node_sprite->set_region_rect(p_rect); + else if (node_ninepatch) + node_ninepatch->set_region_rect(p_rect); + else if (obj_styleBox.is_valid()) + obj_styleBox->set_region_rect(p_rect); + else if (atlas_tex.is_valid()) + atlas_tex->set_region(p_rect); +} + +void TextureRegionEditor::_update_rect() { if (node_sprite) - node_sprite->set_region_rect(rect); + rect = node_sprite->get_region_rect(); else if (node_ninepatch) - node_ninepatch->set_region_rect(rect); + rect = node_ninepatch->get_region_rect(); else if (obj_styleBox.is_valid()) - obj_styleBox->set_region_rect(rect); + rect = obj_styleBox->get_region_rect(); else if (atlas_tex.is_valid()) - atlas_tex->set_region(rect); + rect = atlas_tex->get_region(); } void TextureRegionEditor::_update_autoslice() { @@ -657,6 +678,10 @@ void TextureRegionEditor::_update_autoslice() { void TextureRegionEditor::_notification(int p_what) { switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + edit_draw->add_style_override("panel", get_stylebox("bg", "Tree")); + } break; case NOTIFICATION_READY: { zoom_out->set_icon(get_icon("ZoomLess", "EditorIcons")); zoom_reset->set_icon(get_icon("ZoomReset", "EditorIcons")); @@ -669,7 +694,7 @@ void TextureRegionEditor::_notification(int p_what) { } break; case MainLoop::NOTIFICATION_WM_FOCUS_IN: { // This happens when the user leaves the Editor and returns, - // he/she could have changed the textures, so the cache is cleared + // they could have changed the textures, so the cache is cleared. cache_map.clear(); _edit_region(); } break; @@ -702,6 +727,7 @@ void TextureRegionEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_zoom_in"), &TextureRegionEditor::_zoom_in); ClassDB::bind_method(D_METHOD("_zoom_reset"), &TextureRegionEditor::_zoom_reset); ClassDB::bind_method(D_METHOD("_zoom_out"), &TextureRegionEditor::_zoom_out); + ClassDB::bind_method(D_METHOD("_update_rect"), &TextureRegionEditor::_update_rect); } bool TextureRegionEditor::is_stylebox() { @@ -774,6 +800,9 @@ void TextureRegionEditor::_edit_region() { texture = atlas_tex->get_atlas(); if (texture.is_null()) { + _zoom_reset(); + hscroll->hide(); + vscroll->hide(); edit_draw->update(); return; } @@ -790,15 +819,7 @@ void TextureRegionEditor::_edit_region() { } } - if (node_sprite) - rect = node_sprite->get_region_rect(); - else if (node_ninepatch) - rect = node_ninepatch->get_region_rect(); - else if (obj_styleBox.is_valid()) - rect = obj_styleBox->get_region_rect(); - else if (atlas_tex.is_valid()) - rect = atlas_tex->get_region(); - + _update_rect(); edit_draw->update(); } @@ -826,30 +847,23 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { drag_index = -1; drag = false; - VBoxContainer *main_vb = memnew(VBoxContainer); - add_child(main_vb); - main_vb->set_anchors_and_margins_preset(Control::PRESET_WIDE); HBoxContainer *hb_tools = memnew(HBoxContainer); - main_vb->add_child(hb_tools); - + add_child(hb_tools); hb_tools->add_child(memnew(Label(TTR("Snap Mode:")))); - snap_mode_button = memnew(MenuButton); + snap_mode_button = memnew(OptionButton); hb_tools->add_child(snap_mode_button); - snap_mode_button->set_text(TTR("<None>")); - PopupMenu *p = snap_mode_button->get_popup(); - p->set_hide_on_checkable_item_selection(false); - p->add_radio_check_item(TTR("<None>"), 0); - p->add_radio_check_item(TTR("Pixel Snap"), 1); - p->add_radio_check_item(TTR("Grid Snap"), 2); - p->add_radio_check_item(TTR("Auto Slice"), 3); - p->set_item_checked(0, true); - p->connect("id_pressed", this, "_set_snap_mode"); + snap_mode_button->add_item(TTR("None"), 0); + snap_mode_button->add_item(TTR("Pixel Snap"), 1); + snap_mode_button->add_item(TTR("Grid Snap"), 2); + snap_mode_button->add_item(TTR("Auto Slice"), 3); + snap_mode_button->select(0); + snap_mode_button->connect("item_selected", this, "_set_snap_mode"); + hb_grid = memnew(HBoxContainer); - //hb_tools->add_child(hb_grid); - main_vb->add_child(hb_grid); - hb_grid->add_child(memnew(VSeparator)); + hb_tools->add_child(hb_grid); + hb_grid->add_child(memnew(VSeparator)); hb_grid->add_child(memnew(Label(TTR("Offset:")))); sb_off_x = memnew(SpinBox); @@ -914,42 +928,47 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { hb_grid->hide(); - HBoxContainer *main_hb = memnew(HBoxContainer); - main_vb->add_child(main_hb); - edit_draw = memnew(Control); - main_hb->add_child(edit_draw); - main_hb->set_v_size_flags(SIZE_EXPAND_FILL); - edit_draw->set_h_size_flags(SIZE_EXPAND_FILL); + edit_draw = memnew(Panel); + add_child(edit_draw); + edit_draw->set_v_size_flags(SIZE_EXPAND_FILL); + edit_draw->connect("draw", this, "_region_draw"); + edit_draw->connect("gui_input", this, "_region_input"); + + draw_zoom = 1.0; + edit_draw->set_clip_contents(true); - Control *separator = memnew(Control); - separator->set_h_size_flags(Control::SIZE_EXPAND_FILL); - hb_tools->add_child(separator); + HBoxContainer *zoom_hb = memnew(HBoxContainer); + edit_draw->add_child(zoom_hb); + zoom_hb->set_begin(Point2(5, 5)); zoom_out = memnew(ToolButton); + zoom_out->set_tooltip(TTR("Zoom Out")); zoom_out->connect("pressed", this, "_zoom_out"); - hb_tools->add_child(zoom_out); + zoom_hb->add_child(zoom_out); zoom_reset = memnew(ToolButton); + zoom_out->set_tooltip(TTR("Zoom Reset")); zoom_reset->connect("pressed", this, "_zoom_reset"); - hb_tools->add_child(zoom_reset); + zoom_hb->add_child(zoom_reset); zoom_in = memnew(ToolButton); + zoom_out->set_tooltip(TTR("Zoom In")); zoom_in->connect("pressed", this, "_zoom_in"); - hb_tools->add_child(zoom_in); + zoom_hb->add_child(zoom_in); vscroll = memnew(VScrollBar); - main_hb->add_child(vscroll); + vscroll->set_step(0.001); + edit_draw->add_child(vscroll); + vscroll->set_anchors_and_margins_preset(PRESET_RIGHT_WIDE); vscroll->connect("value_changed", this, "_scroll_changed"); hscroll = memnew(HScrollBar); - main_vb->add_child(hscroll); + hscroll->set_step(0.001); + edit_draw->add_child(hscroll); + hscroll->set_anchors_and_margins_preset(PRESET_BOTTOM_WIDE); + hscroll->set_margin(MARGIN_RIGHT, -vscroll->get_size().x * EDSCALE); hscroll->connect("value_changed", this, "_scroll_changed"); - edit_draw->connect("draw", this, "_region_draw"); - edit_draw->connect("gui_input", this, "_region_input"); - draw_zoom = 1.0; updating_scroll = false; - - edit_draw->set_clip_contents(true); } void TextureRegionEditorPlugin::edit(Object *p_object) { @@ -978,7 +997,6 @@ void TextureRegionEditorPlugin::make_visible(bool p_visible) { Dictionary TextureRegionEditorPlugin::get_state() const { Dictionary state; - state["zoom"] = region_editor->draw_zoom; state["snap_offset"] = region_editor->snap_offset; state["snap_step"] = region_editor->snap_step; state["snap_separation"] = region_editor->snap_separation; @@ -989,10 +1007,6 @@ Dictionary TextureRegionEditorPlugin::get_state() const { void TextureRegionEditorPlugin::set_state(const Dictionary &p_state) { Dictionary state = p_state; - if (state.has("zoom")) { - region_editor->draw_zoom = p_state["zoom"]; - } - if (state.has("snap_step")) { Vector2 s = state["snap_step"]; region_editor->sb_step_x->set_value(s.x); @@ -1016,6 +1030,7 @@ void TextureRegionEditorPlugin::set_state(const Dictionary &p_state) { if (state.has("snap_mode")) { region_editor->_set_snap_mode(state["snap_mode"]); + region_editor->snap_mode_button->select(state["snap_mode"]); } } diff --git a/editor/plugins/texture_region_editor_plugin.h b/editor/plugins/texture_region_editor_plugin.h index 61ef769f89..4f301ea916 100644 --- a/editor/plugins/texture_region_editor_plugin.h +++ b/editor/plugins/texture_region_editor_plugin.h @@ -43,9 +43,9 @@ @author Mariano Suligoy */ -class TextureRegionEditor : public Control { +class TextureRegionEditor : public VBoxContainer { - GDCLASS(TextureRegionEditor, Control); + GDCLASS(TextureRegionEditor, VBoxContainer); enum SnapMode { SNAP_NONE, @@ -55,7 +55,7 @@ class TextureRegionEditor : public Control { }; friend class TextureRegionEditorPlugin; - MenuButton *snap_mode_button; + OptionButton *snap_mode_button; ToolButton *zoom_in; ToolButton *zoom_reset; ToolButton *zoom_out; @@ -66,7 +66,7 @@ class TextureRegionEditor : public Control { SpinBox *sb_off_x; SpinBox *sb_sep_y; SpinBox *sb_sep_x; - Control *edit_draw; + Panel *edit_draw; VScrollBar *vscroll; HScrollBar *hscroll; @@ -111,7 +111,8 @@ class TextureRegionEditor : public Control { void _zoom_in(); void _zoom_reset(); void _zoom_out(); - void apply_rect(const Rect2 &rect); + void apply_rect(const Rect2 &p_rect); + void _update_rect(); void _update_autoslice(); protected: diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp index 213cd2ce1a..1d8a80d3f3 100644 --- a/editor/plugins/tile_map_editor_plugin.cpp +++ b/editor/plugins/tile_map_editor_plugin.cpp @@ -1862,7 +1862,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { toolbar->add_child(tile_info); options = memnew(MenuButton); - options->set_text("Tile Map"); + options->set_text("TileMap"); options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("TileMap", "EditorIcons")); options->set_process_unhandled_key_input(false); diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp index d0e0b3e006..cab9a4297d 100644 --- a/editor/plugins/tile_set_editor_plugin.cpp +++ b/editor/plugins/tile_set_editor_plugin.cpp @@ -172,6 +172,7 @@ Error TileSetEditor::update_library_file(Node *p_base_scene, Ref<TileSet> ml, bo } void TileSetEditor::_bind_methods() { + ClassDB::bind_method("_on_tileset_toolbar_button_pressed", &TileSetEditor::_on_tileset_toolbar_button_pressed); ClassDB::bind_method("_on_textures_added", &TileSetEditor::_on_textures_added); ClassDB::bind_method("_on_tileset_toolbar_confirm", &TileSetEditor::_on_tileset_toolbar_confirm); @@ -184,58 +185,69 @@ void TileSetEditor::_bind_methods() { ClassDB::bind_method("_on_workspace_input", &TileSetEditor::_on_workspace_input); ClassDB::bind_method("_on_tool_clicked", &TileSetEditor::_on_tool_clicked); ClassDB::bind_method("_on_priority_changed", &TileSetEditor::_on_priority_changed); + ClassDB::bind_method("_on_z_index_changed", &TileSetEditor::_on_z_index_changed); ClassDB::bind_method("_on_grid_snap_toggled", &TileSetEditor::_on_grid_snap_toggled); ClassDB::bind_method("_set_snap_step", &TileSetEditor::_set_snap_step); ClassDB::bind_method("_set_snap_off", &TileSetEditor::_set_snap_off); ClassDB::bind_method("_set_snap_sep", &TileSetEditor::_set_snap_sep); + ClassDB::bind_method("_zoom_in", &TileSetEditor::_zoom_in); + ClassDB::bind_method("_zoom_out", &TileSetEditor::_zoom_out); + ClassDB::bind_method("_zoom_reset", &TileSetEditor::_zoom_reset); } void TileSetEditor::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED) { - - tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_icon(get_icon("ToolAddNode", "EditorIcons")); - tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_icon(get_icon("Remove", "EditorIcons")); - tileset_toolbar_tools->set_icon(get_icon("Tools", "EditorIcons")); - - tool_workspacemode[WORKSPACE_EDIT]->set_icon(get_icon("Edit", "EditorIcons")); - tool_workspacemode[WORKSPACE_CREATE_SINGLE]->set_icon(get_icon("AddSingleTile", "EditorIcons")); - tool_workspacemode[WORKSPACE_CREATE_AUTOTILE]->set_icon(get_icon("AddAutotile", "EditorIcons")); - tool_workspacemode[WORKSPACE_CREATE_ATLAS]->set_icon(get_icon("AddAtlasTile", "EditorIcons")); - - tools[TOOL_SELECT]->set_icon(get_icon("ToolSelect", "EditorIcons")); - tools[BITMASK_COPY]->set_icon(get_icon("Duplicate", "EditorIcons")); - tools[BITMASK_PASTE]->set_icon(get_icon("Override", "EditorIcons")); - tools[BITMASK_CLEAR]->set_icon(get_icon("Clear", "EditorIcons")); - tools[SHAPE_NEW_POLYGON]->set_icon(get_icon("CollisionPolygon2D", "EditorIcons")); - tools[SHAPE_DELETE]->set_icon(get_icon("Remove", "EditorIcons")); - tools[SHAPE_KEEP_INSIDE_TILE]->set_icon(get_icon("Snap", "EditorIcons")); - tools[TOOL_GRID_SNAP]->set_icon(get_icon("SnapGrid", "EditorIcons")); - tools[ZOOM_OUT]->set_icon(get_icon("ZoomLess", "EditorIcons")); - tools[ZOOM_1]->set_icon(get_icon("ZoomReset", "EditorIcons")); - tools[ZOOM_IN]->set_icon(get_icon("ZoomMore", "EditorIcons")); - tools[VISIBLE_INFO]->set_icon(get_icon("InformationSign", "EditorIcons")); - - tool_editmode[EDITMODE_REGION]->set_icon(get_icon("RegionEdit", "EditorIcons")); - tool_editmode[EDITMODE_COLLISION]->set_icon(get_icon("StaticBody2D", "EditorIcons")); - tool_editmode[EDITMODE_OCCLUSION]->set_icon(get_icon("LightOccluder2D", "EditorIcons")); - tool_editmode[EDITMODE_NAVIGATION]->set_icon(get_icon("Navigation2D", "EditorIcons")); - tool_editmode[EDITMODE_BITMASK]->set_icon(get_icon("PackedDataContainer", "EditorIcons")); - tool_editmode[EDITMODE_PRIORITY]->set_icon(get_icon("MaterialPreviewLight1", "EditorIcons")); - tool_editmode[EDITMODE_ICON]->set_icon(get_icon("LargeTexture", "EditorIcons")); + + switch (p_what) { + case NOTIFICATION_READY: { + + add_constant_override("autohide", 1); // Fixes the dragger always showing up. + } break; + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { + + tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_icon(get_icon("ToolAddNode", "EditorIcons")); + tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_icon(get_icon("Remove", "EditorIcons")); + tileset_toolbar_tools->set_icon(get_icon("Tools", "EditorIcons")); + + tool_workspacemode[WORKSPACE_EDIT]->set_icon(get_icon("Edit", "EditorIcons")); + tool_workspacemode[WORKSPACE_CREATE_SINGLE]->set_icon(get_icon("AddSingleTile", "EditorIcons")); + tool_workspacemode[WORKSPACE_CREATE_AUTOTILE]->set_icon(get_icon("AddAutotile", "EditorIcons")); + tool_workspacemode[WORKSPACE_CREATE_ATLAS]->set_icon(get_icon("AddAtlasTile", "EditorIcons")); + + tools[TOOL_SELECT]->set_icon(get_icon("ToolSelect", "EditorIcons")); + tools[BITMASK_COPY]->set_icon(get_icon("Duplicate", "EditorIcons")); + tools[BITMASK_PASTE]->set_icon(get_icon("Override", "EditorIcons")); + tools[BITMASK_CLEAR]->set_icon(get_icon("Clear", "EditorIcons")); + tools[SHAPE_NEW_POLYGON]->set_icon(get_icon("CollisionPolygon2D", "EditorIcons")); + tools[SHAPE_DELETE]->set_icon(get_icon("Remove", "EditorIcons")); + tools[SHAPE_KEEP_INSIDE_TILE]->set_icon(get_icon("Snap", "EditorIcons")); + tools[TOOL_GRID_SNAP]->set_icon(get_icon("SnapGrid", "EditorIcons")); + tools[ZOOM_OUT]->set_icon(get_icon("ZoomLess", "EditorIcons")); + tools[ZOOM_1]->set_icon(get_icon("ZoomReset", "EditorIcons")); + tools[ZOOM_IN]->set_icon(get_icon("ZoomMore", "EditorIcons")); + tools[VISIBLE_INFO]->set_icon(get_icon("InformationSign", "EditorIcons")); + + tool_editmode[EDITMODE_REGION]->set_icon(get_icon("RegionEdit", "EditorIcons")); + tool_editmode[EDITMODE_COLLISION]->set_icon(get_icon("StaticBody2D", "EditorIcons")); + tool_editmode[EDITMODE_OCCLUSION]->set_icon(get_icon("LightOccluder2D", "EditorIcons")); + tool_editmode[EDITMODE_NAVIGATION]->set_icon(get_icon("Navigation2D", "EditorIcons")); + tool_editmode[EDITMODE_BITMASK]->set_icon(get_icon("PackedDataContainer", "EditorIcons")); + tool_editmode[EDITMODE_PRIORITY]->set_icon(get_icon("MaterialPreviewLight1", "EditorIcons")); + tool_editmode[EDITMODE_ICON]->set_icon(get_icon("LargeTexture", "EditorIcons")); + tool_editmode[EDITMODE_Z_INDEX]->set_icon(get_icon("Sort", "EditorIcons")); + + scroll->add_style_override("bg", get_stylebox("bg", "Tree")); + } break; } } TileSetEditor::TileSetEditor(EditorNode *p_editor) { editor = p_editor; - set_name("Tile Set Bottom Editor"); - - HSplitContainer *split = memnew(HSplitContainer); - split->set_anchors_and_margins_preset(PRESET_WIDE, PRESET_MODE_MINSIZE, 10); - add_child(split); + current_tile = -1; VBoxContainer *left_container = memnew(VBoxContainer); - split->add_child(left_container); + add_child(left_container); texture_list = memnew(ItemList); left_container->add_child(texture_list); @@ -247,30 +259,22 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { left_container->add_child(tileset_toolbar_container); tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE] = memnew(ToolButton); - Vector<Variant> p; - p.push_back((int)TOOL_TILESET_ADD_TEXTURE); - tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->connect("pressed", this, "_on_tileset_toolbar_button_pressed", p); + tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->connect("pressed", this, "_on_tileset_toolbar_button_pressed", varray(TOOL_TILESET_ADD_TEXTURE)); tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]); - tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_tooltip(TTR("Add Texture(s) to TileSet")); + tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_tooltip(TTR("Add Texture(s) to TileSet.")); tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE] = memnew(ToolButton); - p = Vector<Variant>(); - p.push_back((int)TOOL_TILESET_REMOVE_TEXTURE); - tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->connect("pressed", this, "_on_tileset_toolbar_button_pressed", p); + tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->connect("pressed", this, "_on_tileset_toolbar_button_pressed", varray(TOOL_TILESET_REMOVE_TEXTURE)); tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]); - tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_tooltip(TTR("Remove current Texture from TileSet")); + tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_tooltip(TTR("Remove selected Texture from TileSet.")); Control *toolbar_separator = memnew(Control); toolbar_separator->set_h_size_flags(Control::SIZE_EXPAND_FILL); tileset_toolbar_container->add_child(toolbar_separator); tileset_toolbar_tools = memnew(MenuButton); - tileset_toolbar_tools->set_text("Tools"); - p = Vector<Variant>(); - p.push_back((int)TOOL_TILESET_CREATE_SCENE); + tileset_toolbar_tools->set_text(TTR("Tools")); tileset_toolbar_tools->get_popup()->add_item(TTR("Create from Scene"), TOOL_TILESET_CREATE_SCENE); - p = Vector<Variant>(); - p.push_back((int)TOOL_TILESET_MERGE_SCENE); tileset_toolbar_tools->get_popup()->add_item(TTR("Merge from Scene"), TOOL_TILESET_MERGE_SCENE); tileset_toolbar_tools->get_popup()->connect("id_pressed", this, "_on_tileset_toolbar_button_pressed"); @@ -279,7 +283,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { //--------------- VBoxContainer *right_container = memnew(VBoxContainer); right_container->set_v_size_flags(SIZE_EXPAND_FILL); - split->add_child(right_container); + add_child(right_container); dragging_point = -1; creating_shape = false; @@ -296,21 +300,18 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { Ref<ButtonGroup> g(memnew(ButtonGroup)); String workspace_label[WORKSPACE_MODE_MAX] = { "Edit", "New Single Tile", "New Autotile", "New Atlas" }; - for (int i = 0; i < (int)WORKSPACE_MODE_MAX; i++) { tool_workspacemode[i] = memnew(Button); - tool_workspacemode[i]->set_text(workspace_label[i]); + tool_workspacemode[i]->set_text(TTR(workspace_label[i])); tool_workspacemode[i]->set_toggle_mode(true); tool_workspacemode[i]->set_button_group(g); - Vector<Variant> p; - p.push_back(i); - tool_workspacemode[i]->connect("pressed", this, "_on_workspace_mode_changed", p); + tool_workspacemode[i]->connect("pressed", this, "_on_workspace_mode_changed", varray(i)); tool_hb->add_child(tool_workspacemode[i]); } Control *spacer = memnew(Control); spacer->set_h_size_flags(Control::SIZE_EXPAND_FILL); tool_hb->add_child(spacer); - tool_hb->move_child(spacer, (int)WORKSPACE_CREATE_SINGLE); + tool_hb->move_child(spacer, WORKSPACE_CREATE_SINGLE); tool_workspacemode[WORKSPACE_EDIT]->set_pressed(true); workspace_mode = WORKSPACE_EDIT; @@ -321,16 +322,13 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tool_hb = memnew(HBoxContainer); g = Ref<ButtonGroup>(memnew(ButtonGroup)); - String label[EDITMODE_MAX] = { "Region", "Collision", "Occlusion", "Navigation", "Bitmask", "Priority", "Icon" }; - + String label[EDITMODE_MAX] = { "Region", "Collision", "Occlusion", "Navigation", "Bitmask", "Priority", "Icon", "Z Index" }; for (int i = 0; i < (int)EDITMODE_MAX; i++) { tool_editmode[i] = memnew(Button); tool_editmode[i]->set_text(label[i]); tool_editmode[i]->set_toggle_mode(true); tool_editmode[i]->set_button_group(g); - Vector<Variant> p; - p.push_back(i); - tool_editmode[i]->connect("pressed", this, "_on_edit_mode_changed", p); + tool_editmode[i]->connect("pressed", this, "_on_edit_mode_changed", varray(i)); tool_hb->add_child(tool_editmode[i]); } tool_editmode[EDITMODE_COLLISION]->set_pressed(true); @@ -343,42 +341,38 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { toolbar = memnew(HBoxContainer); Ref<ButtonGroup> tg(memnew(ButtonGroup)); - p = Vector<Variant>(); tools[TOOL_SELECT] = memnew(ToolButton); toolbar->add_child(tools[TOOL_SELECT]); - tools[TOOL_SELECT]->set_tooltip(TTR("Select sub-tile to use as icon, this will be also used on invalid autotile bindings.")); tools[TOOL_SELECT]->set_toggle_mode(true); tools[TOOL_SELECT]->set_button_group(tg); tools[TOOL_SELECT]->set_pressed(true); - p.push_back((int)TOOL_SELECT); - tools[TOOL_SELECT]->connect("pressed", this, "_on_tool_clicked", p); + tools[TOOL_SELECT]->connect("pressed", this, "_on_tool_clicked", varray(TOOL_SELECT)); + separator_bitmask = memnew(VSeparator); + toolbar->add_child(separator_bitmask); tools[BITMASK_COPY] = memnew(ToolButton); - p.push_back((int)BITMASK_COPY); - tools[BITMASK_COPY]->connect("pressed", this, "_on_tool_clicked", p); + tools[BITMASK_COPY]->set_tooltip(TTR("Copy bitmask.")); + tools[BITMASK_COPY]->connect("pressed", this, "_on_tool_clicked", varray(BITMASK_COPY)); toolbar->add_child(tools[BITMASK_COPY]); tools[BITMASK_PASTE] = memnew(ToolButton); - p = Vector<Variant>(); - p.push_back((int)BITMASK_PASTE); - tools[BITMASK_PASTE]->connect("pressed", this, "_on_tool_clicked", p); + tools[BITMASK_PASTE]->set_tooltip(TTR("Paste bitmask.")); + tools[BITMASK_PASTE]->connect("pressed", this, "_on_tool_clicked", varray(BITMASK_PASTE)); toolbar->add_child(tools[BITMASK_PASTE]); tools[BITMASK_CLEAR] = memnew(ToolButton); - p = Vector<Variant>(); - p.push_back((int)BITMASK_CLEAR); - tools[BITMASK_CLEAR]->connect("pressed", this, "_on_tool_clicked", p); + tools[BITMASK_CLEAR]->set_tooltip(TTR("Erase bitmask.")); + tools[BITMASK_CLEAR]->connect("pressed", this, "_on_tool_clicked", varray(BITMASK_CLEAR)); toolbar->add_child(tools[BITMASK_CLEAR]); tools[SHAPE_NEW_POLYGON] = memnew(ToolButton); toolbar->add_child(tools[SHAPE_NEW_POLYGON]); tools[SHAPE_NEW_POLYGON]->set_toggle_mode(true); tools[SHAPE_NEW_POLYGON]->set_button_group(tg); + tools[SHAPE_NEW_POLYGON]->set_tooltip(TTR("Create a new polygon.")); separator_delete = memnew(VSeparator); toolbar->add_child(separator_delete); tools[SHAPE_DELETE] = memnew(ToolButton); - p = Vector<Variant>(); - p.push_back((int)SHAPE_DELETE); - tools[SHAPE_DELETE]->connect("pressed", this, "_on_tool_clicked", p); + tools[SHAPE_DELETE]->connect("pressed", this, "_on_tool_clicked", varray(SHAPE_DELETE)); toolbar->add_child(tools[SHAPE_DELETE]); separator_grid = memnew(VSeparator); @@ -386,9 +380,11 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tools[SHAPE_KEEP_INSIDE_TILE] = memnew(ToolButton); tools[SHAPE_KEEP_INSIDE_TILE]->set_toggle_mode(true); tools[SHAPE_KEEP_INSIDE_TILE]->set_pressed(true); + tools[SHAPE_KEEP_INSIDE_TILE]->set_tooltip(TTR("Keep polygon inside region Rect.")); toolbar->add_child(tools[SHAPE_KEEP_INSIDE_TILE]); tools[TOOL_GRID_SNAP] = memnew(ToolButton); tools[TOOL_GRID_SNAP]->set_toggle_mode(true); + tools[TOOL_GRID_SNAP]->set_tooltip(TTR("Enable snap and show grid (configurable via the Inspector).")); tools[TOOL_GRID_SNAP]->connect("toggled", this, "_on_grid_snap_toggled"); toolbar->add_child(tools[TOOL_GRID_SNAP]); @@ -401,32 +397,35 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { spin_priority->hide(); toolbar->add_child(spin_priority); + spin_z_index = memnew(SpinBox); + spin_z_index->set_min(VS::CANVAS_ITEM_Z_MIN); + spin_z_index->set_max(VS::CANVAS_ITEM_Z_MAX); + spin_z_index->set_step(1); + spin_z_index->set_custom_minimum_size(Size2(100, 0)); + spin_z_index->connect("value_changed", this, "_on_z_index_changed"); + spin_z_index->hide(); + toolbar->add_child(spin_z_index); + Control *separator = memnew(Control); separator->set_h_size_flags(SIZE_EXPAND_FILL); toolbar->add_child(separator); tools[ZOOM_OUT] = memnew(ToolButton); - p = Vector<Variant>(); - p.push_back((int)ZOOM_OUT); - tools[ZOOM_OUT]->connect("pressed", this, "_on_tool_clicked", p); + tools[ZOOM_OUT]->connect("pressed", this, "_zoom_out"); toolbar->add_child(tools[ZOOM_OUT]); tools[ZOOM_OUT]->set_tooltip(TTR("Zoom Out")); tools[ZOOM_1] = memnew(ToolButton); - p = Vector<Variant>(); - p.push_back((int)ZOOM_1); - tools[ZOOM_1]->connect("pressed", this, "_on_tool_clicked", p); + tools[ZOOM_1]->connect("pressed", this, "_zoom_reset"); toolbar->add_child(tools[ZOOM_1]); - tools[ZOOM_1]->set_tooltip(TTR("Reset Zoom")); + tools[ZOOM_1]->set_tooltip(TTR("Zoom Reset")); tools[ZOOM_IN] = memnew(ToolButton); - p = Vector<Variant>(); - p.push_back((int)ZOOM_IN); - tools[ZOOM_IN]->connect("pressed", this, "_on_tool_clicked", p); + tools[ZOOM_IN]->connect("pressed", this, "_zoom_in"); toolbar->add_child(tools[ZOOM_IN]); tools[ZOOM_IN]->set_tooltip(TTR("Zoom In")); tools[VISIBLE_INFO] = memnew(ToolButton); tools[VISIBLE_INFO]->set_toggle_mode(true); - tools[VISIBLE_INFO]->set_tooltip(TTR("Display tile's names (hold Alt Key)")); + tools[VISIBLE_INFO]->set_tooltip(TTR("Display Tile Names (Hold Alt Key)")); toolbar->add_child(tools[VISIBLE_INFO]); main_vb->add_child(toolbar); @@ -600,10 +599,14 @@ void TileSetEditor::_on_textures_added(const PoolStringArray &p_paths) { } void TileSetEditor::_on_edit_mode_changed(int p_edit_mode) { + draw_handles = false; + creating_shape = false; edit_mode = (EditMode)p_edit_mode; switch (edit_mode) { case EDITMODE_REGION: { tools[TOOL_SELECT]->show(); + + separator_bitmask->hide(); tools[BITMASK_COPY]->hide(); tools[BITMASK_PASTE]->hide(); tools[BITMASK_CLEAR]->hide(); @@ -623,30 +626,16 @@ void TileSetEditor::_on_edit_mode_changed(int p_edit_mode) { tools[TOOL_SELECT]->set_pressed(true); tools[TOOL_SELECT]->set_tooltip(TTR("Drag handles to edit Rect.\nClick on another Tile to edit it.")); + tools[SHAPE_DELETE]->set_tooltip(TTR("Delete selected Rect.")); spin_priority->hide(); - } break; - case EDITMODE_BITMASK: { - tools[TOOL_SELECT]->show(); - tools[BITMASK_COPY]->show(); - tools[BITMASK_PASTE]->show(); - tools[BITMASK_CLEAR]->show(); - tools[SHAPE_NEW_POLYGON]->hide(); - - separator_delete->hide(); - tools[SHAPE_DELETE]->hide(); - - separator_grid->hide(); - tools[SHAPE_KEEP_INSIDE_TILE]->hide(); - tools[TOOL_GRID_SNAP]->hide(); - - tools[TOOL_SELECT]->set_pressed(true); - tools[TOOL_SELECT]->set_tooltip(TTR("LMB: set bit on.\nRMB: set bit off.\nClick on another Tile to edit it.")); - spin_priority->hide(); + spin_z_index->hide(); } break; case EDITMODE_COLLISION: case EDITMODE_NAVIGATION: case EDITMODE_OCCLUSION: { tools[TOOL_SELECT]->show(); + + separator_bitmask->hide(); tools[BITMASK_COPY]->hide(); tools[BITMASK_PASTE]->hide(); tools[BITMASK_CLEAR]->hide(); @@ -660,11 +649,38 @@ void TileSetEditor::_on_edit_mode_changed(int p_edit_mode) { tools[TOOL_GRID_SNAP]->show(); tools[TOOL_SELECT]->set_tooltip(TTR("Select current edited sub-tile.\nClick on another Tile to edit it.")); + tools[SHAPE_DELETE]->set_tooltip(TTR("Delete polygon.")); spin_priority->hide(); + spin_z_index->hide(); + select_coord(edited_shape_coord); } break; - default: { + case EDITMODE_BITMASK: { tools[TOOL_SELECT]->show(); + + separator_bitmask->show(); + tools[BITMASK_COPY]->show(); + tools[BITMASK_PASTE]->show(); + tools[BITMASK_CLEAR]->show(); + tools[SHAPE_NEW_POLYGON]->hide(); + + separator_delete->hide(); + tools[SHAPE_DELETE]->hide(); + + separator_grid->hide(); + tools[SHAPE_KEEP_INSIDE_TILE]->hide(); + tools[TOOL_GRID_SNAP]->hide(); + + tools[TOOL_SELECT]->set_pressed(true); + tools[TOOL_SELECT]->set_tooltip(TTR("LMB: Set bit on.\nRMB: Set bit off.\nClick on another Tile to edit it.")); + spin_priority->hide(); + } break; + case EDITMODE_Z_INDEX: + case EDITMODE_PRIORITY: + case EDITMODE_ICON: { + tools[TOOL_SELECT]->show(); + + separator_bitmask->hide(); tools[BITMASK_COPY]->hide(); tools[BITMASK_PASTE]->hide(); tools[BITMASK_CLEAR]->hide(); @@ -680,11 +696,18 @@ void TileSetEditor::_on_edit_mode_changed(int p_edit_mode) { if (edit_mode == EDITMODE_ICON) { tools[TOOL_SELECT]->set_tooltip(TTR("Select sub-tile to use as icon, this will be also used on invalid autotile bindings.\nClick on another Tile to edit it.")); spin_priority->hide(); - } else { + spin_z_index->hide(); + } else if (edit_mode == EDITMODE_PRIORITY) { tools[TOOL_SELECT]->set_tooltip(TTR("Select sub-tile to change its priority.\nClick on another Tile to edit it.")); spin_priority->show(); + spin_z_index->hide(); + } else { + tools[TOOL_SELECT]->set_tooltip(TTR("Select sub-tile to change its z index.\nClick on another Tile to edit it.")); + spin_priority->hide(); + spin_z_index->show(); } } break; + default: {} } workspace->update(); } @@ -706,15 +729,16 @@ void TileSetEditor::_on_workspace_mode_changed(int p_workspace_mode) { void TileSetEditor::_on_workspace_draw() { - const Color COLOR_AUTOTILE = Color(0.266373, 0.565288, 0.988281); - const Color COLOR_SINGLE = Color(0.988281, 0.909323, 0.266373); - const Color COLOR_ATLAS = Color(0.78653, 0.812835, 0.832031); - - if (tileset.is_null()) - return; - if (!get_current_texture().is_valid()) + if (tileset.is_null() || !get_current_texture().is_valid()) return; + const Color COLOR_AUTOTILE = Color(0.3, 0.6, 1); + const Color COLOR_SINGLE = Color(1, 1, 0.3); + const Color COLOR_ATLAS = Color(0.8, 0.8, 0.8); + const Color COLOR_SUBDIVISION = Color(0.3, 0.7, 0.6); + + draw_handles = false; + draw_highlight_current_tile(); draw_grid_snap(); @@ -808,10 +832,12 @@ void TileSetEditor::_on_workspace_draw() { spin_priority->set_suffix(" / " + String::num(total, 0)); draw_highlight_subtile(edited_shape_coord, queue_others); } break; + case EDITMODE_Z_INDEX: { + spin_z_index->set_value(tileset->autotile_get_z_index(get_current_tile(), edited_shape_coord)); + draw_highlight_subtile(edited_shape_coord); + } break; default: {} } - - draw_tile_subdivision(get_current_tile(), Color(0.347214, 0.722656, 0.617063)); } RID current_texture_rid = get_current_texture()->get_rid(); @@ -819,7 +845,7 @@ void TileSetEditor::_on_workspace_draw() { tileset->get_tile_list(tiles); for (List<int>::Element *E = tiles->front(); E; E = E->next()) { int t_id = E->get(); - if (tileset->tile_get_texture(t_id)->get_rid() == current_texture_rid && (t_id != get_current_tile() || edit_mode != EDITMODE_REGION)) { + if (tileset->tile_get_texture(t_id)->get_rid() == current_texture_rid && (t_id != get_current_tile() || edit_mode != EDITMODE_REGION || workspace_mode != WORKSPACE_EDIT)) { Rect2i region = tileset->tile_get_region(t_id); region.position += WORKSPACE_MARGIN; Color c; @@ -829,10 +855,11 @@ void TileSetEditor::_on_workspace_draw() { c = COLOR_AUTOTILE; else if (tileset->tile_get_tile_mode(t_id) == TileSet::ATLAS_TILE) c = COLOR_ATLAS; - draw_tile_subdivision(t_id, Color(0.347214, 0.722656, 0.617063, 0.5)); + draw_tile_subdivision(t_id, COLOR_SUBDIVISION); workspace->draw_rect(region, c, false); } } + if (edit_mode == EDITMODE_REGION) { if (workspace_mode != WORKSPACE_EDIT) { Rect2i region = edited_region; @@ -854,6 +881,12 @@ void TileSetEditor::_on_workspace_draw() { region = tileset->tile_get_region(t_id); region.position += WORKSPACE_MARGIN; } + + if (draw_edited_region) + draw_edited_region_subdivision(); + else + draw_tile_subdivision(t_id, COLOR_SUBDIVISION); + Color c; if (tileset->tile_get_tile_mode(t_id) == TileSet::SINGLE_TILE) c = COLOR_SINGLE; @@ -861,13 +894,10 @@ void TileSetEditor::_on_workspace_draw() { c = COLOR_AUTOTILE; else if (tileset->tile_get_tile_mode(t_id) == TileSet::ATLAS_TILE) c = COLOR_ATLAS; - if (draw_edited_region) - draw_edited_region_subdivision(); - else - draw_tile_subdivision(t_id, Color(0.347214, 0.722656, 0.617063, 1)); workspace->draw_rect(region, c, false); } } + workspace_overlay->update(); } @@ -887,9 +917,7 @@ void TileSetEditor::_on_workspace_process() { void TileSetEditor::_on_workspace_overlay_draw() { - if (!tileset.is_valid()) - return; - if (!get_current_texture().is_valid()) + if (!tileset.is_valid() || !get_current_texture().is_valid()) return; const Color COLOR_AUTOTILE = Color(0.266373, 0.565288, 0.988281); @@ -939,9 +967,8 @@ void TileSetEditor::_on_workspace_overlay_draw() { #define MIN_DISTANCE_SQUARED 6 void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) { - if (tileset.is_null()) - return; - if (!get_current_texture().is_valid()) + + if (tileset.is_null() || !get_current_texture().is_valid()) return; static bool dragging; @@ -979,11 +1006,9 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) { } // Mouse Wheel Event - const int _mouse_button_index = mb->get_button_index(); - if (_mouse_button_index == BUTTON_WHEEL_UP && mb->get_control()) { + if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed() && mb->get_control()) { _zoom_in(); - - } else if (_mouse_button_index == BUTTON_WHEEL_DOWN && mb->get_control()) { + } else if (mb->get_button_index() == BUTTON_WHEEL_DOWN && mb->is_pressed() && mb->get_control()) { _zoom_out(); } } @@ -1032,10 +1057,14 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) { tileset->tile_set_tile_mode(t_id, workspace_mode == WORKSPACE_CREATE_AUTOTILE ? TileSet::AUTO_TILE : TileSet::ATLAS_TILE); } set_current_tile(t_id); + tool_workspacemode[WORKSPACE_EDIT]->set_pressed(true); + tool_editmode[EDITMODE_COLLISION]->set_pressed(true); + edit_mode = EDITMODE_COLLISION; _on_workspace_mode_changed(WORKSPACE_EDIT); } } + edited_region = Rect2(); workspace->update(); workspace_overlay->update(); return; @@ -1201,7 +1230,8 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) { case EDITMODE_COLLISION: case EDITMODE_OCCLUSION: case EDITMODE_NAVIGATION: - case EDITMODE_PRIORITY: { + case EDITMODE_PRIORITY: + case EDITMODE_Z_INDEX: { Vector2 shape_anchor = Vector2(0, 0); if (tileset->tile_get_tile_mode(get_current_tile()) == TileSet::AUTO_TILE || tileset->tile_get_tile_mode(get_current_tile()) == TileSet::ATLAS_TILE) { shape_anchor = edited_shape_coord; @@ -1416,6 +1446,7 @@ void TileSetEditor::_on_tool_clicked(int p_tool) { case EDITMODE_REGION: { if (workspace_mode == WORKSPACE_EDIT && get_current_tile() >= 0) { tileset->remove_tile(get_current_tile()); + set_current_tile(-1); workspace->update(); workspace_overlay->update(); } @@ -1461,12 +1492,6 @@ void TileSetEditor::_on_tool_clicked(int p_tool) { default: {} } } - } else if (p_tool == ZOOM_OUT) { - _zoom_out(); - } else if (p_tool == ZOOM_1) { - _reset_zoom(); - } else if (p_tool == ZOOM_IN) { - _zoom_in(); } else if (p_tool == TOOL_SELECT) { if (creating_shape) { // Cancel Creation @@ -1482,6 +1507,11 @@ void TileSetEditor::_on_priority_changed(float val) { workspace->update(); } +void TileSetEditor::_on_z_index_changed(float val) { + tileset->autotile_set_z_index(get_current_tile(), edited_shape_coord, (int)val); + workspace->update(); +} + void TileSetEditor::_on_grid_snap_toggled(bool p_val) { helper->set_snap_options_visible(p_val); workspace->update(); @@ -1524,7 +1554,7 @@ void TileSetEditor::_zoom_out() { workspace_overlay->set_custom_minimum_size(workspace->get_rect().size * scale); } } -void TileSetEditor::_reset_zoom() { +void TileSetEditor::_zoom_reset() { workspace->set_scale(Vector2(1, 1)); workspace_container->set_custom_minimum_size(workspace->get_rect().size); workspace_overlay->set_custom_minimum_size(workspace->get_rect().size); @@ -1532,20 +1562,32 @@ void TileSetEditor::_reset_zoom() { void TileSetEditor::draw_highlight_current_tile() { - if (get_current_tile() >= 0) { - Rect2 region = tileset->tile_get_region(get_current_tile()); - region.position += WORKSPACE_MARGIN; - workspace->draw_rect(Rect2(0, 0, workspace->get_rect().size.x, region.position.y), Color(0.3, 0.3, 0.3, 0.3)); - workspace->draw_rect(Rect2(0, region.position.y, region.position.x, region.size.y), Color(0.3, 0.3, 0.3, 0.3)); - workspace->draw_rect(Rect2(region.position.x + region.size.x, region.position.y, workspace->get_rect().size.x - region.position.x - region.size.x, region.size.y), Color(0.3, 0.3, 0.3, 0.3)); - workspace->draw_rect(Rect2(0, region.position.y + region.size.y, workspace->get_rect().size.x, workspace->get_rect().size.y - region.size.y - region.position.y), Color(0.3, 0.3, 0.3, 0.3)); + Color shadow_color = Color(0.3, 0.3, 0.3, 0.3); + if ((workspace_mode == WORKSPACE_EDIT && get_current_tile() >= 0) || !edited_region.has_no_area()) { + Rect2 region; + if (edited_region.has_no_area()) { + region = tileset->tile_get_region(get_current_tile()); + region.position += WORKSPACE_MARGIN; + } else { + region = edited_region; + } + + if (region.position.y >= 0) + workspace->draw_rect(Rect2(0, 0, workspace->get_rect().size.x, region.position.y), shadow_color); + if (region.position.x >= 0) + workspace->draw_rect(Rect2(0, MAX(0, region.position.y), region.position.x, MIN(workspace->get_rect().size.y - region.position.y, MIN(region.size.y, region.position.y + region.size.y))), shadow_color); + if (region.position.x + region.size.x <= workspace->get_rect().size.x) + workspace->draw_rect(Rect2(region.position.x + region.size.x, MAX(0, region.position.y), workspace->get_rect().size.x - region.position.x - region.size.x, MIN(workspace->get_rect().size.y - region.position.y, MIN(region.size.y, region.position.y + region.size.y))), shadow_color); + if (region.position.y + region.size.y <= workspace->get_rect().size.y) + workspace->draw_rect(Rect2(0, region.position.y + region.size.y, workspace->get_rect().size.x, workspace->get_rect().size.y - region.size.y - region.position.y), shadow_color); } else { - workspace->draw_rect(Rect2(Point2(0, 0), workspace->get_rect().size), Color(0.3, 0.3, 0.3, 0.3)); + workspace->draw_rect(Rect2(Point2(0, 0), workspace->get_rect().size), shadow_color); } } void TileSetEditor::draw_highlight_subtile(Vector2 coord, const Vector<Vector2> &other_highlighted) { + Color shadow_color = Color(0.3, 0.3, 0.3, 0.3); Vector2 size = tileset->autotile_get_size(get_current_tile()); int spacing = tileset->autotile_get_spacing(get_current_tile()); Rect2 region = tileset->tile_get_region(get_current_tile()); @@ -1553,10 +1595,16 @@ void TileSetEditor::draw_highlight_subtile(Vector2 coord, const Vector<Vector2> coord.y *= (size.y + spacing); coord += region.position; coord += WORKSPACE_MARGIN; - workspace->draw_rect(Rect2(0, 0, workspace->get_rect().size.x, coord.y), Color(0.3, 0.3, 0.3, 0.3)); - workspace->draw_rect(Rect2(0, coord.y, coord.x, size.y), Color(0.3, 0.3, 0.3, 0.3)); - workspace->draw_rect(Rect2(coord.x + size.x, coord.y, workspace->get_rect().size.x - coord.x - size.x, size.y), Color(0.3, 0.3, 0.3, 0.3)); - workspace->draw_rect(Rect2(0, coord.y + size.y, workspace->get_rect().size.x, workspace->get_rect().size.y - size.y - coord.y), Color(0.3, 0.3, 0.3, 0.3)); + + if (coord.y >= 0) + workspace->draw_rect(Rect2(0, 0, workspace->get_rect().size.x, coord.y), shadow_color); + if (coord.x >= 0) + workspace->draw_rect(Rect2(0, MAX(0, coord.y), coord.x, MIN(workspace->get_rect().size.y - coord.y, MIN(size.y, coord.y + size.y))), shadow_color); + if (coord.x + size.x <= workspace->get_rect().size.x) + workspace->draw_rect(Rect2(coord.x + size.x, MAX(0, coord.y), workspace->get_rect().size.x - coord.x - size.x, MIN(workspace->get_rect().size.y - coord.y, MIN(size.y, coord.y + size.y))), shadow_color); + if (coord.y + size.y <= workspace->get_rect().size.y) + workspace->draw_rect(Rect2(0, coord.y + size.y, workspace->get_rect().size.x, workspace->get_rect().size.y - size.y - coord.y), shadow_color); + coord += Vector2(1, 1) / workspace->get_scale().x; workspace->draw_rect(Rect2(coord, size - Vector2(2, 2) / workspace->get_scale().x), Color(1, 0, 0), false); for (int i = 0; i < other_highlighted.size(); i++) { @@ -1576,35 +1624,35 @@ void TileSetEditor::draw_tile_subdivision(int p_id, Color p_color) const { Rect2 region = tileset->tile_get_region(p_id); Size2 size = tileset->autotile_get_size(p_id); int spacing = tileset->autotile_get_spacing(p_id); - float j = 0; + float j = size.x; + while (j < region.size.x) { - j += size.x; if (spacing <= 0) { workspace->draw_line(region.position + WORKSPACE_MARGIN + Point2(j, 0), region.position + WORKSPACE_MARGIN + Point2(j, region.size.y), c); } else { workspace->draw_rect(Rect2(region.position + WORKSPACE_MARGIN + Point2(j, 0), Size2(spacing, region.size.y)), c); } - j += spacing; + j += spacing + size.x; } - j = 0; + j = size.y; while (j < region.size.y) { - j += size.y; if (spacing <= 0) { workspace->draw_line(region.position + WORKSPACE_MARGIN + Point2(0, j), region.position + WORKSPACE_MARGIN + Point2(region.size.x, j), c); } else { workspace->draw_rect(Rect2(region.position + WORKSPACE_MARGIN + Point2(0, j), Size2(region.size.x, spacing)), c); } - j += spacing; + j += spacing + size.y; } } } void TileSetEditor::draw_edited_region_subdivision() const { - Color c = Color(0.347214, 0.722656, 0.617063, 1); + Color c = Color(0.3, 0.7, 0.6); Rect2 region = edited_region; Size2 size; int spacing; bool draw; + if (workspace_mode == WORKSPACE_EDIT) { int p_id = get_current_tile(); size = tileset->autotile_get_size(p_id); @@ -1615,66 +1663,72 @@ void TileSetEditor::draw_edited_region_subdivision() const { spacing = snap_separation.x; draw = workspace_mode != WORKSPACE_CREATE_SINGLE; } - if (draw) { - float j = 0; + if (draw) { + float j = size.x; while (j < region.size.x) { - j += size.x; if (spacing <= 0) { workspace->draw_line(region.position + Point2(j, 0), region.position + Point2(j, region.size.y), c); } else { workspace->draw_rect(Rect2(region.position + Point2(j, 0), Size2(spacing, region.size.y)), c); } - j += spacing; + j += spacing + size.x; } - j = 0; + j = size.y; while (j < region.size.y) { - j += size.y; if (spacing <= 0) { workspace->draw_line(region.position + Point2(0, j), region.position + Point2(region.size.x, j), c); } else { workspace->draw_rect(Rect2(region.position + Point2(0, j), Size2(region.size.x, spacing)), c); } - j += spacing; + j += spacing + size.y; } } } void TileSetEditor::draw_grid_snap() { if (tools[TOOL_GRID_SNAP]->is_pressed()) { - Color grid_color = Color(0.39, 0, 1, 0.2f); + Color grid_color = Color(0.4, 0, 1); Size2 s = workspace->get_size(); - int width_count = (int)(s.width / (snap_step.x + snap_separation.x)); - int height_count = (int)(s.height / (snap_step.y + snap_separation.y)); + int width_count = Math::floor((s.width - WORKSPACE_MARGIN.x) / (snap_step.x + snap_separation.x)); + int height_count = Math::floor((s.height - WORKSPACE_MARGIN.y) / (snap_step.y + snap_separation.y)); + int last_p = 0; if (snap_step.x != 0) { - int last_p = 0; for (int i = 0; i <= width_count; i++) { if (i == 0 && snap_offset.x != 0) { last_p = snap_offset.x; } - if (snap_separation.x != 0 && i != 0) { - workspace->draw_rect(Rect2(last_p, 0, snap_separation.x, s.height), grid_color); - last_p += snap_separation.x; - } else + if (snap_separation.x != 0) { + if (i != 0) { + workspace->draw_rect(Rect2(last_p, 0, snap_separation.x, s.height), grid_color); + last_p += snap_separation.x; + } else { + workspace->draw_rect(Rect2(last_p, 0, -snap_separation.x, s.height), grid_color); + } + } else { workspace->draw_line(Point2(last_p, 0), Point2(last_p, s.height), grid_color); - + } last_p += snap_step.x; } } - + last_p = 0; if (snap_step.y != 0) { - int last_p = 0; for (int i = 0; i <= height_count; i++) { if (i == 0 && snap_offset.y != 0) { last_p = snap_offset.y; } - if (snap_separation.x != 0 && i != 0) { - workspace->draw_rect(Rect2(0, last_p, s.width, snap_separation.y), grid_color); - last_p += snap_separation.y; - } else + if (snap_separation.x != 0) { + if (i != 0) { + workspace->draw_rect(Rect2(0, last_p, s.width, snap_separation.y), grid_color); + last_p += snap_separation.y; + } else { + workspace->draw_rect(Rect2(0, last_p, s.width, -snap_separation.y), grid_color); + } + } else { workspace->draw_line(Point2(0, last_p), Point2(s.width, last_p), grid_color); + } last_p += snap_step.y; } } @@ -1687,8 +1741,6 @@ void TileSetEditor::draw_polygon_shapes() { if (t_id < 0) return; - draw_handles = false; - switch (edit_mode) { case EDITMODE_COLLISION: { Vector<TileSet::ShapeData> sd = tileset->tile_get_shapes(t_id); @@ -2154,6 +2206,18 @@ void TileSetEditor::update_texture_list_icon() { void TileSetEditor::update_workspace_tile_mode() { + if (!get_current_texture().is_valid()) { + tool_workspacemode[WORKSPACE_EDIT]->set_pressed(true); + workspace_mode = WORKSPACE_EDIT; + for (int i = 1; i < WORKSPACE_MODE_MAX; i++) { + tool_workspacemode[i]->set_disabled(true); + } + } else { + for (int i = 1; i < WORKSPACE_MODE_MAX; i++) { + tool_workspacemode[i]->set_disabled(false); + } + } + if (workspace_mode != WORKSPACE_EDIT) { for (int i = 0; i < EDITMODE_MAX; i++) { tool_editmode[i]->hide(); @@ -2172,7 +2236,9 @@ void TileSetEditor::update_workspace_tile_mode() { for (int i = 0; i < ZOOM_OUT; i++) { tools[i]->hide(); } + separator_editmode->hide(); + separator_bitmask->hide(); separator_delete->hide(); separator_grid->hide(); return; @@ -2184,7 +2250,7 @@ void TileSetEditor::update_workspace_tile_mode() { separator_editmode->show(); if (tileset->tile_get_tile_mode(get_current_tile()) == TileSet::SINGLE_TILE) { - if (tool_editmode[EDITMODE_ICON]->is_pressed() || tool_editmode[EDITMODE_PRIORITY]->is_pressed() || tool_editmode[EDITMODE_BITMASK]->is_pressed()) { + if (tool_editmode[EDITMODE_ICON]->is_pressed() || tool_editmode[EDITMODE_PRIORITY]->is_pressed() || tool_editmode[EDITMODE_BITMASK]->is_pressed() || tool_editmode[EDITMODE_Z_INDEX]->is_pressed()) { tool_editmode[EDITMODE_COLLISION]->set_pressed(true); edit_mode = EDITMODE_COLLISION; } @@ -2193,6 +2259,7 @@ void TileSetEditor::update_workspace_tile_mode() { tool_editmode[EDITMODE_ICON]->hide(); tool_editmode[EDITMODE_BITMASK]->hide(); tool_editmode[EDITMODE_PRIORITY]->hide(); + tool_editmode[EDITMODE_Z_INDEX]->hide(); } else if (tileset->tile_get_tile_mode(get_current_tile()) == TileSet::AUTO_TILE || tileset->tile_get_tile_mode(get_current_tile()) == TileSet::ATLAS_TILE) { if (edit_mode == EDITMODE_ICON) select_coord(tileset->autotile_get_icon_coordinate(get_current_tile())); @@ -2218,25 +2285,18 @@ void TileSetEditor::update_edited_region(const Vector2 &end_point) { edited_region = Rect2(region_from, Size2()); if (tools[TOOL_GRID_SNAP]->is_pressed()) { Vector2 grid_coord; - grid_coord.x = Math::floor((region_from.x - snap_offset.x) / (snap_step.x + snap_separation.x)); - grid_coord.y = Math::floor((region_from.y - snap_offset.y) / (snap_step.y + snap_separation.y)); - grid_coord.x *= (snap_step.x + snap_separation.x); - grid_coord.y *= (snap_step.y + snap_separation.y); + grid_coord = ((region_from - snap_offset) / (snap_step + snap_separation)).floor(); + grid_coord *= (snap_step + snap_separation); grid_coord += snap_offset; edited_region.expand_to(grid_coord); - grid_coord += snap_step; + grid_coord += snap_step + snap_separation; edited_region.expand_to(grid_coord); - grid_coord.x = Math::floor((end_point.x - snap_offset.x) / (snap_step.x + snap_separation.x)); - grid_coord.y = Math::floor((end_point.y - snap_offset.y) / (snap_step.y + snap_separation.y)); - grid_coord.x *= (snap_step.x + snap_separation.x); - grid_coord.y *= (snap_step.y + snap_separation.y); + + grid_coord = ((end_point - snap_offset) / (snap_step + snap_separation)).floor(); + grid_coord *= (snap_step + snap_separation); grid_coord += snap_offset; edited_region.expand_to(grid_coord); - grid_coord += snap_step; - if (grid_coord.x < end_point.x) - grid_coord.x += snap_separation.x; - if (grid_coord.y < end_point.y) - grid_coord.y += snap_separation.y; + grid_coord += snap_step + snap_separation; edited_region.expand_to(grid_coord); } else { edited_region.expand_to(end_point); @@ -2414,7 +2474,13 @@ void TilesetEditorContext::_get_property_list(List<PropertyInfo> *p_list) const } } +void TilesetEditorContext::_bind_methods() { + + ClassDB::bind_method("_hide_script_from_inspector", &TilesetEditorContext::_hide_script_from_inspector); +} + TilesetEditorContext::TilesetEditorContext(TileSetEditor *p_tileset_editor) { + tileset_editor = p_tileset_editor; } @@ -2428,8 +2494,7 @@ void TileSetEditorPlugin::edit(Object *p_node) { bool TileSetEditorPlugin::handles(Object *p_node) const { - return p_node->is_class("TileSet") || - p_node->is_class("TilesetEditorContext"); + return p_node->is_class("TileSet") || p_node->is_class("TilesetEditorContext"); } void TileSetEditorPlugin::make_visible(bool p_visible) { @@ -2444,6 +2509,41 @@ void TileSetEditorPlugin::make_visible(bool p_visible) { } } +Dictionary TileSetEditorPlugin::get_state() const { + + Dictionary state; + state["snap_offset"] = tileset_editor->snap_offset; + state["snap_step"] = tileset_editor->snap_step; + state["snap_separation"] = tileset_editor->snap_separation; + state["snap_enabled"] = tileset_editor->tools[TileSetEditor::TOOL_GRID_SNAP]->is_pressed(); + state["keep_inside_tile"] = tileset_editor->tools[TileSetEditor::SHAPE_KEEP_INSIDE_TILE]->is_pressed(); + return state; +} + +void TileSetEditorPlugin::set_state(const Dictionary &p_state) { + + Dictionary state = p_state; + if (state.has("snap_step")) { + tileset_editor->_set_snap_step(state["snap_step"]); + } + + if (state.has("snap_offset")) { + tileset_editor->_set_snap_off(state["snap_offset"]); + } + + if (state.has("snap_separation")) { + tileset_editor->_set_snap_sep(state["snap_separation"]); + } + + if (state.has("snap_enabled")) { + tileset_editor->tools[TileSetEditor::TOOL_GRID_SNAP]->set_pressed(state["snap_enabled"]); + } + + if (state.has("keep_inside_tile")) { + tileset_editor->tools[TileSetEditor::SHAPE_KEEP_INSIDE_TILE]->set_pressed(state["keep_inside_tile"]); + } +} + TileSetEditorPlugin::TileSetEditorPlugin(EditorNode *p_node) { editor = p_node; tileset_editor = memnew(TileSetEditor(p_node)); @@ -2451,6 +2551,6 @@ TileSetEditorPlugin::TileSetEditorPlugin(EditorNode *p_node) { tileset_editor->set_custom_minimum_size(Size2(0, 200) * EDSCALE); tileset_editor->hide(); - tileset_editor_button = p_node->add_bottom_panel_item(TTR("Tile Set"), tileset_editor); + tileset_editor_button = p_node->add_bottom_panel_item(TTR("TileSet"), tileset_editor); tileset_editor_button->hide(); } diff --git a/editor/plugins/tile_set_editor_plugin.h b/editor/plugins/tile_set_editor_plugin.h index bd8a2ddb98..276e23f9ee 100644 --- a/editor/plugins/tile_set_editor_plugin.h +++ b/editor/plugins/tile_set_editor_plugin.h @@ -40,12 +40,12 @@ #define WORKSPACE_MARGIN Vector2(10, 10) class TilesetEditorContext; -class TileSetEditor : public Control { +class TileSetEditor : public HSplitContainer { friend class TileSetEditorPlugin; friend class TilesetEditorContext; - GDCLASS(TileSetEditor, Control) + GDCLASS(TileSetEditor, HSplitContainer) enum TextureToolButtons { TOOL_TILESET_ADD_TEXTURE, @@ -71,6 +71,7 @@ class TileSetEditor : public Control { EDITMODE_BITMASK, EDITMODE_PRIORITY, EDITMODE_ICON, + EDITMODE_Z_INDEX, EDITMODE_MAX }; @@ -134,9 +135,11 @@ class TileSetEditor : public Control { HSeparator *separator_editmode; HBoxContainer *toolbar; ToolButton *tools[TOOL_MAX]; + VSeparator *separator_bitmask; VSeparator *separator_delete; VSeparator *separator_grid; SpinBox *spin_priority; + SpinBox *spin_z_index; WorkspaceMode workspace_mode; EditMode edit_mode; int current_tile; @@ -177,6 +180,7 @@ private: void _on_workspace_input(const Ref<InputEvent> &p_ie); void _on_tool_clicked(int p_tool); void _on_priority_changed(float val); + void _on_z_index_changed(float val); void _on_grid_snap_toggled(bool p_val); void _set_snap_step(Vector2 p_val); void _set_snap_off(Vector2 p_val); @@ -184,7 +188,7 @@ private: void _zoom_in(); void _zoom_out(); - void _reset_zoom(); + void _zoom_reset(); void draw_highlight_current_tile(); void draw_highlight_subtile(Vector2 coord, const Vector<Vector2> &other_highlighted = Vector<Vector2>()); @@ -212,6 +216,7 @@ class TilesetEditorContext : public Object { bool snap_options_visible; public: + bool _hide_script_from_inspector() { return true; } void set_tileset(const Ref<TileSet> &p_tileset); private: @@ -221,6 +226,7 @@ protected: bool _set(const StringName &p_name, const Variant &p_value); bool _get(const StringName &p_name, Variant &r_ret) const; void _get_property_list(List<PropertyInfo> *p_list) const; + static void _bind_methods(); public: TilesetEditorContext(TileSetEditor *p_tileset_editor); @@ -240,6 +246,8 @@ public: virtual void edit(Object *p_node); virtual bool handles(Object *p_node) const; virtual void make_visible(bool p_visible); + void set_state(const Dictionary &p_state); + Dictionary get_state() const; TileSetEditorPlugin(EditorNode *p_node); }; diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index 39e50ec7f8..d3295c0f51 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -633,18 +633,23 @@ void VisualShaderEditor::_duplicate_nodes() { VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); List<int> nodes; + Set<int> excluded; for (int i = 0; i < graph->get_child_count(); i++) { - if (Object::cast_to<GraphNode>(graph->get_child(i))) { - int id = String(graph->get_child(i)->get_name()).to_int(); + GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i)); + if (gn) { + int id = String(gn->get_name()).to_int(); Ref<VisualShaderNode> node = visual_shader->get_node(type, id); Ref<VisualShaderNodeOutput> output = node; - if (output.is_valid()) //can't duplicate output + if (output.is_valid()) { // can't duplicate output + excluded.insert(id); continue; - if (node.is_valid()) { + } + if (node.is_valid() && gn->is_selected()) { nodes.push_back(id); } + excluded.insert(id); } } @@ -683,15 +688,16 @@ void VisualShaderEditor::_duplicate_nodes() { undo_redo->add_undo_method(this, "_update_graph"); undo_redo->commit_action(); - //reselect + // reselect duplicated nodes by excluding the other ones for (int i = 0; i < graph->get_child_count(); i++) { - if (Object::cast_to<GraphNode>(graph->get_child(i))) { - int id = String(graph->get_child(i)->get_name()).to_int(); - if (nodes.find(id)) { - Object::cast_to<GraphNode>(graph->get_child(i))->set_selected(true); + GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i)); + if (gn) { + int id = String(gn->get_name()).to_int(); + if (!excluded.has(id)) { + gn->set_selected(true); } else { - Object::cast_to<GraphNode>(graph->get_child(i))->set_selected(false); + gn->set_selected(false); } } } @@ -798,7 +804,7 @@ VisualShaderEditor::VisualShaderEditor() { add_node = memnew(MenuButton); graph->get_zoom_hbox()->add_child(add_node); - add_node->set_text(TTR("Add Node..")); + add_node->set_text(TTR("Add Node...")); graph->get_zoom_hbox()->move_child(add_node, 0); add_node->get_popup()->connect("id_pressed", this, "_add_node"); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index f8ba6fd4e3..f82133e0d3 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -56,7 +56,7 @@ void ProjectExportDialog::_notification(int p_what) { custom_feature_display->get_parent_control()->add_style_override("panel", get_stylebox("bg", "Tree")); } break; case NOTIFICATION_POPUP_HIDE: { - EditorSettings::get_singleton()->set("interface/dialogs/export_bounds", get_rect()); + EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "export", get_rect()); } break; case NOTIFICATION_THEME_CHANGED: { duplicate_preset->set_icon(get_icon("Duplicate", "EditorIcons")); @@ -84,8 +84,9 @@ void ProjectExportDialog::popup_export() { } // Restore valid window bounds or pop up at default size. - if (EditorSettings::get_singleton()->has_setting("interface/dialogs/export_bounds")) { - popup(EditorSettings::get_singleton()->get("interface/dialogs/export_bounds")); + Rect2 saved_size = EditorSettings::get_singleton()->get_project_metadata("dialog_bounds", "export", Rect2()); + if (saved_size != Rect2()) { + popup(saved_size); } else { Size2 popup_size = Size2(900, 700) * editor_get_scale(); @@ -191,7 +192,7 @@ void ProjectExportDialog::_edit_preset(int p_index) { if (p_index < 0 || p_index >= presets->get_item_count()) { name->set_text(""); name->set_editable(false); - export_path->set_editable(false); + export_path->hide(); runnable->set_disabled(true); parameters->edit(NULL); presets->unselect_all(); @@ -213,11 +214,19 @@ void ProjectExportDialog::_edit_preset(int p_index) { sections->show(); name->set_editable(true); - export_path->set_editable(true); + export_path->show(); duplicate_preset->set_disabled(false); delete_preset->set_disabled(false); name->set_text(current->get_name()); - export_path->set_text(current->get_export_path()); + + List<String> extension_list = current->get_platform()->get_binary_extensions(current); + Vector<String> extension_vector; + for (int i = 0; i < extension_list.size(); i++) { + extension_vector.push_back("*." + extension_list[i]); + } + + export_path->setup(extension_vector, false, true); + export_path->update_property(); runnable->set_disabled(false); runnable->set_pressed(current->is_runnable()); parameters->edit(current.ptr()); @@ -289,6 +298,7 @@ void ProjectExportDialog::_edit_preset(int p_index) { custom_features->set_text(current->get_custom_features()); _update_feature_list(); _update_export_all(); + minimum_size_changed(); updating = false; } @@ -457,7 +467,21 @@ void ProjectExportDialog::_name_changed(const String &p_string) { _update_presets(); } -void ProjectExportDialog::_export_path_changed(const String &p_string) { +void ProjectExportDialog::set_export_path(const String &p_value) { + Ref<EditorExportPreset> current = EditorExport::get_singleton()->get_export_preset(presets->get_current()); + ERR_FAIL_COND(current.is_null()); + + current->set_export_path(p_value); +} + +String ProjectExportDialog::get_export_path() { + Ref<EditorExportPreset> current = EditorExport::get_singleton()->get_export_preset(presets->get_current()); + ERR_FAIL_COND_V(current.is_null(), String("")); + + return current->get_export_path(); +} + +void ProjectExportDialog::_export_path_changed(const StringName &p_property, const Variant &p_value) { if (updating) return; @@ -465,7 +489,7 @@ void ProjectExportDialog::_export_path_changed(const String &p_string) { Ref<EditorExportPreset> current = EditorExport::get_singleton()->get_export_preset(presets->get_current()); ERR_FAIL_COND(current.is_null()); - current->set_export_path(p_string); + current->set_export_path(p_value); _update_presets(); } @@ -954,6 +978,10 @@ void ProjectExportDialog::_bind_methods() { ClassDB::bind_method("_export_all_dialog_action", &ProjectExportDialog::_export_all_dialog_action); ClassDB::bind_method("_custom_features_changed", &ProjectExportDialog::_custom_features_changed); ClassDB::bind_method("_tab_changed", &ProjectExportDialog::_tab_changed); + ClassDB::bind_method("set_export_path", &ProjectExportDialog::set_export_path); + ClassDB::bind_method("get_export_path", &ProjectExportDialog::get_export_path); + + ADD_PROPERTY(PropertyInfo(Variant::STRING, "export_path"), "set_export_path", "get_export_path"); } ProjectExportDialog::ProjectExportDialog() { @@ -1006,9 +1034,12 @@ ProjectExportDialog::ProjectExportDialog() { runnable->connect("pressed", this, "_runnable_pressed"); settings_vb->add_child(runnable); - export_path = memnew(LineEdit); - settings_vb->add_margin_child(TTR("Export Path:"), export_path); - export_path->connect("text_changed", this, "_export_path_changed"); + export_path = memnew(EditorPropertyPath); + settings_vb->add_child(export_path); + export_path->set_label(TTR("Export Path")); + export_path->set_object_and_property(this, "export_path"); + export_path->set_save_mode(); + export_path->connect("property_changed", this, "_export_path_changed"); sections = memnew(TabContainer); sections->set_tab_align(TabContainer::ALIGN_LEFT); @@ -1100,7 +1131,7 @@ ProjectExportDialog::ProjectExportDialog() { //disable by default name->set_editable(false); - export_path->set_editable(false); + export_path->hide(); runnable->set_disabled(true); duplicate_preset->set_disabled(true); delete_preset->set_disabled(true); @@ -1143,6 +1174,7 @@ ProjectExportDialog::ProjectExportDialog() { export_pck_zip->connect("file_selected", this, "_export_pck_zip_selected"); export_error = memnew(Label); + export_error->set_autowrap(true); main_vb->add_child(export_error); export_error->hide(); export_error->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("error_color", "Editor")); diff --git a/editor/project_export.h b/editor/project_export.h index 7009968138..b43dd9a392 100644 --- a/editor/project_export.h +++ b/editor/project_export.h @@ -37,6 +37,7 @@ #include "editor/editor_file_dialog.h" #include "editor/editor_file_system.h" #include "editor/editor_inspector.h" +#include "editor/editor_properties.h" #include "scene/gui/button.h" #include "scene/gui/check_button.h" #include "scene/gui/control.h" @@ -66,7 +67,7 @@ private: ItemList *presets; LineEdit *name; - LineEdit *export_path; + EditorPropertyPath *export_path; EditorInspector *parameters; CheckButton *runnable; @@ -110,7 +111,7 @@ private: void _runnable_pressed(); void _update_parameters(const String &p_edited_property); void _name_changed(const String &p_string); - void _export_path_changed(const String &p_string); + void _export_path_changed(const StringName &p_property, const Variant &p_value); void _add_preset(int p_platform); void _edit_preset(int p_index); void _duplicate_preset(); @@ -162,6 +163,9 @@ protected: public: void popup_export(); + void set_export_path(const String &p_value); + String get_export_path(); + ProjectExportDialog(); ~ProjectExportDialog(); }; diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 8c906e5f0b..0e2e957333 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -745,7 +745,8 @@ public: get_ok()->set_text(TTR("Create & Edit")); name_container->show(); install_path_container->hide(); - project_name->grab_focus(); + project_name->call_deferred("grab_focus"); + project_name->call_deferred("select_all"); } else if (mode == MODE_INSTALL) { @@ -866,16 +867,22 @@ struct ProjectItem { uint64_t last_modified; bool favorite; bool grayed; + bool ordered_latest_modification; ProjectItem() {} - ProjectItem(const String &p_project, const String &p_path, const String &p_conf, uint64_t p_last_modified, bool p_favorite = false, bool p_grayed = false) { + ProjectItem(const String &p_project, const String &p_path, const String &p_conf, uint64_t p_last_modified, bool p_favorite = false, bool p_grayed = false, const bool p_ordered_latest_modification = true) { project = p_project; path = p_path; conf = p_conf; last_modified = p_last_modified; favorite = p_favorite; grayed = p_grayed; + ordered_latest_modification = p_ordered_latest_modification; + } + _FORCE_INLINE_ bool operator<(const ProjectItem &l) const { + if (ordered_latest_modification) + return last_modified > l.last_modified; + return project < l.project; } - _FORCE_INLINE_ bool operator<(const ProjectItem &l) const { return last_modified > l.last_modified; } _FORCE_INLINE_ bool operator==(const ProjectItem &l) const { return project == l.project; } }; @@ -1156,6 +1163,13 @@ void ProjectManager::_load_recent_projects() { Color font_color = gui_base->get_color("font_color", "Tree"); + bool set_ordered_latest_modification; + ProjectListFilter::FilterOption filter_order_option = project_order_filter->get_filter_option(); + if (filter_order_option == ProjectListFilter::FILTER_NAME) + set_ordered_latest_modification = false; + else + set_ordered_latest_modification = true; + List<ProjectItem> projects; List<ProjectItem> favorite_projects; @@ -1188,13 +1202,12 @@ void ProjectManager::_load_recent_projects() { grayed = true; } - ProjectItem item(project, path, conf, last_modified, favorite, grayed); + ProjectItem item(project, path, conf, last_modified, favorite, grayed, set_ordered_latest_modification); if (favorite) favorite_projects.push_back(item); else projects.push_back(item); } - projects.sort(); favorite_projects.sort(); @@ -1818,16 +1831,41 @@ ProjectManager::ProjectManager() { tabs->add_child(tree_hb); VBoxContainer *search_tree_vb = memnew(VBoxContainer); - search_tree_vb->set_h_size_flags(SIZE_EXPAND_FILL); tree_hb->add_child(search_tree_vb); + search_tree_vb->set_h_size_flags(SIZE_EXPAND_FILL); - HBoxContainer *search_box = memnew(HBoxContainer); - search_box->add_spacer(true); + HBoxContainer *sort_filters = memnew(HBoxContainer); + Label *sort_label = memnew(Label); + sort_label->set_text(TTR("Sort:")); + sort_filters->add_child(sort_label); + Vector<String> vec1; + vec1.push_back("Name"); + vec1.push_back("Last Modified"); + project_order_filter = memnew(ProjectListFilter); + project_order_filter->_setup_filters(vec1); + project_order_filter->set_filter_size(150); + sort_filters->add_child(project_order_filter); + project_order_filter->connect("filter_changed", this, "_load_recent_projects"); + project_order_filter->set_custom_minimum_size(Size2(180, 10) * EDSCALE); + + sort_filters->add_spacer(true); + Label *search_label = memnew(Label); + search_label->set_text(TTR("Search:")); + sort_filters->add_child(search_label); + + HBoxContainer *search_filters = memnew(HBoxContainer); + Vector<String> vec2; + vec2.push_back("Name"); + vec2.push_back("Path"); project_filter = memnew(ProjectListFilter); - search_box->add_child(project_filter); + project_filter->_setup_filters(vec2); + project_filter->add_search_box(); + search_filters->add_child(project_filter); project_filter->connect("filter_changed", this, "_load_recent_projects"); project_filter->set_custom_minimum_size(Size2(280, 10) * EDSCALE); - search_tree_vb->add_child(search_box); + sort_filters->add_child(search_filters); + + search_tree_vb->add_child(sort_filters); PanelContainer *pc = memnew(PanelContainer); pc->add_style_override("panel", gui_base->get_stylebox("bg", "Tree")); @@ -2017,11 +2055,11 @@ ProjectManager::~ProjectManager() { EditorSettings::destroy(); } -void ProjectListFilter::_setup_filters() { +void ProjectListFilter::_setup_filters(Vector<String> options) { filter_option->clear(); - filter_option->add_item(TTR("Name")); - filter_option->add_item(TTR("Path")); + for (int i = 0; i < options.size(); i++) + filter_option->add_item(TTR(options[i])); } void ProjectListFilter::_search_text_changed(const String &p_newtext) { @@ -2046,7 +2084,7 @@ void ProjectListFilter::_filter_option_selected(int p_idx) { void ProjectListFilter::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { + if (p_what == NOTIFICATION_ENTER_TREE && has_search_box) { search_box->set_right_icon(get_icon("Search", "EditorIcons")); search_box->set_clear_button_enabled(true); } @@ -2060,20 +2098,27 @@ void ProjectListFilter::_bind_methods() { ADD_SIGNAL(MethodInfo("filter_changed")); } +void ProjectListFilter::add_search_box() { + search_box = memnew(LineEdit); + search_box->connect("text_changed", this, "_search_text_changed"); + search_box->set_h_size_flags(SIZE_EXPAND_FILL); + add_child(search_box); + has_search_box = true; +} + +void ProjectListFilter::set_filter_size(int h_size) { + filter_option->set_custom_minimum_size(Size2(h_size * EDSCALE, 10 * EDSCALE)); +} + ProjectListFilter::ProjectListFilter() { _current_filter = FILTER_NAME; filter_option = memnew(OptionButton); - filter_option->set_custom_minimum_size(Size2(80 * EDSCALE, 10 * EDSCALE)); + set_filter_size(80); filter_option->set_clip_text(true); filter_option->connect("item_selected", this, "_filter_option_selected"); add_child(filter_option); - _setup_filters(); - - search_box = memnew(LineEdit); - search_box->connect("text_changed", this, "_search_text_changed"); - search_box->set_h_size_flags(SIZE_EXPAND_FILL); - add_child(search_box); + has_search_box = false; } diff --git a/editor/project_manager.h b/editor/project_manager.h index ad21e00b0d..88fc081272 100644 --- a/editor/project_manager.h +++ b/editor/project_manager.h @@ -54,6 +54,7 @@ class ProjectManager : public Control { EditorAssetLibrary *asset_library; ProjectListFilter *project_filter; + ProjectListFilter *project_order_filter; ConfirmationDialog *language_restart_ask; ConfirmationDialog *erase_ask; @@ -130,6 +131,7 @@ private: OptionButton *filter_option; LineEdit *search_box; + bool has_search_box; enum FilterOption { FILTER_NAME, @@ -138,7 +140,6 @@ private: FilterOption _current_filter; void _search_text_changed(const String &p_newtext); - void _setup_filters(); void _filter_option_selected(int p_idx); protected: @@ -146,6 +147,9 @@ protected: static void _bind_methods(); public: + void _setup_filters(Vector<String> options); + void add_search_box(); + void set_filter_size(int h_size); String get_search_term(); FilterOption get_filter_option(); ProjectListFilter(); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 7a68646f40..af8d33d3d1 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -115,10 +115,9 @@ void ProjectSettingsEditor::_notification(int p_what) { } break; case NOTIFICATION_POPUP_HIDE: { - EditorSettings::get_singleton()->set("interface/dialogs/project_settings_bounds", get_rect()); + EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "project_settings", get_rect()); } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { - search_button->set_icon(get_icon("Search", "EditorIcons")); search_box->set_right_icon(get_icon("Search", "EditorIcons")); search_box->set_clear_button_enabled(true); @@ -788,8 +787,9 @@ void ProjectSettingsEditor::_update_actions() { void ProjectSettingsEditor::popup_project_settings() { // Restore valid window bounds or pop up at default size. - if (EditorSettings::get_singleton()->has_setting("interface/dialogs/project_settings_bounds")) { - popup(EditorSettings::get_singleton()->get("interface/dialogs/project_settings_bounds")); + Rect2 saved_size = EditorSettings::get_singleton()->get_project_metadata("dialog_bounds", "project_settings", Rect2()); + if (saved_size != Rect2()) { + popup(saved_size); } else { Size2 popup_size = Size2(900, 700) * editor_get_scale(); diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp index 537c9ac6b8..a4956bee27 100644 --- a/editor/settings_config_dialog.cpp +++ b/editor/settings_config_dialog.cpp @@ -94,8 +94,9 @@ void EditorSettingsDialog::popup_edit_settings() { set_process_unhandled_input(true); // Restore valid window bounds or pop up at default size. - if (EditorSettings::get_singleton()->has_setting("interface/dialogs/editor_settings_bounds")) { - popup(EditorSettings::get_singleton()->get("interface/dialogs/editor_settings_bounds")); + Rect2 saved_size = EditorSettings::get_singleton()->get_project_metadata("dialog_bounds", "editor_settings", Rect2()); + if (saved_size != Rect2()) { + popup(saved_size); } else { Size2 popup_size = Size2(900, 700) * editor_get_scale(); @@ -132,7 +133,7 @@ void EditorSettingsDialog::_notification(int p_what) { _update_icons(); } break; case NOTIFICATION_POPUP_HIDE: { - EditorSettings::get_singleton()->set("interface/dialogs/editor_settings_bounds", get_rect()); + EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "editor_settings", get_rect()); set_process_unhandled_input(false); } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { diff --git a/editor/translations/af.po b/editor/translations/af.po index 17dd7b19c5..6bad509c26 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -7,15 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-09-14 16:12+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" "Last-Translator: Julius Stopforth <jjstopforth@gmail.com>\n" "Language-Team: Afrikaans <https://hosted.weblate.org/projects/godot-engine/" "godot/af/>\n" "Language: af\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -261,7 +263,6 @@ msgstr "Skep %d NUWE bane en voeg sleutels by?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -535,15 +536,19 @@ msgstr "Vervang Alles" msgid "Selection Only" msgstr "Slegs Seleksie" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoem In" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zoem Uit" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Herset Zoem" @@ -552,9 +557,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "Zoem In" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -721,8 +725,8 @@ msgid "Recent:" msgstr "Onlangse:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Soek:" @@ -773,8 +777,7 @@ msgid "Resource" msgstr "Hulpbron" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Pad" @@ -1240,8 +1243,7 @@ msgid "Node Name:" msgstr "Nodus Naam:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Naam" @@ -1726,6 +1728,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2125,7 +2133,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2149,7 +2157,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2561,6 +2569,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2577,8 +2591,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3002,7 +3015,7 @@ msgstr "Dupliseer" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3139,7 +3152,7 @@ msgstr "AutoLaai '%s' bestaan reeds!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Ongeldige naam." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3390,44 +3403,45 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Skep Intekening" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Skep Intekening" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Skep" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3473,16 +3487,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Skep" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3560,7 +3564,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4107,7 +4110,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4256,21 +4259,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Zoem Uit" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Zoem Uit" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Zoem In" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4526,7 +4527,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Skep Intekening" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4628,35 +4638,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5024,6 +5008,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Wysig Nodus Kurwe" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5051,6 +5040,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5066,11 +5059,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5127,6 +5115,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5138,7 +5130,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5181,7 +5179,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Skep Intekening" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5206,12 +5213,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Skep Intekening" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Skuif Gunsteling Op" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5238,19 +5241,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5393,20 +5396,24 @@ msgid "Error saving file!" msgstr "Fout tydens storing van hulpbron!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Fout tydens stoor." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Fout terwyl laai:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Fout terwyl laai:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Fout terwyl laai:" #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5427,6 +5434,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5467,8 +5482,9 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "" +#, fuzzy +msgid "Open..." +msgstr "Oop" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5497,15 +5513,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "Ek sien..." #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5615,6 +5632,10 @@ msgstr "" msgid "Go to Function" msgstr "Maak Funksie" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5647,10 +5668,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6349,11 +6366,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6594,12 +6616,12 @@ msgid "Clear transform" msgstr "Anim Verander Transform" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Skuif huidige baan op." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6611,13 +6633,32 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Skep Intekening" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6647,16 +6688,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Skrap gekose lêers?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Skep Vouer" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Skep Intekening" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Skep Vouer" @@ -6674,11 +6726,18 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Skep Vouer" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6694,6 +6753,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6730,7 +6793,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8189,7 +8252,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9042,7 +9105,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9085,7 +9148,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9177,6 +9242,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9193,6 +9262,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9249,10 +9322,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" @@ -9269,6 +9338,18 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Zoem Uit" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Zoem In" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Zoem In" + #~ msgid "Class List:" #~ msgstr "Klas Lys:" @@ -9331,9 +9412,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "Anim Baan Verander Terug Draai Modus" -#~ msgid "Edit Node Curve" -#~ msgstr "Wysig Nodus Kurwe" - #~ msgid "Anim Add Key" #~ msgstr "Anim Voeg Sleutel By" @@ -9395,9 +9473,6 @@ msgstr "" #~ msgid "Thanks!" #~ msgstr "Dankie!" -#~ msgid "I see..." -#~ msgstr "Ek sien..." - #~ msgid "Can't open '%s'." #~ msgstr "Kan nie '%s' oopmaak nie." diff --git a/editor/translations/ar.po b/editor/translations/ar.po index ed3b98016a..777addc6ae 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -21,19 +21,22 @@ # Takai Eddine Kennouche <takai.kenn@gmail.com>, 2018. # Mohamed El-Baz <albaz2000eg@gmail.com>, 2018. # عاصم شكر - Aasem shokr <aasemshokr@gmail.com>, 2018. +# Mohammad Fares <mhdchehade@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-18 22:43+0000\n" -"Last-Translator: عاصم شكر - Aasem shokr <aasemshokr@gmail.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" +"Last-Translator: Mohammad Fares <mhdchehade@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -52,7 +55,7 @@ msgstr "" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "لا يمكن استخدام الØالة لأن Ù„Øظة التشغيل عدم (لم بتم ارسالها)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -60,7 +63,7 @@ msgstr "" #: 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" @@ -73,7 +76,7 @@ msgstr "نوع برهان خاطئ للتØويل()ØŒ إستخدم ثابت TYPE #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "عند نداء '%s':" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -273,7 +276,6 @@ msgstr "أنشئ %d مسارات جديدة Ùˆ أدخل Ù…ÙاتيØØŸ" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -549,15 +551,19 @@ msgstr "إستبدال الكل" msgid "Selection Only" msgstr "المØدد Ùقط" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "تقريب" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "إبعاد" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "إرجاع التكبير" @@ -567,8 +573,8 @@ msgstr "" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "تقريب" +msgid "Font Size:" +msgstr "Øجم الخطوط:" #: editor/code_editor.cpp msgid "Line:" @@ -733,8 +739,8 @@ msgid "Recent:" msgstr "الØالي:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "بØØ«:" @@ -785,8 +791,7 @@ msgid "Resource" msgstr "مورد" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "المسار" @@ -1245,8 +1250,7 @@ msgid "Node Name:" msgstr "إسم العقدة:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "الأسم" @@ -1729,6 +1733,12 @@ msgstr "هذه العملية لا يمكنها الإكتمال من غير Ø¬Ø #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "لا يمكن ØÙظ المشهد. على Ø§Ù„Ø£Ø±Ø¬Ø Ù„Ø§ يمكن إستيÙاء التبعيات (مجسّدات)." @@ -2163,7 +2173,7 @@ msgid "Undo" msgstr "تراجع" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "إعادة" @@ -2187,7 +2197,7 @@ msgstr "إعدادات المشروع" msgid "Export" msgstr "تصدير" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ادوات" @@ -2623,6 +2633,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2639,8 +2655,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3068,7 +3083,7 @@ msgstr "تكرير..." msgid "Move To..." msgstr "تØريك إلي..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "ÙØªØ Ø³Ø±ÙŠØ¹ للكود..." @@ -3211,7 +3226,7 @@ msgstr "خطأ: إسم الØركة موجود بالÙعل!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "اسم غير صالØ." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3467,14 +3482,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "إنشاء بولي" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "تعديل البولي" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3482,25 +3497,28 @@ msgid "Insert Point" msgstr "إدخال نقطة" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "تعديل البولي (Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Ù…Ø³Ø Ø§Ù„Ø¨ÙˆÙ„ÙŠ والنقطة" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "إنشاء Ù…Ùضلع جديد من الصÙر" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø§Ø·" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "تعديل المضلعات الموجودة:\n" "زر الÙأرة الأيسر: لتØريك النقطة.\n" @@ -3508,8 +3526,10 @@ msgstr "" "زر الÙأرة الأيمن: Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø§Ø·" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "زر الÙأرة الأيمن: Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3554,17 +3574,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø§Ø·" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "زر الÙأرة الأيمن: Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3642,7 +3651,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4192,7 +4200,7 @@ msgstr "الكل" msgid "Plugins" msgstr "إضاÙات" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "ترتيب:" @@ -4352,21 +4360,19 @@ msgid "Paste Pose" msgstr "لصق الوضع" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "إبعاد" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "إبعاد" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "تقريب" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "تØديد الوضع" @@ -4630,8 +4636,17 @@ msgstr "" "سØب Ùˆ إسقاط + Alt : تغيير نوع العقدة" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "إنشاء بولي 3d" +#, fuzzy +msgid "Create Polygon3D" +msgstr "إنشاء بولي" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "تعديل البولي" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "تعديل البولي (Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4733,37 +4748,9 @@ msgid "Item List Editor" msgstr "Ù…Ùعدل قائمة العناصر" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"لا مصدر شكل Ù…Ùطبق 2D ÙÙŠ هذه العقدة.\n" -"أنشئ Ùˆ ضع واØدة؟" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "أنشئ شكل Ù…Ùطبق" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "أنشئ شكل جديد من لا شئ." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "تعديل الشكل الموجود بالÙعل:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "زر الÙأرة الأوسط: تØريك النقطة." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+ زر الÙأرة الأوسط: Ùصل المقطع." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "زر الÙأرة الأيمن: Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "الميش Ùارغ!" @@ -5134,6 +5121,11 @@ msgid "Add Point to Curve" msgstr "أض٠نقطة للمنØنى" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "تØرير منØنى العقدة" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Øرك النقطة داخل المنØنى" @@ -5161,6 +5153,10 @@ msgid "Click: Add Point" msgstr "إظغط: أض٠نقطة" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5176,11 +5172,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5238,6 +5229,10 @@ msgstr "Ù…Ø³Ø Ù†Ù‚Ø·Ø© خروج التØكم" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5250,10 +5245,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "إظهار العظام" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "" @@ -5295,10 +5296,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "إنشاء بولي" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "ÙØªØ Ø§Ù„Ù…Ùعدل 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5322,12 +5333,8 @@ msgstr "أنشئ عظام" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "إنشاء بولي" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5354,19 +5361,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5515,20 +5522,24 @@ msgid "Error saving file!" msgstr "خطأ ÙÙŠ ØÙظ مجموعة البلاط!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "خطأ خلال الØÙظ." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "خطأ ÙÙŠ تØريك:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "خطأ ÙÙŠ تØريك:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "خطأ ÙÙŠ تØريك:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5550,6 +5561,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5591,8 +5610,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "إظهار الملÙات" +msgid "Open..." +msgstr "Ø¥ÙتØ" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5621,15 +5640,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "Øاري إستيراد المشهد..." #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5740,6 +5760,10 @@ msgstr "" msgid "Go to Function" msgstr "Ù…Ø³Ø Ø§Ù„Ù…Ù‡Ù…Ø©" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5772,10 +5796,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6482,11 +6502,17 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Øدد المعامل" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6737,12 +6763,12 @@ msgid "Clear transform" msgstr "تØويل تغيير التØريك" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Ù…Ø³Ø Ø§Ù„Ù…Ø¯Ø®Ù„Ø© الØالية" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6754,13 +6780,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "لصق الØركة" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "زر الÙأرة الأيمن: Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "أنشئ شكل جديد من لا شئ." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6790,16 +6837,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Ø¥Ù…Ø³Ø Ø§Ù„Ù…Ù„Ùات المØددة؟" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "ØÙظ العنوان الÙرعي الذي يتم تعديله Øاليا." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø§Ø·" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "ØÙظ العنوان الÙرعي الذي يتم تعديله Øاليا." @@ -6818,11 +6876,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "ØÙظ العنوان الÙرعي الذي يتم تعديله Øاليا." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "هذه العملية لا يمكن الإكتمال من غير مشهد." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "مجموعة البلاط" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6839,6 +6905,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6877,7 +6947,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "تصدير المشروع" #: editor/project_export.cpp @@ -8348,7 +8418,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "الخطوة (المتغيرة المدخلة/argument) تساوي صÙر !" #: modules/gdscript/gdscript_functions.cpp @@ -9208,7 +9279,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9251,7 +9322,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9344,6 +9417,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "شجرة الØركة خاطئة." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9360,6 +9437,10 @@ msgstr "تنبيه!" msgid "Please Confirm..." msgstr "يرجى التاكيد..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9417,10 +9498,6 @@ msgstr "Øجم الخط غير صالØ" msgid "Input" msgstr "أض٠مدخله" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9438,6 +9515,50 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "إنشاء بولي" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "إنشاء Ù…Ùضلع جديد من الصÙر" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "إبعاد" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "تقريب" + +#~ msgid "Create Poly3D" +#~ msgstr "إنشاء بولي 3d" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "لا مصدر شكل Ù…Ùطبق 2D ÙÙŠ هذه العقدة.\n" +#~ "أنشئ Ùˆ ضع واØدة؟" + +#~ msgid "Edit existing polygon:" +#~ msgstr "تعديل الشكل الموجود بالÙعل:" + +#~ msgid "LMB: Move Point." +#~ msgstr "زر الÙأرة الأوسط: تØريك النقطة." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+ زر الÙأرة الأوسط: Ùصل المقطع." + +#~ msgid "RMB: Erase Point." +#~ msgstr "زر الÙأرة الأيمن: Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "إظهار الملÙات" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "تقريب" + #~ msgid "Class List:" #~ msgstr "قائمة الأصناÙ:" @@ -9523,9 +9644,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "تغيير صيغة الغلا٠لمسار التØريك" -#~ msgid "Edit Node Curve" -#~ msgstr "تØرير منØنى العقدة" - #~ msgid "Edit Selection Curve" #~ msgstr "تØرير منØنى الإختيار" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 60f5eafb45..aa770bcea5 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -10,15 +10,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-20 11:23+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" "Last-Translator: PakoSt <kokotekilata@gmail.com>\n" "Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/" "godot/bg/>\n" "Language: bg\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -261,7 +263,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -535,15 +536,19 @@ msgstr "Преименувай Ð’Ñички" msgid "Selection Only" msgstr "Само СелекциÑта" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Приближи" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Отдалечи" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -552,8 +557,9 @@ msgid "Warnings:" msgstr "ПредупреждениÑ:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Приближение:" +#, fuzzy +msgid "Font Size:" +msgstr "Изглед Отпред." #: editor/code_editor.cpp msgid "Line:" @@ -712,8 +718,8 @@ msgid "Recent:" msgstr "Скорошни:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "ТърÑене:" @@ -760,8 +766,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1216,8 +1221,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1692,6 +1696,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2098,7 +2108,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2122,7 +2132,7 @@ msgstr "ÐаÑтройки на проекта" msgid "Export" msgstr "ИзнаÑÑне" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Сечива" @@ -2539,6 +2549,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2555,8 +2571,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Ðов Ñкрипт" @@ -2991,7 +3006,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Ðов Ñкрипт" @@ -3125,7 +3140,8 @@ msgid "Group name already exists." msgstr "Група Ñ Ñ‚Ð¾Ð²Ð° име вече ÑъщеÑтвува." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "невалидно име на Група." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3395,41 +3411,41 @@ msgid "Activate now?" msgstr "Ðктивирай Ñега?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Създаване на папка" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "ПриÑтавки" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr "ПремеÑтване на Полигон" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Създай точки." #: editor/plugins/abstract_polygon_2d_editor.cpp #, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Промени ÑъщеÑтвуващ полигон:\n" "LMB: ПремеÑти Точка.\n" @@ -3437,9 +3453,9 @@ msgstr "" "RMB: Изтрии Точка." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy -msgid "Delete points" -msgstr "Изтриване на анимациÑта?" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Изтрий точки." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3484,15 +3500,6 @@ msgstr "Селектирай и меÑти точки, Ñъздай точки Ñ #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Създай точки." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Изтрий точки." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3571,7 +3578,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Добави Възел..." @@ -4118,7 +4124,7 @@ msgstr "Ð’Ñички" msgid "Plugins" msgstr "ПриÑтавки" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Подреждане:" @@ -4269,18 +4275,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Отдалечи" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Оригинално увеличение" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Приближи" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Режим на Селектиране" @@ -4541,7 +4548,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Създаване на папка" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4644,36 +4660,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -#, fuzzy -msgid "Create a new polygon from scratch." -msgstr "Създай нов полигон от нулата." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Промени ÑъщеÑтвуващ полигон:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: ПремеÑти Точка." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+LMB: Раздели Сегмент." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Изтрий Точка." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5041,6 +5030,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5068,6 +5061,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5083,11 +5080,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Изтрий Точка" @@ -5144,6 +5136,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5154,7 +5150,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5195,7 +5197,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Създаване на папка" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5220,12 +5231,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Създаване на папка" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "LMB: ПремеÑти Точка." #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy @@ -5253,19 +5260,21 @@ msgid "Scale Polygon" msgstr "Мащаб на Полигон" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "Свържи две точки, за да направиш разделение" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Избери разделение и го изтрий" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5405,20 +5414,23 @@ msgid "Error saving file!" msgstr "Грешка при запиÑването на файла!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Грешка при запиÑване." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Грешка при запазване" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "Error importing theme" +msgid "Error importing theme." msgstr "Грешка при внаÑÑне на темата" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Имаше грешка при внаÑÑнето" #: editor/plugins/script_editor_plugin.cpp @@ -5438,6 +5450,14 @@ msgid "Import Theme" msgstr "ВнаÑÑне на тема" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Грешка при запазване" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Запази Темата Като..." @@ -5480,8 +5500,8 @@ msgstr "Файл" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Ðов TextFile" +msgid "Open..." +msgstr "Отвори" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5510,6 +5530,11 @@ msgid "Theme" msgstr "Тема" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "ВнаÑÑне на тема" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Зареди Темата наново" @@ -5518,10 +5543,6 @@ msgid "Save Theme" msgstr "Запази Темата" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Запази Темата Като" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Затвори ДокументациÑта" @@ -5630,6 +5651,10 @@ msgstr "" msgid "Go to Function" msgstr "Отиди на Ред" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5662,10 +5687,6 @@ msgstr "Ð’ÑÑка дума Ñ Ð“Ð»Ð°Ð²Ð½Ð° буква" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6366,11 +6387,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6614,12 +6640,12 @@ msgid "Clear transform" msgstr "ИзнаÑÑне към платформа" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "ПремеÑтване на пътечката нагоре." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6631,13 +6657,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "ПоÑтавÑне на възелите" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Изтрий точки." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Създай нов полигон от нулата." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6667,16 +6714,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Изтрий избраните файлове?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Избиране на текущата папка" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Изтриване на анимациÑта?" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Избиране на текущата папка" @@ -6694,12 +6752,19 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Избиране на текущата папка" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "Файл:" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6715,6 +6780,11 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Добави Възел..." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6753,7 +6823,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "ИзнаÑÑне на проекта" #: editor/project_export.cpp @@ -8248,7 +8318,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "Стъпката на range() е нула!" #: modules/gdscript/gdscript_functions.cpp @@ -9147,7 +9218,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9192,7 +9263,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "PathFollow2D работи Ñамо когато е наÑледник на Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9283,6 +9356,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9299,6 +9376,10 @@ msgstr "Тревога!" msgid "Please Confirm..." msgstr "МолÑ, потвърдете..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9355,10 +9436,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" @@ -9375,6 +9452,31 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Zoom out" +#~ msgstr "Отдалечи" + +#~ msgid "Zoom in" +#~ msgstr "Приближи" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Промени ÑъщеÑтвуващ полигон:" + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+LMB: Раздели Сегмент." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Изтрий Точка." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Ðов TextFile" + +#~ msgid "Save Theme As" +#~ msgstr "Запази Темата Като" + +#~ msgid "Zoom:" +#~ msgstr "Приближение:" + #~ msgid "Class List:" #~ msgstr "СпиÑък на КлаÑове:" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index ae6a8a7f70..6ffe50143f 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -10,15 +10,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-11-29 08:11+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" "Last-Translator: Abdullah Zubair <abdullahzubair109@gmail.com>\n" "Language-Team: Bengali <https://hosted.weblate.org/projects/godot-engine/" "godot/bn/>\n" "Language: bn\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.18-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -275,7 +277,6 @@ msgstr "%d à¦à¦° জনà§à¦¯ নতà§à¦¨ টà§à¦°à§à¦¯à¦¾à¦•/পথ-সমà #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -553,15 +554,19 @@ msgstr "সমসà§à¦¤à¦—à§à¦²à¦¿ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à msgid "Selection Only" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° নিরà§à¦¬à¦¾à¦šà¦¿à¦¤à¦¸à¦®à§‚হ" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "সমà§à¦ªà§à¦°à¦¸à¦¾à¦°à¦¿à¦¤ করà§à¦¨ (জà§à¦®à§ ইন)" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "সংকà§à¦šà¦¿à¦¤ করà§à¦¨ (জà§à¦®à§ আউট)" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "সমà§à¦ªà§à¦°à¦¸à¦¾à¦°à¦¨/সংকোচন অপসারণ করà§à¦¨ (রিসেট জà§à¦®à§)" @@ -572,8 +577,8 @@ msgstr "সতরà§à¦•à¦¤à¦¾" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "জà§à¦®à§ (%):" +msgid "Font Size:" +msgstr "উৎস ফনà§à¦Ÿà§‡à¦° আকার:" #: editor/code_editor.cpp msgid "Line:" @@ -742,8 +747,8 @@ msgid "Recent:" msgstr "সামà§à¦ªà§à¦°à¦¤à¦¿à¦•:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করà§à¦¨:" @@ -794,8 +799,7 @@ msgid "Resource" msgstr "রিসোরà§à¦¸" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "পথ" @@ -1263,8 +1267,7 @@ msgid "Node Name:" msgstr "নোডের নাম:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "নাম" @@ -1768,6 +1771,12 @@ msgid "This operation can't be done without a tree root." msgstr "দৃশà§à¦¯ ছাড়া à¦à¦Ÿà¦¿ করা সমà§à¦à¦¬ হবে না।" #: editor/editor_node.cpp +msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " @@ -2219,7 +2228,7 @@ msgid "Undo" msgstr "সাবেক অবসà§à¦¥à¦¾à§Ÿ যান/আনডà§" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "পà§à¦¨à¦°à¦¾à¦¯à¦¼ করà§à¦¨" @@ -2244,7 +2253,7 @@ msgstr "পà§à¦°à¦•à¦²à§à¦ªà§‡à¦° সেটিংস" msgid "Export" msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "সরঞà§à¦œà¦¾à¦®-সমূহ" @@ -2700,6 +2709,12 @@ msgstr "নিযà§à¦•à§à¦¤" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2717,8 +2732,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "১ টি Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "নতà§à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" @@ -3198,7 +3212,7 @@ msgstr "ডà§à¦ªà§à¦²à¦¿à¦•à§‡à¦Ÿ" msgid "Move To..." msgstr "à¦à¦–ানে সরান..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "নতà§à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" @@ -3341,7 +3355,7 @@ msgstr "à¦à§à¦²: অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° নাম ইতিমঠ#: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম।" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3609,14 +3623,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Poly তৈরি করà§à¦¨" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Poly সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3625,26 +3639,28 @@ msgid "Insert Point" msgstr "সনà§à¦¨à¦¿à¦¬à§‡à¦¶à¦¿à¦¤ হচà§à¦›à§‡" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Poly সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨ (বিনà§à¦¦à§ অপসারণ করà§à¦¨)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "পলি à¦à¦¬à¦‚ বিনà§à¦¦à§ অপসারণ করà§à¦¨" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create a new polygon from scratch" -msgstr "আরমà§à¦ হতে নতà§à¦¨ polygon তৈরি করà§à¦¨à¥¤" +msgid "Create points." +msgstr "বিনà§à¦¦à§ অপসারণ করà§à¦¨" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "তৈরিকৃত পলিগন à¦à¦¡à¦¿à¦Ÿ করà§à¦¨:\n" "à¦à¦²à¦à¦®à¦¬à¦¿: পয়েনà§à¦Ÿ মà§à¦ করà§à¦¨à¥¤\n" @@ -3652,9 +3668,10 @@ msgstr "" "আরà¦à¦®à¦¬à¦¿: পয়েনà§à¦Ÿ মà§à¦›à§‡ ফেলà§à¦¨à¥¤" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" -msgstr "বিনà§à¦¦à§ অপসারণ করà§à¦¨" +msgid "Erase points." +msgstr "মাউসের ডান বোতাম: বিনà§à¦¦à§ মà§à¦›à§‡ ফেলà§à¦¨à¥¤" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3700,17 +3717,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "বিনà§à¦¦à§ অপসারণ করà§à¦¨" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "মাউসের ডান বোতাম: বিনà§à¦¦à§ মà§à¦›à§‡ ফেলà§à¦¨à¥¤" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "বিনà§à¦¦à§ সরান" @@ -3790,7 +3796,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "নোড সংযোজন করà§à¦¨" @@ -4355,7 +4360,7 @@ msgstr "সকল" msgid "Plugins" msgstr "পà§à¦²à¦¾à¦—ইন-সমূহ" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "সাজান:" @@ -4517,21 +4522,19 @@ msgid "Paste Pose" msgstr "à¦à¦™à§à¦—ি পà§à¦°à¦¤à¦¿à¦²à§‡à¦ªà¦¨ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "সংকà§à¦šà¦¿à¦¤ করà§à¦¨ (জà§à¦®à§ আউট)" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "জà§à¦®à§ পà§à¦¨:সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "সমà§à¦ªà§à¦°à¦¸à¦¾à¦°à¦¿à¦¤ করà§à¦¨ (জà§à¦®à§ ইন)" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "মোড (Mode) বাছাই করà§à¦¨" @@ -4805,8 +4808,17 @@ msgstr "" "টানà§à¦¨ à¦à¦¬à¦‚ ফেলà§à¦¨ + অলà§à¦Ÿà¦¾à¦° কী (Alt) : নোডের ধরণ পরিবরà§à¦¤à¦¨ করতে" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Poly3D তৈরি করà§à¦¨" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Poly তৈরি করà§à¦¨" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Poly সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Poly সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨ (বিনà§à¦¦à§ অপসারণ করà§à¦¨)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4921,37 +4933,9 @@ msgid "Item List Editor" msgstr "বসà§à¦¤à§à¦° তালিকা à¦à¦¡à¦¿à¦Ÿà¦°" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"à¦à¦‡ নোডের মধà§à¦¯à§‡ কোন অকà§à¦²à§à¦¡à¦¾à¦° পলিগন টà§à¦¡à¦¿ রিসোরà§à¦¸ বিদà§à¦¯à¦®à¦¾à¦¨ নেই।\n" -" নতà§à¦¨ পলিগন তৈরি করবেন?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "অকলà§à¦¡à¦¾à¦° (occluder) পলিগন তৈরি করà§à¦¨" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "আরমà§à¦ হতে নতà§à¦¨ polygon তৈরি করà§à¦¨à¥¤" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "বিদà§à¦¯à¦®à¦¾à¦¨ পলিগন সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "মাউসের বাম বোতাম: বিনà§à¦¦à§ সরান।" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "কনà§à¦Ÿà§à¦°à§‹à¦² + মাউসের বাম বোতাম: অংশ বিà¦à¦•à§à¦¤ করà§à¦¨à¥¤" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "মাউসের ডান বোতাম: বিনà§à¦¦à§ মà§à¦›à§‡ ফেলà§à¦¨à¥¤" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "মেসটি খালি!" @@ -5335,6 +5319,11 @@ msgid "Add Point to Curve" msgstr "বকà§à¦°à¦°à§‡à¦–ায় বিনà§à¦¦à§ যোগ করà§à¦¨" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "বকà§à¦°à¦°à§‡à¦–া বনà§à¦§ করà§à¦¨" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "বকà§à¦°à¦°à§‡à¦–ায় বিনà§à¦¦à§ সরান" @@ -5362,6 +5351,11 @@ msgid "Click: Add Point" msgstr "কà§à¦²à¦¿à¦•: বিনà§à¦¦à§ যোগ করà§à¦¨" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "অংশ বিà¦à¦•à§à¦¤ করà§à¦¨ (বকà§à¦°à¦°à§‡à¦–ায়)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "ডান কà§à¦²à¦¿à¦•: বিনà§à¦¦à§ অপসারণ করà§à¦¨" @@ -5377,11 +5371,6 @@ msgstr "বিনà§à¦¦à§ যোগ করà§à¦¨ (শূনà§à¦¯à¦¸à§à¦¥à¦¾à¦ #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "অংশ বিà¦à¦•à§à¦¤ করà§à¦¨ (বকà§à¦°à¦°à§‡à¦–ায়)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "বিনà§à¦¦à§ অপসারণ করà§à¦¨" @@ -5443,6 +5432,10 @@ msgstr "বকà§à¦°à¦°à§‡à¦–া বহিঃ-নিয়নà§à¦¤à§à¦°à¦£à§‡ msgid "Remove In-Control Point" msgstr "বকà§à¦°à¦°à§‡à¦–া আনà§à¦¤-নিয়নà§à¦¤à§à¦°à¦£à§‡ সরান" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "অংশ বিà¦à¦•à§à¦¤ করà§à¦¨ (বকà§à¦°à¦°à§‡à¦–ায়)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5455,10 +5448,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "বোনà§â€Œ/হাড় দেখান" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "UV Map তৈরি করà§à¦¨" @@ -5500,10 +5499,20 @@ msgid "Transform UV Map" msgstr "UV Map রà§à¦ªà¦¾à¦¨à§à¦¤à¦° করà§à¦¨" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°à§‡à¦° ধরণ" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Polygon 2D UV à¦à¦¡à¦¿à¦Ÿà¦°" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Polygon 2D UV à¦à¦¡à¦¿à¦Ÿà¦°" @@ -5528,11 +5537,7 @@ msgstr "বোনà§â€Œ/হাড় তৈরি করà§à¦¨" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Poly তৈরি করà§à¦¨" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "বিনà§à¦¦à§ সরান" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5560,20 +5565,20 @@ msgid "Scale Polygon" msgstr "পলিগন মাপ করà§à¦¨" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "à¦à¦•à¦Ÿà¦¿ সেটিং আইটেম পà§à¦°à¦¥à¦® নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5728,19 +5733,23 @@ msgid "Error saving file!" msgstr "TileSet সংরকà§à¦·à¦£à§‡ সমসà§à¦¯à¦¾ হয়েছে!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "থিম সংরকà§à¦·à¦£à§‡ সমসà§à¦¯à¦¾ হয়েছে" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "সংরকà§à¦·à¦£à§‡ সমসà§à¦¯à¦¾ হয়েছে" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "থিম ইমà§à¦ªà§‹à¦°à§à¦Ÿà§‡ সমসà§à¦¯à¦¾ হয়েছে" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿà§‡ সমসà§à¦¯à¦¾ হয়েছে" #: editor/plugins/script_editor_plugin.cpp @@ -5763,6 +5772,14 @@ msgid "Import Theme" msgstr "থিম ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "থিম সংরকà§à¦·à¦£à§‡ সমসà§à¦¯à¦¾ হয়েছে" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "সংরকà§à¦·à¦£à§‡ সমসà§à¦¯à¦¾ হয়েছে" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "থিম à¦à¦‡à¦°à§‚পে সংরকà§à¦·à¦£ করà§à¦¨..." @@ -5805,8 +5822,8 @@ msgstr "ফাইল" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "ফাইল" +msgid "Open..." +msgstr "খà§à¦²à§à¦¨" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5836,6 +5853,11 @@ msgid "Theme" msgstr "থিম" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "থিম ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "থিম রিলোড করà§à¦¨" @@ -5844,10 +5866,6 @@ msgid "Save Theme" msgstr "থিম সংরকà§à¦·à¦£ করà§à¦¨" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "থিম à¦à¦‡à¦°à§‚পে সংরকà§à¦·à¦£ করà§à¦¨" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "ডকà§à¦®à§‡à¦¨à§à¦Ÿà¦¸à¦®à§‚হ বনà§à¦§ করà§à¦¨" @@ -5960,6 +5978,10 @@ msgstr "" msgid "Go to Function" msgstr "ফাংশনে যান..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° ফাইল সিসà§à¦Ÿà§‡à¦® থেকে রিসোরà§à¦¸ ডà§à¦°à¦ª করা সমà§à¦à¦¬à¥¤" @@ -5994,10 +6016,6 @@ msgstr "বড় হাতের অকà§à¦·à¦°à§‡ পরিবরà§à¦¤à¦¨à§‡ ঠmsgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6739,11 +6757,18 @@ msgid "Set Region Rect" msgstr "গঠনবিনà§à¦¯à¦¾à¦¸à§‡à¦° à¦à¦²à¦¾à¦•à¦¾" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<নান/কিছà§à¦‡ না>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6998,12 +7023,12 @@ msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "শাখা (tree) হতে নোড (সমূহ) যà§à¦•à§à¦¤ করà§à¦¨" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7015,13 +7040,34 @@ msgid "Merge from Scene" msgstr "দৃশà§à¦¯ হতে à¦à¦•à¦¤à§à¦°à¦¿à¦¤ করবেন" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ পà§à¦°à¦¤à¦¿à¦²à§‡à¦ªà¦¨ করà§à¦¨" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "মাউসের ডান বোতাম: বিনà§à¦¦à§ মà§à¦›à§‡ ফেলà§à¦¨à¥¤" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "আরমà§à¦ হতে নতà§à¦¨ polygon তৈরি করà§à¦¨à¥¤" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7051,16 +7097,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ করবেন?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "à¦à¦‡-মà§à¦¹à§‚রà§à¦¤à§‡ সমà§à¦ªà¦¾à¦¦à¦¿à¦¤ রিসোরà§à¦¸à¦Ÿà¦¿ সংরকà§à¦·à¦£ করà§à¦¨à¥¤" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "বিনà§à¦¦à§ অপসারণ করà§à¦¨" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "à¦à¦‡-মà§à¦¹à§‚রà§à¦¤à§‡ সমà§à¦ªà¦¾à¦¦à¦¿à¦¤ রিসোরà§à¦¸à¦Ÿà¦¿ সংরকà§à¦·à¦£ করà§à¦¨à¥¤" @@ -7079,12 +7136,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "à¦à¦‡-মà§à¦¹à§‚রà§à¦¤à§‡ সমà§à¦ªà¦¾à¦¦à¦¿à¦¤ রিসোরà§à¦¸à¦Ÿà¦¿ সংরকà§à¦·à¦£ করà§à¦¨à¥¤" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "দৃশà§à¦¯ ছাড়া à¦à¦Ÿà¦¿ করা সমà§à¦à¦¬ হবে না।" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet (টাইল-সেট)..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7103,6 +7167,11 @@ msgstr "ডান" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "নোড সংযোজন করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "শেডার" @@ -7148,7 +7217,7 @@ msgstr "সংযোগ..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° পà§à¦°à¦¿à¦¸à§‡à¦Ÿ:" #: editor/project_export.cpp @@ -8735,7 +8804,8 @@ msgid "GDNative" msgstr "জিডিনà§à¦¯à¦¾à¦Ÿà¦¿à¦" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "ধাপ মান/আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ শূনà§à¦¯!" #: modules/gdscript/gdscript_functions.cpp @@ -9689,7 +9759,7 @@ msgstr "" "আকৃতি তৈরি করà§à¦¨!" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9739,7 +9809,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "PathFollow2D à¦à¦•à¦®à¦¾à¦¤à§à¦° Path2D à¦à¦° অংশ হিসেবে নিরà§à¦§à¦¾à¦°à¦¨ করালেই কাজ করে।" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9837,6 +9909,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° তালিকাটি অকারà§à¦¯à¦•à¦°à¥¤" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" @@ -9854,6 +9930,10 @@ msgstr "সতরà§à¦•à¦¤à¦¾!" msgid "Please Confirm..." msgstr "অনà§à¦—à§à¦°à¦¹ করে নিশà§à¦šà¦¿à¦¤ করà§à¦¨..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9918,11 +9998,6 @@ msgstr "ফনà§à¦Ÿà§‡à¦° আকার অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯à¥¤" msgid "Input" msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<নান/কিছà§à¦‡ না>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9940,6 +10015,57 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Poly তৈরি করà§à¦¨" + +#, fuzzy +#~ msgid "Create a new polygon from scratch" +#~ msgstr "আরমà§à¦ হতে নতà§à¦¨ polygon তৈরি করà§à¦¨à¥¤" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "সংকà§à¦šà¦¿à¦¤ করà§à¦¨ (জà§à¦®à§ আউট)" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "সমà§à¦ªà§à¦°à¦¸à¦¾à¦°à¦¿à¦¤ করà§à¦¨ (জà§à¦®à§ ইন)" + +#~ msgid "Create Poly3D" +#~ msgstr "Poly3D তৈরি করà§à¦¨" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "à¦à¦‡ নোডের মধà§à¦¯à§‡ কোন অকà§à¦²à§à¦¡à¦¾à¦° পলিগন টà§à¦¡à¦¿ রিসোরà§à¦¸ বিদà§à¦¯à¦®à¦¾à¦¨ নেই।\n" +#~ " নতà§à¦¨ পলিগন তৈরি করবেন?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "বিদà§à¦¯à¦®à¦¾à¦¨ পলিগন সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨:" + +#~ msgid "LMB: Move Point." +#~ msgstr "মাউসের বাম বোতাম: বিনà§à¦¦à§ সরান।" + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "কনà§à¦Ÿà§à¦°à§‹à¦² + মাউসের বাম বোতাম: অংশ বিà¦à¦•à§à¦¤ করà§à¦¨à¥¤" + +#~ msgid "RMB: Erase Point." +#~ msgstr "মাউসের ডান বোতাম: বিনà§à¦¦à§ মà§à¦›à§‡ ফেলà§à¦¨à¥¤" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "ফাইল" + +#~ msgid "Save Theme As" +#~ msgstr "থিম à¦à¦‡à¦°à§‚পে সংরকà§à¦·à¦£ করà§à¦¨" + +#~ msgid "<None>" +#~ msgstr "<নান/কিছà§à¦‡ না>" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "জà§à¦®à§ (%):" + #~ msgid "Class List:" #~ msgstr "কà§à¦²à¦¾à¦¸à§‡à¦° তালিকা:" @@ -10655,9 +10781,6 @@ msgstr "" #~ msgid "Source Font:" #~ msgstr "ফনà§à¦Ÿà§‡à¦° উৎস:" -#~ msgid "Source Font Size:" -#~ msgstr "উৎস ফনà§à¦Ÿà§‡à¦° আকার:" - #~ msgid "Dest Resource:" #~ msgstr "রিসোরà§à¦¸à§‡à¦° গনà§à¦¤à¦¬à§à¦¯à¦¸à§à¦¥à¦¾à¦¨:" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 1b8fa8933c..ac7f336e45 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-19 06:24+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" "Last-Translator: Roger Blanco Ribera <roger.blancoribera@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" "Language: ca\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -250,7 +252,6 @@ msgstr "Voleu crear %d NOVES pistes i inserir-hi claus?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -530,15 +531,19 @@ msgstr "Reemplaça-hoTot" msgid "Selection Only" msgstr "Selecció Només" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Apropa" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Allunya" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Reinicia el Zoom" @@ -547,8 +552,9 @@ msgid "Warnings:" msgstr "Avisos:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Zoom:" +#, fuzzy +msgid "Font Size:" +msgstr "Mida de la lletra:" #: editor/code_editor.cpp msgid "Line:" @@ -708,8 +714,8 @@ msgid "Recent:" msgstr "Recents:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Cerca:" @@ -760,8 +766,7 @@ msgid "Resource" msgstr "Recurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "CamÃ" @@ -1227,8 +1232,7 @@ msgid "Node Name:" msgstr "Nom del node:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nom" @@ -1711,6 +1715,12 @@ msgstr "Aquesta operació no es pot fer sense cap arrel d'arbre." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2154,7 +2164,7 @@ msgid "Undo" msgstr "Desfés" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Refés" @@ -2178,7 +2188,7 @@ msgstr "Configuració del Projecte" msgid "Export" msgstr "Exporta" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Eines" @@ -2609,6 +2619,12 @@ msgstr "Assigna..." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2625,8 +2641,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "Selecciona una Vista" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Script Nou" @@ -3050,7 +3065,7 @@ msgstr "Duplica..." msgid "Move To..." msgstr "Mou cap a..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Script Nou..." @@ -3180,7 +3195,8 @@ msgid "Group name already exists." msgstr "Aquest grup ja existeix." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "El Nom del grup no és và lid." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3428,14 +3444,14 @@ msgid "Activate now?" msgstr "Activar ara?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Crea PolÃgon" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Edita PolÃgon" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3443,25 +3459,27 @@ msgid "Insert Point" msgstr "Insereix un Punt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Edita el PolÃgon (Elimina un Punt)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Elimina el PolÃgon i el Punt" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Crea un PolÃgon nou del no-res" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Crea punts." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Edita un PolÃgon existent:\n" "Clic Esquerra: Mou un Punt.\n" @@ -3469,8 +3487,9 @@ msgstr "" "Clic Dreta: Elimina un Punt." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Elimina els Punts" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Elimina un Punt." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3518,15 +3537,6 @@ msgstr "Selecciona i mou els punts, crea punts fent clic dret." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Crea punts." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Elimina un Punt." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Punt" @@ -3604,7 +3614,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Afegeix un Node" @@ -4158,7 +4167,7 @@ msgstr "Tot" msgid "Plugins" msgstr "Connectors" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Ordena:" @@ -4320,21 +4329,19 @@ msgid "Paste Pose" msgstr "Enganxa Positura" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Allunya" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Allunya" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Apropa" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Mode de selecció" @@ -4600,8 +4607,17 @@ msgstr "" "Arrossegar i deixar anar + Maj: Canvia el tipus del node" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Crea un Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Crea PolÃgon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Edita PolÃgon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Edita el PolÃgon (Elimina un Punt)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4703,37 +4719,9 @@ msgid "Item List Editor" msgstr "Editor de Llistes d'Elements" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"No s'ha trobat cap recurs de tipus OccluderPolygon2D en aquest node.\n" -"Vol Crear i assignar-ne un ara?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Crea un PolÃgon Oclusor" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Crea un nou PolÃgon del no-res." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Edita un polÃgon existent:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "Clic Esquerra: Mou un Punt." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl + Clic Esquerra: Divideix el Segment." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "Clic Dret: Eliminar un Punt." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "La malla és buida!" @@ -5103,6 +5091,11 @@ msgid "Add Point to Curve" msgstr "Afegeix un Punt a la Corba" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Tanca la Corba" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Mou un Punt de la Corba" @@ -5130,6 +5123,11 @@ msgid "Click: Add Point" msgstr "Clic: Afegeix un Punt" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Parteix el Segment (de la Corba)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Clic Dret: Elimina el Punt" @@ -5145,11 +5143,6 @@ msgstr "Afegeix un Punt (en l'espai buit)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Parteix el Segment (de la Corba)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Elimina el Punt" @@ -5206,6 +5199,10 @@ msgstr "Elimina el Punt Out-Control" msgid "Remove In-Control Point" msgstr "Elimina el Punt In-Control" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Parteix el Segment (de la Corba)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5218,10 +5215,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Mostra els Ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Crea un Mapa UV" @@ -5263,10 +5266,20 @@ msgid "Transform UV Map" msgstr "Transforma el Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Tipus de Transformació" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Editor d'UVs de PolÃgons 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Editor d'UVs de PolÃgons 2D" @@ -5291,11 +5304,7 @@ msgstr "Crea els ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Crea PolÃgon" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Mou el Punt" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5323,20 +5332,20 @@ msgid "Scale Polygon" msgstr "Escala el PolÃgon" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Cal seleccionar un Element!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5486,19 +5495,23 @@ msgid "Error saving file!" msgstr "Error en desar el TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Error en desar el tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Error en desar" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Error en importar el tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Error en importar" #: editor/plugins/script_editor_plugin.cpp @@ -5521,6 +5534,14 @@ msgid "Import Theme" msgstr "Importa un Tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Error en desar el tema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Error en desar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Desa el Tema com a..." @@ -5562,8 +5583,8 @@ msgstr "Fitxer" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Visualitza Fitxers" +msgid "Open..." +msgstr "Obre" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5592,6 +5613,11 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importa un Tema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Recarrega el Tema" @@ -5600,10 +5626,6 @@ msgid "Save Theme" msgstr "Desa el Tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Anomena i Desa el Tema" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Tanca la Documentació" @@ -5713,6 +5735,10 @@ msgstr "" msgid "Go to Function" msgstr "Vés a la Funció..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Només s'hi poden deixar caure Recursos del sistema de fitxers." @@ -5746,10 +5772,6 @@ msgstr "Converteix a Majúscules" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6464,11 +6486,18 @@ msgid "Set Region Rect" msgstr "Defineix la Regió Rectangular" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Estableix la Nansa" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Mode Imant:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<Cap>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6713,12 +6742,12 @@ msgstr "Transforma" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Afegeix Nodes des d'Arbre" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Elimina l'entrada actual" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6730,15 +6759,34 @@ msgid "Merge from Scene" msgstr "Combina-ho a partir de l'Escena" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Selecciona una sub-tessel·la com a icona. També s'utilitzarà per les " -"assignacions automà tiques no-và lides de l'autotile." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Enganxa l'Animació" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Elimina un Punt." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Crea un nou PolÃgon del no-res." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6769,13 +6817,8 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" -"clic Esquerra: activa el bit\n" -"clic Dreta: desactiva el bit." +msgid "Delete selected Rect." +msgstr "Voleu Esborrar els fitxers seleccionats?" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6786,6 +6829,21 @@ msgstr "Selecciona la sub-tessel·la en edició." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Delete polygon." +msgstr "Elimina els Punts" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "" +"clic Esquerra: activa el bit\n" +"clic Dreta: desactiva el bit." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6803,11 +6861,19 @@ msgstr "Selecciona una sub-tessel·la per a modificar-ne la prioritat." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Selecciona una sub-tessel·la per a modificar-ne la prioritat." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Aquesta operació no pot dur-se a terme sense cap escena." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Tile Set" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6827,6 +6893,11 @@ msgstr "Dreta" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Afegeix un Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Ombreig" @@ -6866,7 +6937,7 @@ msgstr "Afegeix..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Exporta Projecte" #: editor/project_export.cpp @@ -8396,7 +8467,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "L'argument 'step' és zero!" #: modules/gdscript/gdscript_functions.cpp @@ -9316,7 +9388,7 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "Res és visible perquè no s'ha assignat cap Malla a cap pas de Dibuix." #: scene/3d/cpu_particles.cpp @@ -9367,7 +9439,9 @@ msgstr "" "PathFollow2D només funciona si s'estableix com a fill d'un node Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9477,6 +9551,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "L'arbre d'animació no és và lid." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Mode Cru" @@ -9493,6 +9571,10 @@ msgstr "Ep!" msgid "Please Confirm..." msgstr "Confirmeu..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9562,11 +9644,6 @@ msgstr "La mida de la lletra no és và lida." msgid "Input" msgstr "Afegeix una Entrada" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Cap>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9584,6 +9661,62 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Crea PolÃgon" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Crea un PolÃgon nou del no-res" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Allunya" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Apropa" + +#~ msgid "Create Poly3D" +#~ msgstr "Crea un Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "No s'ha trobat cap recurs de tipus OccluderPolygon2D en aquest node.\n" +#~ "Vol Crear i assignar-ne un ara?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Edita un polÃgon existent:" + +#~ msgid "LMB: Move Point." +#~ msgstr "Clic Esquerra: Mou un Punt." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl + Clic Esquerra: Divideix el Segment." + +#~ msgid "RMB: Erase Point." +#~ msgstr "Clic Dret: Eliminar un Punt." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Visualitza Fitxers" + +#~ msgid "Save Theme As" +#~ msgstr "Anomena i Desa el Tema" + +#~ msgid "<None>" +#~ msgstr "<Cap>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Selecciona una sub-tessel·la com a icona. També s'utilitzarà per les " +#~ "assignacions automà tiques no-và lides de l'autotile." + +#~ msgid "Zoom:" +#~ msgstr "Zoom:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Esteu segur que voleu eliminar totes les connexions de \"" @@ -10277,9 +10410,6 @@ msgstr "" #~ msgid "Source Font:" #~ msgstr "Lletra:" -#~ msgid "Source Font Size:" -#~ msgstr "Mida de la lletra:" - #~ msgid "Dest Resource:" #~ msgstr "Recurs Objectiu:" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index f6bc57ed66..0c90480fbf 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -13,15 +13,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-21 19:07+0000\n" -"Last-Translator: Jan 'spl!te' KondelÃk <j.kondelik@centrum.cz>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" +"Last-Translator: VojtÄ›ch Å amla <auzkok@seznam.cz>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" "Language: cs\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -61,7 +63,7 @@ msgstr "Neplatné argumenty pro konstrukci '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "PÅ™i volánà '%s':" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -259,7 +261,6 @@ msgstr "VytvoÅ™it %d NOVÃCH stop a vložit klÃÄe?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -499,7 +500,7 @@ msgstr "ZmÄ›nit hodnotu pole" #: editor/code_editor.cpp msgid "Go to Line" -msgstr "Běž na řádek" +msgstr "JÃt na řádek" #: editor/code_editor.cpp msgid "Line Number:" @@ -533,15 +534,19 @@ msgstr "Nahradit vÅ¡echny" msgid "Selection Only" msgstr "Pouze výbÄ›r" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "PÅ™iblÞit" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Oddálit" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Obnovit původnà pÅ™iblÞenÃ" @@ -550,8 +555,9 @@ msgid "Warnings:" msgstr "VarovánÃ:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "PÅ™iblÞit:" +#, fuzzy +msgid "Font Size:" +msgstr "Pohled zepÅ™edu" #: editor/code_editor.cpp msgid "Line:" @@ -665,9 +671,9 @@ msgid "Edit Connection: " msgstr "Upravit pÅ™ipojenÃ: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Jste si jisti, že chcete odstranit vÅ¡echna pÅ™ipojenà od \"" +msgstr "" +"Jste si jisti, že chcete odstranit vÅ¡echna pÅ™ipojenà ze signálu \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -675,7 +681,7 @@ msgstr "Signály" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" -msgstr "" +msgstr "Jste si jistÃ, že chcete odstranit vÅ¡echna pÅ™ipojenà z tohoto signálu?" #: editor/connections_dialog.cpp msgid "Disconnect All" @@ -686,9 +692,8 @@ msgid "Edit..." msgstr "Upravit..." #: editor/connections_dialog.cpp -#, fuzzy msgid "Go To Method" -msgstr "Metody" +msgstr "PÅ™ejÃt na metodu" #: editor/create_dialog.cpp msgid "Change %s Type" @@ -713,8 +718,8 @@ msgid "Recent:" msgstr "Nedávné:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Hledat:" @@ -765,8 +770,7 @@ msgid "Resource" msgstr "Zdroj" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Cesta" @@ -1227,8 +1231,7 @@ msgid "Node Name:" msgstr "Název uzlu:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Název" @@ -1306,7 +1309,6 @@ msgid "File Exists, Overwrite?" msgstr "Soubor už existuje. PÅ™epsat?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Vybrat tuto složku" @@ -1315,15 +1317,13 @@ msgid "Copy Path" msgstr "KopÃrovat cestu" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "OtevÅ™Ãt ve správci souborů" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "Ukázat ve správci souborů" +msgstr "Zobrazit ve správci souborů" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1466,19 +1466,16 @@ msgid "Methods" msgstr "Metody" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Metody" +msgstr "Metody:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Vlastnosti" +msgstr "Vlastnosti motivu" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Vlastnosti:" +msgstr "Vlastnosti motivu:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1505,14 +1502,12 @@ msgid "Constants:" msgstr "Konstanty:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Popis" +msgstr "Popis tÅ™Ãdy" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Popis:" +msgstr "Popis tÅ™Ãdy:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1529,12 +1524,10 @@ msgstr "" "$url2]zažádat[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Popis vlastnosti:" +msgstr "Popis vlastnosti" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" msgstr "Popis vlastnosti:" @@ -1547,12 +1540,10 @@ msgstr "" "nám tÃm, že ho[color=$color][url=$url]vytvoÅ™Ãte[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Popis metody:" +msgstr "Popis metody" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" msgstr "Popis metody:" @@ -1570,39 +1561,32 @@ msgid "Search Help" msgstr "Prohledat nápovÄ›du" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Nahradit vÅ¡echny" +msgstr "Zobrazit vÅ¡echny" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "TÅ™Ãdy" +msgstr "Pouze tÅ™Ãdy" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Metody" +msgstr "Pouze metody" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Signály" +msgstr "Pouze signály" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Konstanty" +msgstr "Pouze konstanty" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Vlastnosti" +msgstr "Pouze vlastnosti" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Vlastnosti" +msgstr "Pouze vlastnosti motivu" #: editor/editor_help_search.cpp #, fuzzy @@ -1610,9 +1594,8 @@ msgid "Member Type" msgstr "ÄŒlenové" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "TÅ™Ãda:" +msgstr "TÅ™Ãda" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1711,6 +1694,12 @@ msgstr "Tato operace nemůže být provedena bez koÅ™enového uzlu." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1719,7 +1708,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Nelze pÅ™epsat scénu, která je stále otevÅ™ená!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1797,6 +1786,9 @@ msgid "" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" +"Toto je vzdálený objekt, takže jeho zmÄ›ny nebudou zachovány.\n" +"PÅ™eÄtÄ›te si, prosÃm, dokumentaci týkajÃcà se debugovánÃ, abyste lépe " +"pochopili tento proces." #: editor/editor_node.cpp msgid "There is no defined scene to run." @@ -1962,13 +1954,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Nelze naÄÃst skript rozÅ¡ÃÅ™enà z cesty: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"Nelze naÄÃst skript rozÅ¡ÃÅ™enà z cesty: '%s'. Skript nenà v režimu nástroje " -"(tool)." +"Nelze naÄÃst skript rozÅ¡ÃÅ™enà z cesty: '%s'. Zdá se, že se v kódu nacházà " +"chyba. ProsÃm, zkontrolujte syntax." #: editor/editor_node.cpp msgid "" @@ -2022,7 +2013,6 @@ msgstr "VýchozÃ" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" msgstr "Zobrazit v souborovém systému" @@ -2107,7 +2097,6 @@ msgid "Save Scene" msgstr "Uložit scénu" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Uložit vÅ¡echny scény" @@ -2137,7 +2126,7 @@ msgid "Undo" msgstr "ZpÄ›t" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Znovu" @@ -2161,14 +2150,13 @@ msgstr "Nastavenà projektu" msgid "Export" msgstr "Exportovat" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Nástroje" #: editor/editor_node.cpp -#, fuzzy msgid "Open Project Data Folder" -msgstr "OtevÅ™Ãt Správce projektu?" +msgstr "OtevÅ™Ãt složku s daty projektu" #: editor/editor_node.cpp msgid "Quit to Project List" @@ -2473,7 +2461,7 @@ msgstr "OtevÅ™Ãt editor skriptů" #: editor/editor_node.cpp editor/project_manager.cpp msgid "Open Asset Library" -msgstr "" +msgstr "OtevÅ™Ãt knihovnu assetů" #: editor/editor_node.cpp msgid "Open the next Editor" @@ -2492,9 +2480,8 @@ msgid "Thumbnail..." msgstr "Náhled..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Edit Plugin" -msgstr "Pluginy" +msgstr "Upravit plugin" #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" @@ -2523,9 +2510,8 @@ msgstr "Upravit:" #: editor/editor_profiler.cpp editor/plugins/animation_state_machine_editor.cpp #: editor/rename_dialog.cpp -#, fuzzy msgid "Start" -msgstr "Start!" +msgstr "Start" #: editor/editor_profiler.cpp msgid "Measure:" @@ -2577,11 +2563,11 @@ msgstr "" #: editor/editor_properties.cpp msgid "Layer" -msgstr "" +msgstr "Vrstva" #: editor/editor_properties.cpp msgid "Bit %d, value %d" -msgstr "" +msgstr "Bit %d, hodnota %d" #: editor/editor_properties.cpp msgid "[Empty]" @@ -2593,9 +2579,17 @@ msgstr "PÅ™iÅ™adit.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Nelze vytvoÅ™it ViewportTexture na zdroji uloženém jako soubor.\n" +"Zdroj musà patÅ™it scénÄ›." #: editor/editor_properties.cpp msgid "" @@ -2609,8 +2603,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "Vyberte Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Nový skript" @@ -2644,9 +2637,8 @@ msgstr "Konvertovat na %s" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Open Editor" -msgstr "OtevÅ™Ãt v editoru" +msgstr "OtevÅ™Ãt editor" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" @@ -2694,7 +2686,6 @@ msgid "Write your logic in the _run() method." msgstr "NapiÅ¡te svůj kód v _run() metodÄ›." #: editor/editor_run_script.cpp -#, fuzzy msgid "There is an edited scene already." msgstr "NÄ›jaka scéna už je upravována." @@ -2753,11 +2744,11 @@ msgstr "(AktuálnÃ)" #: editor/export_template_manager.cpp msgid "Retrieving mirrors, please wait..." -msgstr "" +msgstr "ZÃskávánà zrcadel, prosÃm Äekejte..." #: editor/export_template_manager.cpp msgid "Remove template version '%s'?" -msgstr "" +msgstr "Odstranit Å¡ablonu verze '%s'?" #: editor/export_template_manager.cpp msgid "Can't open export templates zip." @@ -2781,18 +2772,20 @@ msgstr "Extrakce exportnÃch Å¡ablon" #: editor/export_template_manager.cpp msgid "Importing:" -msgstr "" +msgstr "ImportovánÃ:" #: editor/export_template_manager.cpp msgid "" "No download links found for this version. Direct download is only available " "for official releases." msgstr "" +"Nebyly nalezeny odkazy pro staženà této verze. PÅ™Ãmé staženà je dostupné " +"pouze pro oficiálnà vydánÃ." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve." -msgstr "" +msgstr "Nelze vyÅ™eÅ¡it." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2802,7 +2795,7 @@ msgstr "Nelze se pÅ™ipojit." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response." -msgstr "" +msgstr "Žádná odpovÄ›Ä." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2812,22 +2805,23 @@ msgstr "Požadavek se nezdaÅ™il." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Redirect Loop." -msgstr "" +msgstr "Zacyklené pÅ™esmÄ›rovánÃ." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Failed:" -msgstr "" +msgstr "Selhalo:" #: editor/export_template_manager.cpp msgid "Download Complete." -msgstr "" +msgstr "Stahovánà dokonÄeno." #: editor/export_template_manager.cpp msgid "" "Templates installation failed. The problematic templates archives can be " "found at '%s'." msgstr "" +"Instalace Å¡ablon selhala. Problémové archivy Å¡ablon lze nalézt na '%s'." #: editor/export_template_manager.cpp msgid "Error requesting url: " @@ -2843,11 +2837,11 @@ msgstr "Odpojeno" #: editor/export_template_manager.cpp msgid "Resolving" -msgstr "" +msgstr "ŘeÅ¡Ãm" #: editor/export_template_manager.cpp msgid "Can't Resolve" -msgstr "" +msgstr "Nelze vyÅ™eÅ¡it" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2877,19 +2871,19 @@ msgstr "Chyba pÅ™ipojenÃ" #: editor/export_template_manager.cpp msgid "SSL Handshake Error" -msgstr "" +msgstr "Selhánà SSL handshaku" #: editor/export_template_manager.cpp msgid "Current Version:" -msgstr "" +msgstr "Aktuálnà verze:" #: editor/export_template_manager.cpp msgid "Installed Versions:" -msgstr "" +msgstr "Instalované verze:" #: editor/export_template_manager.cpp msgid "Install From File" -msgstr "" +msgstr "Instalovat ze souboru" #: editor/export_template_manager.cpp msgid "Remove Template" @@ -2918,9 +2912,8 @@ msgstr "" "ukládána!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "OblÃbené:" +msgstr "OblÃbené" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3005,14 +2998,12 @@ msgid "Instance" msgstr "Instance" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "OblÃbené:" +msgstr "PÅ™idat do oblÃbených" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Odebrat ze skupiny" +msgstr "Odebrat z oblÃbených" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3034,7 +3025,7 @@ msgstr "Duplikovat..." msgid "Move To..." msgstr "PÅ™esunout do..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Nový skript..." @@ -3043,12 +3034,10 @@ msgid "New Resource..." msgstr "Nový zdroj..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" msgstr "Rozbalit vÅ¡e" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" msgstr "Sbalit vÅ¡e" @@ -3109,24 +3098,20 @@ msgid "Create Script" msgstr "VytvoÅ™it skript" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "NajÃt v souborech" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "NajÃt: " +msgstr "NajÃt:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Složka: " +msgstr "Složka:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Filtr: " +msgstr "Filtry:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3166,7 +3151,8 @@ msgid "Group name already exists." msgstr "Název skupiny již existuje." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "Neplatný název skupiny." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3303,12 +3289,10 @@ msgid "Failed to load resource." msgstr "Selhalo nahránà zdroje." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "Rozbalit vÅ¡echny vlastnosti" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "Sbalit vÅ¡echny vlastnosti" @@ -3415,14 +3399,13 @@ msgid "Activate now?" msgstr "Aktivovat nynÃ?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "VytvoÅ™it polygon" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Editovat polygon" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3430,30 +3413,37 @@ msgid "Insert Point" msgstr "Vložit polygon" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Upravit polygon (Odstranit bod)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Odstranit polygon a bod" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "VytvoÅ™it body." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" +"Upravit existujÃcà polygon:\n" +"LMB: PÅ™esunout bod.\n" +"Ctrl+LMB: RozdÄ›lit segment.\n" +"RMB: Vymazat bod." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Odstranit body" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Vymazat body." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3467,15 +3457,14 @@ msgstr "PÅ™idat animaci" #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Load.." -msgstr "NaÄÃst" +msgstr "NaÄÃst.." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "This type of node can't be used. Only root nodes are allowed." -msgstr "" +msgstr "Tento typ uzlu nelze použÃt. Jsou povoleny pouze koÅ™enové uzly." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3494,37 +3483,23 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Select and move points, create points with RMB." -msgstr "" +msgstr "Zvolte a pÅ™esuňte body. Nové uzly vytvoÅ™te pomocà RMB." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Odstranit body" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "RMB: Vymazat bod." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" -msgstr "PÅ™esunout bod" +msgstr "Bod" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Open Animation Node" -msgstr "Jméno animace:" +msgstr "OtevÅ™Ãt uzel animace" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Triangle already exists" -msgstr "Akce '%s' již existuje!" +msgstr "TrojúhelnÃk již existuje" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "BlendSpace2D does not belong to an AnimationTree node." @@ -3587,16 +3562,13 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Add Node.." -msgstr "PÅ™idat uzel" +msgstr "PÅ™idat uzel.." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Edit Filtered Tracks:" -msgstr "Editovat filtry" +msgstr "Upravit filtrované stopy:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "Enable filtering" @@ -3608,15 +3580,15 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Animation Name:" -msgstr "" +msgstr "Nový název animace:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "New Anim" -msgstr "" +msgstr "Nová animace" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Animation Name:" -msgstr "" +msgstr "ZmÄ›nit název animace:" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Delete Animation?" @@ -3628,14 +3600,12 @@ msgid "Remove Animation" msgstr "Smazat animaci" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Invalid animation name!" -msgstr "Chyba: Neplatné jméno animace!" +msgstr "Neplatné jméno animace!" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Animation name already exists!" -msgstr "Chyba: Jméno animace už existuje!" +msgstr "Jméno animace už existuje!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -3659,9 +3629,8 @@ msgid "Duplicate Animation" msgstr "Duplikovat animaci" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to copy!" -msgstr "ERROR: Nevybrána animace pro kopÃrovánÃ!" +msgstr "Žádná animace pro kopÃrovánÃ!" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy @@ -3677,9 +3646,8 @@ msgid "Paste Animation" msgstr "Vložit animaci" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to edit!" -msgstr "ERROR: Nevybrána animace pro úpravu!" +msgstr "Žádná animace pro úpravu!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" @@ -3723,14 +3691,12 @@ msgid "New" msgstr "Nový" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Edit Transitions..." -msgstr "PÅ™echody" +msgstr "Upravit pÅ™echody..." #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Open in Inspector" -msgstr "OtevÅ™Ãt v editoru" +msgstr "OtevÅ™Ãt v inspektoru" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Display list of animations in player." @@ -3823,7 +3789,7 @@ msgstr "" #: editor/plugins/animation_state_machine_editor.cpp msgid "End" -msgstr "" +msgstr "Konec" #: editor/plugins/animation_state_machine_editor.cpp msgid "Immediate" @@ -3858,14 +3824,12 @@ msgid "" msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Create new nodes." -msgstr "VytvoÅ™it nový %s" +msgstr "VytvoÅ™it nové uzly." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Connect nodes." -msgstr "PÅ™ipojit uzly" +msgstr "PÅ™ipojit uzly." #: editor/plugins/animation_state_machine_editor.cpp #, fuzzy @@ -3881,9 +3845,8 @@ msgid "Set the end animation. This is useful for sub-transitions." msgstr "" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition: " -msgstr "PÅ™echod" +msgstr "PÅ™echod: " #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -4075,7 +4038,7 @@ msgstr "Neúspěšná kontrola sha256 hashe" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Asset Download Error:" -msgstr "" +msgstr "Chyba pÅ™i stahovánà assetu:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Downloading (%s / %s)..." @@ -4107,7 +4070,7 @@ msgstr "Chyba pÅ™i stahovánÃ" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Download for this asset is already in progress!" -msgstr "" +msgstr "Stahovánà tohoto assetu právÄ› probÃhá!" #: editor/plugins/asset_library_editor_plugin.cpp msgid "First" @@ -4135,7 +4098,7 @@ msgstr "VÅ¡echny" msgid "Plugins" msgstr "Pluginy" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Řadit:" @@ -4285,21 +4248,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Oddálit" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Oddálit" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "PÅ™iblÞit" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Režim výbÄ›ru" @@ -4480,9 +4441,8 @@ msgid "Show Origin" msgstr "Zobrazit poÄátek" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Show Viewport" -msgstr "Zobrazit pomocné" +msgstr "Zobrazit Viewport" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" @@ -4501,13 +4461,12 @@ msgid "Layout" msgstr "RozloženÃ" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys." -msgstr "Vložit klÃÄe" +msgstr "Vložit klÃÄe." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" -msgstr "" +msgstr "Vložit klÃÄ (existujÃcà stopy)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Copy Pose" @@ -4558,8 +4517,17 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "VytvoÅ™it Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "VytvoÅ™it polygon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Editovat polygon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Upravit polygon (Odstranit bod)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4662,37 +4630,9 @@ msgid "Item List Editor" msgstr "Editor seznamu položek" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Na tomto uzlu nenà žádný OccluderPolygon2D.\n" -"VytvoÅ™it a pÅ™iÅ™adit k tomuto uzlu?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "VytvoÅ™it Occluder Polygon" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Upravit existujÃcà polygon:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: PÅ™esunout bod." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+LMB: RozdÄ›lit segment." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Vymazat bod." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh je prázdný!" @@ -4883,15 +4823,15 @@ msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Populate MultiMesh" -msgstr "" +msgstr "Naplnit MultiMesh" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Target Surface:" -msgstr "" +msgstr "CÃlový povrch:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Source Mesh:" -msgstr "" +msgstr "Zdrojová mesh:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "X-Axis" @@ -4911,11 +4851,11 @@ msgstr "" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Rotation:" -msgstr "" +msgstr "Náhodná rotace:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Tilt:" -msgstr "" +msgstr "Náhodné naklonÄ›nÃ:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Scale:" @@ -4927,7 +4867,7 @@ msgstr "Naplnit" #: editor/plugins/navigation_polygon_editor_plugin.cpp msgid "Create Navigation Polygon" -msgstr "" +msgstr "VytvoÅ™it navigaÄnà polygon" #: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy @@ -4940,11 +4880,11 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Error loading image:" -msgstr "" +msgstr "Chyba pÅ™i nahrávánà obrázku:" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "No pixels with transparency > 128 in image..." -msgstr "" +msgstr "Žádný pixel s průhlednostà > 128 v obrázku..." #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generate Visibility Rect" @@ -4960,23 +4900,22 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Convert to CPUParticles" -msgstr "Konvertovat na velká pÃsmena" +msgstr "PÅ™evést na CPUParticles" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Particles" -msgstr "" +msgstr "Částice" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generated Point Count:" -msgstr "" +msgstr "PoÄet vygenerovaných bodů:" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" -msgstr "" +msgstr "ÄŒas generovánà (sec):" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Emission Mask" @@ -5048,7 +4987,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" -msgstr "" +msgstr "Odstranit bod z kÅ™ivky" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Out-Control from Curve" @@ -5061,7 +5000,12 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Add Point to Curve" -msgstr "" +msgstr "PÅ™idat bod do kÅ™ivky" + +#: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "UzavÅ™Ãt kÅ™ivku" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" @@ -5089,12 +5033,16 @@ msgstr "Shift+TáhnutÃ:" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Click: Add Point" -msgstr "KliknutÃ: PÅ™idat bod" +msgstr "Klik: PÅ™idat bod" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" -msgstr "" +msgstr "Pravý klik: Smazat bod" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" @@ -5107,11 +5055,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Odstranit bod" @@ -5141,9 +5084,8 @@ msgid "Curve Point #" msgstr "Bod kÅ™ivky #" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Point Position" -msgstr "Odstranit signál" +msgstr "Nastavit pozici bodu kÅ™ivky" #: editor/plugins/path_editor_plugin.cpp msgid "Set Curve In Position" @@ -5171,6 +5113,10 @@ msgstr "Odstranit funkci" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5183,8 +5129,14 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" -msgstr "Zobrazit kosti" +msgid "Sync Bones" +msgstr "Synchronizovat kosti" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" @@ -5228,10 +5180,20 @@ msgid "Transform UV Map" msgstr "Transformovat UV mapu" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Typ transformace" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "OtevÅ™Ãt 2D editor" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5249,16 +5211,12 @@ msgid "Splits" msgstr "RozdÄ›lit cestu" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Bones" -msgstr "VytvoÅ™it kosti" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "VytvoÅ™it polygon" +msgstr "Kosti" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "PÅ™esunout bod" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5286,20 +5244,20 @@ msgid "Scale Polygon" msgstr "ZmÄ›nit měřÃtko mnohoúhelnÃku" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Vyberte složku pro skenovánÃ" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5407,12 +5365,11 @@ msgstr "Zdroj" #: editor/plugins/root_motion_editor_plugin.cpp msgid "AnimationTree has no path set to an AnimationPlayer" -msgstr "" +msgstr "AnimationTree nemá nastavenou cestu k AnimstionPlayer" #: editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Path to AnimationPlayer is invalid" -msgstr "Strom animace je neplatný." +msgstr "Cesta k AnimationPlayer je neplatná" #: editor/plugins/script_editor_plugin.cpp msgid "Clear Recent Files" @@ -5423,59 +5380,66 @@ msgid "Close and save changes?" msgstr "ZavÅ™Ãt a uložit zmÄ›ny?" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error writing TextFile:" -msgstr "Chyba pÅ™i naÄÃtánÃ:" +msgstr "Chyba pÅ™i zápisu textového souboru:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." -msgstr "Chyba - Nelze vytvoÅ™it skript v souborovém systému." +msgstr "Chyba: nelze naÄÃst soubor." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error could not load file." -msgstr "Chyba - Nelze vytvoÅ™it skript v souborovém systému." +msgstr "Chyba nelze naÄÃst soubor." #: editor/plugins/script_editor_plugin.cpp msgid "Error saving file!" msgstr "Chyba pÅ™i ukládánà souboru!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Chyba pÅ™i ukládánà motivu" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Chyba pÅ™i ukládánÃ" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Chyba pÅ™i importu motivu" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Chyba pÅ™i importu" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "New TextFile..." -msgstr "Nová složka..." +msgstr "Nový textový soubor..." #: editor/plugins/script_editor_plugin.cpp msgid "Open File" msgstr "OtevÅ™Ãt soubor" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Save File As..." -msgstr "Uložit jako..." +msgstr "Uložit soubor jako..." #: editor/plugins/script_editor_plugin.cpp msgid "Import Theme" msgstr "Importovat motiv" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Chyba pÅ™i ukládánà motivu" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Chyba pÅ™i ukládánÃ" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Uložit motiv jako..." @@ -5517,8 +5481,8 @@ msgstr "Soubor" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Zobrazit soubory" +msgid "Open..." +msgstr "OtevÅ™Ãt" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5547,6 +5511,11 @@ msgid "Theme" msgstr "Téma" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importovat motiv" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Znovu naÄÃst motiv" @@ -5555,10 +5524,6 @@ msgid "Save Theme" msgstr "Uložit motiv" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Uložit motiv jako" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "ZavÅ™Ãt dokumentaci" @@ -5606,9 +5571,8 @@ msgid "Keep Debugger Open" msgstr "Nechat ladÃcà program otevÅ™ený" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" -msgstr "Debugovat externÃm editorem" +msgstr "Debugovat v externÃm editoru" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" @@ -5651,9 +5615,8 @@ msgid "Debugger" msgstr "Ladicà program" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" -msgstr "Prohledat výsledky" +msgstr "Výsledky hledánÃ" #: editor/plugins/script_text_editor.cpp msgid "Line" @@ -5664,9 +5627,12 @@ msgid "(ignore)" msgstr "(ignorovat)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "PÅ™ejÃt na funkci..." +msgstr "PÅ™ejÃt na funkci" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5700,10 +5666,6 @@ msgstr "Velká pÃsmena" msgid "Syntax Highlighter" msgstr "ZvýrazňovaÄ syntaxe" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5755,12 +5717,10 @@ msgid "Trim Trailing Whitespace" msgstr "Osekat koncové mezery" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "PÅ™evést odsazenà na mezery" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "PÅ™evést odsazenà na taby" @@ -5778,12 +5738,10 @@ msgid "Remove All Breakpoints" msgstr "Odstranit vÅ¡echny breakpointy" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "PÅ™ejÃt na dalÅ¡Ã breakpoint" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" msgstr "PÅ™ejÃt na pÅ™edchozà breakpoint" @@ -5792,17 +5750,14 @@ msgid "Find Previous" msgstr "NajÃt pÅ™edchozÃ" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "NajÃt v souborech..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "PÅ™ejÃt na funkci..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "PÅ™ejÃt na řádek..." @@ -5843,9 +5798,8 @@ msgid "Create physical skeleton" msgstr "VytvoÅ™it fyzickou kostru" #: editor/plugins/skeleton_ik_editor_plugin.cpp -#, fuzzy msgid "Play IK" -msgstr "Spustit" +msgstr "Spustit IK" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" @@ -6269,11 +6223,11 @@ msgstr "" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Change" -msgstr "" +msgstr "ZmÄ›na transformace" #: editor/plugins/spatial_editor_plugin.cpp msgid "Translate:" -msgstr "" +msgstr "Posunout:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotate (deg.):" @@ -6285,7 +6239,7 @@ msgstr "ZmÄ›nit měřÃtko (pomÄ›r):" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Type" -msgstr "" +msgstr "Typ transformace" #: editor/plugins/spatial_editor_plugin.cpp msgid "Pre" @@ -6328,9 +6282,8 @@ msgid "Grow (Pixels): " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Update Preview" -msgstr "Náhled" +msgstr "Obnovit náhled" #: editor/plugins/sprite_editor_plugin.cpp msgid "Settings:" @@ -6338,7 +6291,7 @@ msgstr "NastavenÃ:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "ERROR: Couldn't load frame resource!" -msgstr "" +msgstr "CHYBA: Nelze naÄÃst zdroj snÃmku!" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" @@ -6354,11 +6307,11 @@ msgstr "Vložit snÃmek" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Empty" -msgstr "" +msgstr "PÅ™idat prázdný" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "ZmÄ›nit smyÄku animace" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation FPS" @@ -6386,11 +6339,11 @@ msgstr "SnÃmky animace" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" -msgstr "" +msgstr "Vložit prázdný (pÅ™ed)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (After)" -msgstr "" +msgstr "Vložit prázdný (za)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move (Before)" @@ -6409,12 +6362,17 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Žádné>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Žádné" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6447,7 +6405,7 @@ msgstr "Oblast textury" #: editor/plugins/theme_editor_plugin.cpp msgid "Can't save theme to file:" -msgstr "" +msgstr "Nelze uložit motiv do souboru:" #: editor/plugins/theme_editor_plugin.cpp msgid "Add All Items" @@ -6471,7 +6429,7 @@ msgstr "Editovat téma..." #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." -msgstr "" +msgstr "Menu editace motivu." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -6487,11 +6445,11 @@ msgstr "VytvoÅ™it prázdnou Å¡ablonu" #: editor/plugins/theme_editor_plugin.cpp msgid "Create Empty Editor Template" -msgstr "" +msgstr "VytvoÅ™it prázdný motiv editoru" #: editor/plugins/theme_editor_plugin.cpp msgid "Create From Current Editor Theme" -msgstr "" +msgstr "VytvoÅ™it ze souÄasného motivu editoru" #: editor/plugins/theme_editor_plugin.cpp msgid "CheckBox Radio1" @@ -6603,12 +6561,11 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Erase TileMap" -msgstr "" +msgstr "Vymazat TileMap" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Find Tile" -msgstr "NajÃt dalÅ¡Ã" +msgstr "NajÃt dlaždici" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Transpose" @@ -6628,30 +6585,27 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" -msgstr "" +msgstr "Vybrat dlaždici" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Odstranit výbÄ›r" +msgstr "KopÃrovat výbÄ›r" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Režim otáÄenÃ" +msgstr "OtoÄit doleva" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "OtoÄit polygon" +msgstr "OtoÄit doprava" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "PÅ™evrátit horizontálnÄ›" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "PÅ™evrátit vertikálnÄ›" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy @@ -6660,13 +6614,13 @@ msgstr "Animace: zmÄ›na transformace" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "PÅ™idat uzel(y) ze stromu" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" -msgstr "Odstranit signál" +msgid "Remove selected Texture from TileSet." +msgstr "Odstranit aktuálnà texturu z TileSetu" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6677,13 +6631,34 @@ msgid "Merge from Scene" msgstr "SlouÄit ze scény" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Vložit animaci" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Vymazat body." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "VytvoÅ™it polygon" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6713,16 +6688,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Odstranit vybrané soubory?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "VytvoÅ™it složku" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Odstranit body" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "VytvoÅ™it složku" @@ -6741,38 +6727,44 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "VytvoÅ™it složku" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." -msgstr "Tato operace nemůže být provedena bez scény." +msgstr "Tato vlastnost nemůže být zmÄ›nÄ›na." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "Soubor:" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vertex" -msgstr "Vrcholy" +msgstr "Vrchol" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Fragment" -msgstr "Argumenty:" +msgstr "Fragment" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Light" -msgstr "Pravý" +msgstr "SvÄ›tlo" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "PÅ™idat uzel.." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" -msgstr "Shader" +msgstr "VisualShader" #: editor/project_export.cpp -#, fuzzy msgid "Runnable" -msgstr "Povolit" +msgstr "Spustitelný" #: editor/project_export.cpp #, fuzzy @@ -6788,14 +6780,12 @@ msgid "Export templates for this platform are missing/corrupted:" msgstr "Exportnà šablony pro tuto platformu chybà nebo jsou poÅ¡kozené:" #: editor/project_export.cpp -#, fuzzy msgid "Release" -msgstr "právÄ› uvolnÄ›no" +msgstr "VydánÃ" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "Exportovat" +msgstr "Exportovánà vÅ¡eho" #: editor/project_export.cpp msgid "Presets" @@ -6807,7 +6797,7 @@ msgstr "PÅ™idat..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Exportovat projekt" #: editor/project_export.cpp @@ -7089,18 +7079,20 @@ msgid "" "You don't currently have any projects.\n" "Would you like to explore the official example projects in the Asset Library?" msgstr "" +"V této chvÃli nemáte žádný projekt.\n" +"PÅ™ejete si prozkoumat oficiálnà ukázkové projekty v knihovnÄ› assetů?" #: editor/project_settings_editor.cpp msgid "Key " -msgstr "" +msgstr "Klávesa " #: editor/project_settings_editor.cpp msgid "Joy Button" -msgstr "" +msgstr "TlaÄÃtko gamepadu" #: editor/project_settings_editor.cpp msgid "Joy Axis" -msgstr "" +msgstr "Osa gamepadu" #: editor/project_settings_editor.cpp msgid "Mouse Button" @@ -7520,13 +7512,12 @@ msgid "Substitute" msgstr "" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node name" -msgstr "Název uzlu:" +msgstr "Název uzlu" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" -msgstr "" +msgstr "Jméno rodiÄe uzlu, pokud dostupné" #: editor/rename_dialog.cpp msgid "Node type" @@ -7559,9 +7550,8 @@ msgid "Initial value for the counter" msgstr "" #: editor/rename_dialog.cpp -#, fuzzy msgid "Step" -msgstr "Krok:" +msgstr "Krok" #: editor/rename_dialog.cpp msgid "Amount by which counter is incremented for each node" @@ -8294,7 +8284,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "Argument kroku je nula!" #: modules/gdscript/gdscript_functions.cpp @@ -8976,6 +8967,10 @@ msgid "" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " "define its shape." msgstr "" +"Tento uzel nemá žádný tvar, takže nemůže kolidovat ani interagovat s " +"ostatnÃmi objekty.\n" +"Zvažte možnost pÅ™idat CollisionShape2D nebo CollisionPolygon2D jako potomka " +"abyste definovali jeho tvar." #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -9161,6 +9156,10 @@ msgid "" "Consider adding a CollisionShape or CollisionPolygon as a child to define " "its shape." msgstr "" +"Tento uzel nemá žádný tvar, takže nemůže kolidovat ani interagovat s " +"ostatnÃmi objekty.\n" +"Zvažte možnost pÅ™idat CollisionShape nebo CollisionPolygon jako potomka " +"abyste definovali jeho tvar." #: scene/3d/collision_polygon.cpp msgid "" @@ -9195,7 +9194,7 @@ msgstr "" "prosÃm zdroj tvar!" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9234,17 +9233,17 @@ msgid "" msgstr "" #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D funguje pouze když je dÃtÄ›tem uzlu Path2D." +msgstr "PathFollow funguje pouze, když je dÃtÄ›tem uzlu Path." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D funguje pouze když je dÃtÄ›tem uzlu Path2D." +msgstr "OrientedPathFollow funguje pouze když je dÃtÄ›tem uzlu Path." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9288,6 +9287,8 @@ msgid "" "running.\n" "Change the size in children collision shapes instead." msgstr "" +"ZmÄ›ny velikosti SoftBody budou za bÄ›hu pÅ™epsány fyzikálnÃm enginem.\n" +"Změňte mÃsto nÄ›ho velikost koliznÃch tvarů potomků." #: scene/3d/sprite_3d.cpp msgid "" @@ -9302,24 +9303,24 @@ msgid "" "VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " "it as a child of a VehicleBody." msgstr "" +"VehicleWheel sloužà jako systém kol pro VehicleBody. Použijte ho prosÃm jako " +"potomka VehicleBody." #: scene/animation/animation_blend_tree.cpp msgid "On BlendTree node '%s', animation not found: '%s'" msgstr "" #: scene/animation/animation_blend_tree.cpp -#, fuzzy msgid "Animation not found: '%s'" -msgstr "Nástroje pro animaci" +msgstr "Animace nenalezena: '%s'" #: scene/animation/animation_tree.cpp msgid "In node '%s', invalid animation: '%s'." -msgstr "" +msgstr "V uzlu '%s', neplatná animace: '%s'." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Invalid animation: '%s'." -msgstr "Chyba: Neplatné jméno animace!" +msgstr "Neplatná animace: '%s'." #: scene/animation/animation_tree.cpp #, fuzzy @@ -9344,6 +9345,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Strom animace je neplatný." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "RAW mód" @@ -9360,6 +9365,10 @@ msgstr "Pozor!" msgid "Please Confirm..." msgstr "PotvrÄte prosÃm..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9372,7 +9381,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Pokud má exp_edit hodnotu true, pak min_value musà být > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9423,19 +9432,12 @@ msgid "Invalid font size." msgstr "Neplatná velikost fontu." #: scene/resources/visual_shader.cpp -#, fuzzy msgid "Input" -msgstr "PÅ™idat vstup" - -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Žádné>" +msgstr "Vstup" #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid source for shader." -msgstr "Neplatná velikost fontu." +msgstr "Neplatný zdroj pro shader." #: servers/visual/shader_language.cpp msgid "Assignment to function." @@ -9449,6 +9451,51 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "VytvoÅ™it polygon" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Oddálit" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "PÅ™iblÞit" + +#~ msgid "Create Poly3D" +#~ msgstr "VytvoÅ™it Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Na tomto uzlu nenà žádný OccluderPolygon2D.\n" +#~ "VytvoÅ™it a pÅ™iÅ™adit k tomuto uzlu?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Upravit existujÃcà polygon:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: PÅ™esunout bod." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+LMB: RozdÄ›lit segment." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Vymazat bod." + +#~ msgid "New TextFile" +#~ msgstr "Nový textový soubor" + +#~ msgid "Save Theme As" +#~ msgstr "Uložit motiv jako" + +#~ msgid "<None>" +#~ msgstr "<Žádné>" + +#~ msgid "Zoom:" +#~ msgstr "PÅ™iblÞit:" + #~ msgid "Class List:" #~ msgstr "Seznam tÅ™Ãd:" diff --git a/editor/translations/da.po b/editor/translations/da.po index 03e628df44..94896879a0 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -9,18 +9,22 @@ # Michael Madsen <mim@michael-madsen.dk>, 2017. # Christoffer Schindel <ceas@outlook.com>, 2018. # frederikzt <frederikzt@gmail.com>, 2018. +# Jonathan B. Jørgensen <pizzaernam@gmail.com>, 2018. +# Peter G. Laursen <GhostReven@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-21 19:07+0000\n" -"Last-Translator: frederikzt <frederikzt@gmail.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" +"Last-Translator: GhostReven <GhostReven@gmail.com>\n" "Language-Team: Danish <https://hosted.weblate.org/projects/godot-engine/" "godot/da/>\n" "Language: da\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -35,16 +39,15 @@ msgstr "Ikke nok bytes til afkodning af bytes, eller ugyldigt format." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "Ugyldigt input %i (mislykket) i udtrykket" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "self kan ikke bruges fordi instansen er null (mislykket)" #: core/math/expression.cpp -#, fuzzy msgid "Invalid operands to operator %s, %s and %s." -msgstr "Ugyldigt indeks egenskabsnavn '%s' i noden %s." +msgstr "Ugyldigt operandere til operator %s, %s og %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" @@ -52,7 +55,7 @@ msgstr "Ugyldigt indeks af type %s for basistype %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "Ugyldigt navngivet indeks '%s' for basistype %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" @@ -60,20 +63,20 @@ msgstr "Ugyldige argumenter til at konstruere '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "Ved kald til '%s':" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Free" -msgstr "" +msgstr "Gratis" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "" +msgstr "Balanceret" #: editor/animation_bezier_editor.cpp msgid "Mirror" -msgstr "" +msgstr "Spejl" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" @@ -117,28 +120,27 @@ msgstr "Anim Skift Call" #: editor/animation_track_editor.cpp msgid "Property Track" -msgstr "" +msgstr "Egenskabsbane" #: editor/animation_track_editor.cpp msgid "3D Transform Track" -msgstr "" +msgstr "3D-transformationsspor" #: editor/animation_track_editor.cpp msgid "Call Method Track" -msgstr "" +msgstr "Kald metode spor" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" -msgstr "" +msgstr "Béizierkurve spor" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" -msgstr "" +msgstr "Lydafspilningsspor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Playback Track" -msgstr "Stop animation afspilning. (S)" +msgstr "Animation-afspilningsspor" #: editor/animation_track_editor.cpp msgid "Add Track" @@ -149,9 +151,8 @@ msgid "Animation Length Time (seconds)" msgstr "Animations længde (i sekunder)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation Looping" -msgstr "Animation Zoom." +msgstr "Animationsløkke" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -160,39 +161,35 @@ msgstr "Funktioner:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "" +msgstr "Lydklip:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "Anim klip:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Toggle this track on/off." -msgstr "Skift distraktions-fri modus." +msgstr "SlÃ¥ spor til/fra." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "" +msgstr "Opdateringstilstand (Hvordan denne egenskab er sat)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Interpolation Mode" -msgstr "Distraktions Fri Modus" +msgstr "Interpolationsmetode" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" -msgstr "" +msgstr "Lykke omviklingstilstand (Interpoler med begyndelsen af lykken)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Remove this track." -msgstr "Fjern valgte spor." +msgstr "Fjern spor." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Time (s): " -msgstr "Tid:" +msgstr "Tid (s): " #: editor/animation_track_editor.cpp msgid "Continuous" @@ -208,11 +205,11 @@ msgstr "Udløser" #: editor/animation_track_editor.cpp msgid "Capture" -msgstr "" +msgstr "Optag" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "Nærmest" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp @@ -221,30 +218,28 @@ msgstr "Lineær" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "" +msgstr "Kubik" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" -msgstr "" +msgstr "Klamme Løkke Interpolation" #: editor/animation_track_editor.cpp msgid "Wrap Loop Interp" -msgstr "" +msgstr "Vikle Løkke Interpolation" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "Indsæt nøgle" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Duplicate Key(s)" -msgstr "Anim Dublikér Nøgle" +msgstr "Dublikér nøgle(r)" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Delete Key(s)" -msgstr "Anim Slet Nøgler" +msgstr "Slet nøgle(r)" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" @@ -262,7 +257,6 @@ msgstr "Opret %d NYE spor og indsæt nøgler?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -274,7 +268,7 @@ msgstr "Anim Indsæt" #: editor/animation_track_editor.cpp msgid "AnimationPlayer can't animate itself, only other players." -msgstr "" +msgstr "Animationsafspiller kan ikke animere sig selv, kun andre afspillere." #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" @@ -290,7 +284,7 @@ msgstr "Anim Indsæt Nøgle" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." -msgstr "" +msgstr "Transformeringsspor kan kun anvendes pÃ¥ rumlige noder." #: editor/animation_track_editor.cpp msgid "" @@ -299,35 +293,38 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" +"Lydspor kan kun pege pÃ¥ noder af typen:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "" +msgstr "Animation spor kan kun pege pÃ¥ AnimationSpiller noder." #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." -msgstr "" +msgstr "En animation spiller kan ikke animerer sig selv, kun andre spillerer." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "Det er ikke muligt at tilføje et nyt spor uden en rod" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." -msgstr "" +msgstr "Sporvej er ugyldig, sÃ¥ kan ikke tilføje en nøgle." #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "Spor er ikke af typen rumlig, kan ikke indsætte nøgle" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." -msgstr "" +msgstr "Sporvej er ugyldig, sÃ¥ kan ikke tilføje en metode nøgle." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Method not found in object: " -msgstr "VariableGet blev ikke fundet i scriptet: " +msgstr "Metode ikke fundet i objekt: " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -335,7 +332,7 @@ msgstr "Anim Flyt Nøgle" #: editor/animation_track_editor.cpp msgid "Clipboard is empty" -msgstr "" +msgstr "Udklipsholder er tom" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" @@ -345,24 +342,24 @@ msgstr "Anim Skaler Nøgler" msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "" +"Denne mulighed virker ikke for Bezier-redigering, da det kun er et enkelt " +"spor." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." -msgstr "" +msgstr "Vis kun spor fra noder valgt in træ." #: editor/animation_track_editor.cpp msgid "Group tracks by node or display them as plain list." -msgstr "" +msgstr "Grupper spor efter node eller vis dem som almindelig liste." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap (s): " -msgstr "Trin:" +msgstr "Trin: " #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation step value." -msgstr "Animation Zoom." +msgstr "Animation trin værdi." #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -374,19 +371,16 @@ msgid "Edit" msgstr "Rediger" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation properties." -msgstr "Animation Zoom." +msgstr "Animation egenskaber." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Copy Tracks" -msgstr "Kopier Parametre" +msgstr "Kopier Spor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Paste Tracks" -msgstr "Indsæt Parametre" +msgstr "Indsæt Spor" #: editor/animation_track_editor.cpp msgid "Scale Selection" @@ -405,19 +399,16 @@ msgid "Duplicate Transposed" msgstr "Duplicate transposed" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Delete Selection" msgstr "Slet Valgte" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "GÃ¥ Til Næste Trin" +msgstr "GÃ¥ til Næste Trin" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "GÃ¥ Til Forrige Trin" +msgstr "GÃ¥ til Forrige Trin" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -425,19 +416,19 @@ msgstr "Optimer Animation" #: editor/animation_track_editor.cpp msgid "Clean-Up Animation" -msgstr "Clean-Up Animation" +msgstr "Ryd op Animation" #: editor/animation_track_editor.cpp msgid "Pick the node that will be animated:" -msgstr "" +msgstr "Vælg noden der vil blive animeret:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "Brug Bezier Kurver" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" -msgstr "Anim. optimizer" +msgstr "Anim. optimerer" #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" @@ -481,7 +472,7 @@ msgstr "Skalaforhold:" #: editor/animation_track_editor.cpp msgid "Select tracks to copy:" -msgstr "" +msgstr "Vælg spor til kopiering:" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -539,26 +530,29 @@ msgstr "Erstat Alle" msgid "Selection Only" msgstr "Kun Valgte" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoom Ind" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zoom Ud" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Nulstil Zoom" #: editor/code_editor.cpp msgid "Warnings:" -msgstr "" +msgstr "Advarsler:" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "Zoom Ind" +msgid "Font Size:" +msgstr "Skrifttype Størrelse:" #: editor/code_editor.cpp msgid "Line:" @@ -650,9 +644,8 @@ msgid "Disconnect '%s' from '%s'" msgstr "Afbryd '%s' fra '%s'" #: editor/connections_dialog.cpp -#, fuzzy msgid "Disconnect all from signal: '%s'" -msgstr "Afbryd '%s' fra '%s'" +msgstr "Frakoble alt fra signal: '%s'" #: editor/connections_dialog.cpp msgid "Connect..." @@ -664,18 +657,17 @@ msgid "Disconnect" msgstr "Afbryd" #: editor/connections_dialog.cpp -#, fuzzy msgid "Connect Signal: " -msgstr "Forbindelses Signal:" +msgstr "Forbind Signal: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Edit Connection: " -msgstr "Forbindelses fejl" +msgstr "Redigere Forbindelse: " #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" +"Er du sikker pÃ¥ at du vil fjerne alle forbindelser fra \"%s\" signalet?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -683,22 +675,19 @@ msgstr "Signaler" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" -msgstr "" +msgstr "Er du sikker pÃ¥ at du vil fjerne alle forbindelser fra dette signal?" #: editor/connections_dialog.cpp -#, fuzzy msgid "Disconnect All" -msgstr "Afbryd" +msgstr "Frakoble Alt" #: editor/connections_dialog.cpp -#, fuzzy msgid "Edit..." -msgstr "Rediger" +msgstr "Rediger..." #: editor/connections_dialog.cpp -#, fuzzy msgid "Go To Method" -msgstr "Metoder" +msgstr "GÃ¥ til Metode" #: editor/create_dialog.cpp msgid "Change %s Type" @@ -723,8 +712,8 @@ msgid "Recent:" msgstr "Seneste:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Søgning:" @@ -775,8 +764,7 @@ msgid "Resource" msgstr "Ressource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Sti" @@ -824,7 +812,6 @@ msgstr "" "Fjern dem alligevel? (ej fortrydes)" #: editor/dependency_editor.cpp editor/export_template_manager.cpp -#, fuzzy msgid "Cannot remove:" msgstr "Kan ikke fjerne:" @@ -833,9 +820,8 @@ msgid "Error loading:" msgstr "Fejl under indlæsning:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "Indlæs af Scene fejler, fordi den er afhængig af noget der mangler:" +msgstr "Indlæs mislykkedes pÃ¥ grund af manglende afhængigheder:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1057,7 +1043,7 @@ msgstr "Solo" #: editor/editor_audio_buses.cpp msgid "Mute" -msgstr "Mute" +msgstr "Sluk" #: editor/editor_audio_buses.cpp msgid "Bypass" @@ -1196,9 +1182,8 @@ msgid "Rename Autoload" msgstr "Omdøb Autoload" #: editor/editor_autoload_settings.cpp -#, fuzzy msgid "Toggle AutoLoad Globals" -msgstr "Skift Autoload Globals" +msgstr "Skift AutoIndlæs Globalt" #: editor/editor_autoload_settings.cpp msgid "Move Autoload" @@ -1242,8 +1227,7 @@ msgid "Node Name:" msgstr "Node Navn:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Navn" @@ -1321,24 +1305,21 @@ msgid "File Exists, Overwrite?" msgstr "Filen Eksisterer, Overskrives?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "Vælg Method" +msgstr "Vælg denne mappe" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" msgstr "Kopier Sti" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "Vis I Fil Manager" +msgstr "Ã…bn i FilhÃ¥ndtering" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "Vis I Fil Manager" +msgstr "Vis i FilhÃ¥ndtering" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1454,11 +1435,11 @@ msgstr "Top" #: editor/editor_help.cpp msgid "Class:" -msgstr "Class:" +msgstr "Klasse:" #: editor/editor_help.cpp editor/scene_tree_editor.cpp msgid "Inherits:" -msgstr "Inherits:" +msgstr "Arver:" #: editor/editor_help.cpp msgid "Inherited by:" @@ -1481,19 +1462,16 @@ msgid "Methods" msgstr "Metoder" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Metoder" +msgstr "Metoder:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Egenskaber" +msgstr "Tema Egenskaber" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Egenskaber" +msgstr "Tema Egenskaber:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1513,21 +1491,19 @@ msgstr "enum " #: editor/editor_help.cpp msgid "Constants" -msgstr "Constants" +msgstr "Konstanter" #: editor/editor_help.cpp msgid "Constants:" -msgstr "Constants:" +msgstr "Konstanter:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Beskrivelse" +msgstr "Klasse beskrivelse" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Beskrivelse:" +msgstr "Klasse beskrivelse:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1539,19 +1515,17 @@ msgid "" "$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/" "url][/color]." msgstr "" -"Der er i øjeblikket ingen beskrivelse af denne klasse. Det vil være en stor " -"hjælp, hvis du kan [color=$color][url=$url]bidrage[/url][/color] med en " -"beskrivelse!" +"Der er i øjeblikket ingen vejledninger for denne klasse, du kan [color=" +"$color][url=$url]bidrage med en[/url][/color] eller [color=$color][url=" +"$url2]anmode en[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Beskrivelse af Egenskaber:" +msgstr "Egenskab beskrivelser" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "Beskrivelse af Egenskaber:" +msgstr "Egenskab beskrivelser:" #: editor/editor_help.cpp msgid "" @@ -1562,14 +1536,12 @@ msgstr "" "ved at give os dit [color=$color][url=$url]bidrag[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Metode Beskrivelse:" +msgstr "Metode beskrivelser" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Metode Beskrivelse:" +msgstr "Metode beskrivelser:" #: editor/editor_help.cpp msgid "" @@ -1586,49 +1558,40 @@ msgid "Search Help" msgstr "Søg i Hjælp" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Erstat Alle" +msgstr "Vis alle" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Klasser" +msgstr "Kun klasser" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Metoder" +msgstr "Kun metoder" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Signaler" +msgstr "Kun signaler" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Constants" +msgstr "Kun konstanter" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Egenskaber" +msgstr "Kun egenskaber" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Egenskaber" +msgstr "Kun tema egenskaber" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Medlemmer" +msgstr "Medlemstype" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Class:" +msgstr "Klasse" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1722,9 +1685,14 @@ msgid "Creating Thumbnail" msgstr "Opretter Thumbnail" #: editor/editor_node.cpp -#, fuzzy msgid "This operation can't be done without a tree root." -msgstr "Denne handling kan ikke foretages uden tree root" +msgstr "Denne handling kan ikke foretages uden en trærod." + +#: editor/editor_node.cpp +msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" #: editor/editor_node.cpp msgid "" @@ -1739,7 +1707,6 @@ msgid "Can't overwrite scene that is still open!" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Can't load MeshLibrary for merging!" msgstr "Kan ikke indlæse MeshLibrary til sammenlægning!" @@ -1748,9 +1715,8 @@ msgid "Error saving MeshLibrary!" msgstr "Fejl, kan ikke gemme MeshLibrary!" #: editor/editor_node.cpp -#, fuzzy msgid "Can't load TileSet for merging!" -msgstr "Kan ikke indlæse TileSet til sammenlægning!" +msgstr "Kan ikke indlæse Flisesæt til sammenlægning!" #: editor/editor_node.cpp msgid "Error saving TileSet!" @@ -1994,13 +1960,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Kan ikke indlæse addon script fra stien: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"Kan ikke indlæse addon script fra sti: '%s' Script er ikke i " -"værktøjstilstand." +"Kan ikke indlæse tilføjelse script fra sti: '%s' Der ser ud til at være en " +"fejl i koden, tjek syntaksen." #: editor/editor_node.cpp msgid "" @@ -2053,19 +2018,16 @@ msgstr "Standard" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" -msgstr "Vis I Fil Manager" +msgstr "Vis i Filsystem" #: editor/editor_node.cpp -#, fuzzy msgid "Play This Scene" -msgstr "Spil Scenen" +msgstr "Spil denne Scene" #: editor/editor_node.cpp -#, fuzzy msgid "Close Tab" -msgstr "Luk" +msgstr "Luk faneblad" #: editor/editor_node.cpp msgid "Switch Scene Tab" @@ -2084,9 +2046,8 @@ msgid "%d more files" msgstr "%d flere filer" #: editor/editor_node.cpp -#, fuzzy msgid "Dock Position" -msgstr "Dock Position" +msgstr "Dok Position" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -2101,7 +2062,6 @@ msgid "Add a new scene." msgstr "Tilføj en ny scene." #: editor/editor_node.cpp -#, fuzzy msgid "Scene" msgstr "Scene" @@ -2130,7 +2090,6 @@ msgid "New Scene" msgstr "Ny Scene" #: editor/editor_node.cpp -#, fuzzy msgid "New Inherited Scene..." msgstr "Ny Nedarvet Scene..." @@ -2143,7 +2102,6 @@ msgid "Save Scene" msgstr "Gem Scene" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Gem alle Scener" @@ -2165,7 +2123,7 @@ msgstr "MaskeBibliotek..." #: editor/editor_node.cpp msgid "TileSet..." -msgstr "TileSet..." +msgstr "Flisesæt..." #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp @@ -2173,14 +2131,13 @@ msgid "Undo" msgstr "Fortryd" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Annuller Fortyd" #: editor/editor_node.cpp -#, fuzzy msgid "Revert Scene" -msgstr "Vend Scene Tilbage" +msgstr "Gendan scene" #: editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." @@ -2196,16 +2153,15 @@ msgstr "Projekt Indstillinger" #: editor/editor_node.cpp editor/project_export.cpp msgid "Export" -msgstr "Eksporter" +msgstr "Eksport" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Værktøjer" #: editor/editor_node.cpp -#, fuzzy msgid "Open Project Data Folder" -msgstr "Ã…bn Projekt Manager?" +msgstr "Ã…bn Projekt datamappe" #: editor/editor_node.cpp msgid "Quit to Project List" @@ -2213,13 +2169,12 @@ msgstr "Afslut til Projekt Listen" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp -#, fuzzy msgid "Debug" -msgstr "Debug" +msgstr "Fejlfinde" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "Implementere med Remote Debug" +msgstr "Indsætte med Fjern Fejlfind" #: editor/editor_node.cpp msgid "" @@ -2231,7 +2186,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Small Deploy with Network FS" -msgstr "Lille Deploy med Nætværks FS" +msgstr "Lille Indsættelse med Nætværks FS" #: editor/editor_node.cpp msgid "" @@ -2306,34 +2261,31 @@ msgstr "" #: editor/editor_node.cpp msgid "Editor" -msgstr "Editor" +msgstr "Redaktør" #: editor/editor_node.cpp editor/settings_config_dialog.cpp msgid "Editor Settings" msgstr "Editor Indstillinger" #: editor/editor_node.cpp -#, fuzzy msgid "Editor Layout" -msgstr "Editor Layout" +msgstr "Redaktør opsætning" #: editor/editor_node.cpp msgid "Toggle Fullscreen" msgstr "Skifter fuldskærm" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Data/Settings Folder" -msgstr "Editor Indstillinger" +msgstr "Ã…bn redaktør Data/Indstillinger-mappe" #: editor/editor_node.cpp msgid "Open Editor Data Folder" msgstr "" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Settings Folder" -msgstr "Editor Indstillinger" +msgstr "Ã…bn redaktør Indstillinger mappe" #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" @@ -2417,9 +2369,8 @@ msgstr "" #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Save & Restart" -msgstr "Gem & Afslut" +msgstr "Gem & genstart" #: editor/editor_node.cpp msgid "Spins when the editor window repaints!" @@ -2455,9 +2406,8 @@ msgid "Node" msgstr "Node" #: editor/editor_node.cpp -#, fuzzy msgid "Expand Bottom Panel" -msgstr "Udvid alle" +msgstr "Udvid nederste panel" #: editor/editor_node.cpp scene/resources/visual_shader.cpp msgid "Output" @@ -2536,9 +2486,8 @@ msgid "Thumbnail..." msgstr "Miniature..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Edit Plugin" -msgstr "Rediger Poly" +msgstr "Redigere tilslutning" #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" @@ -2562,9 +2511,8 @@ msgid "Status:" msgstr "Status:" #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Edit:" -msgstr "Rediger" +msgstr "Rediger:" #: editor/editor_profiler.cpp editor/plugins/animation_state_machine_editor.cpp #: editor/rename_dialog.cpp @@ -2584,9 +2532,8 @@ msgid "Average Time (sec)" msgstr "Gennemsnitlig Tid (sek)" #: editor/editor_profiler.cpp -#, fuzzy msgid "Frame %" -msgstr "Frame %" +msgstr "Ramme %" #: editor/editor_profiler.cpp msgid "Physics Frame %" @@ -2605,17 +2552,14 @@ msgid "Self" msgstr "Selv" #: editor/editor_profiler.cpp -#, fuzzy msgid "Frame #:" -msgstr "Frame #:" +msgstr "Ramme #:" #: editor/editor_profiler.cpp -#, fuzzy msgid "Time" -msgstr "Tid:" +msgstr "Tid" #: editor/editor_profiler.cpp -#, fuzzy msgid "Calls" msgstr "Kald" @@ -2641,6 +2585,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2657,8 +2607,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2692,9 +2641,8 @@ msgstr "Konverter Til %s" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Open Editor" -msgstr "Ã…bn 2D Editor" +msgstr "Ã…bn redaktør" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Selected node is not a Viewport!" @@ -2811,18 +2759,16 @@ msgid "Can't open export templates zip." msgstr "Kan ikke Ã¥bne eksport skabeloner zip." #: editor/export_template_manager.cpp -#, fuzzy msgid "Invalid version.txt format inside templates: %s." -msgstr "Ugyldigt version.txt format inde i skabeloner." +msgstr "Ugyldigt version.txt format inde i skabeloner: %s." #: editor/export_template_manager.cpp msgid "No version.txt found inside templates." msgstr "Ingen version.txt fundet inde i skabeloner." #: editor/export_template_manager.cpp -#, fuzzy msgid "Error creating path for templates:" -msgstr "Fejl ved oprettelse af sti til skabeloner:\n" +msgstr "Fejl ved oprettelse af sti til skabeloner:" #: editor/export_template_manager.cpp msgid "Extracting Export Templates" @@ -2842,7 +2788,6 @@ msgstr "" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Can't resolve." msgstr "Kan ikke løses." @@ -2858,9 +2803,8 @@ msgstr "Ingen reaktion." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Request Failed." -msgstr "Foresp. Fejlede." +msgstr "Forespørgsel mislykkedes." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2883,14 +2827,12 @@ msgid "" msgstr "" #: editor/export_template_manager.cpp -#, fuzzy msgid "Error requesting url: " -msgstr "Fejl i anmodning url: " +msgstr "Fejl ved anmodning af url: " #: editor/export_template_manager.cpp -#, fuzzy msgid "Connecting to Mirror..." -msgstr "Forbinder..." +msgstr "Forbinder til spejl..." #: editor/export_template_manager.cpp msgid "Disconnected" @@ -2901,9 +2843,8 @@ msgid "Resolving" msgstr "Løse" #: editor/export_template_manager.cpp -#, fuzzy msgid "Can't Resolve" -msgstr "Kan ikke Løses" +msgstr "Kan ikke løses" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2911,9 +2852,8 @@ msgid "Connecting..." msgstr "Forbinder..." #: editor/export_template_manager.cpp -#, fuzzy msgid "Can't Connect" -msgstr "Ingen forbindelse" +msgstr "Kan ikke forbinde" #: editor/export_template_manager.cpp msgid "Connected" @@ -2965,18 +2905,16 @@ msgid "Download Templates" msgstr "Download Skabeloner" #: editor/export_template_manager.cpp -#, fuzzy msgid "Select mirror from list: (Shift+Click: Open in Browser)" -msgstr "Vælg spejl fra liste: " +msgstr "Vælg spejl fra liste: (Shift+Click: Ã…bn i Browser)" #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "Kan ikke skrive til file_type_cache.cch. Gemmer ikke fil type cache!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Favoritter:" +msgstr "Favoritter" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3102,7 +3040,7 @@ msgstr "Duplikere" msgid "Move To..." msgstr "Flyt Til..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Hurtig Ã…bn Script..." @@ -3245,7 +3183,7 @@ msgstr "FEJL: Animationsnavn eksisterer allerede!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Ugyldigt navn." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3500,14 +3438,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Opret Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Rediger Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3515,25 +3453,28 @@ msgid "Insert Point" msgstr "Indsæt Punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Rediger Poly (Fjern Punkt)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Fjern Poly og Punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Opret en ny polygon fra start" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Slet points" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Rediger eksisterende polygon:\n" "LMB: Flyt Punkt.\n" @@ -3541,7 +3482,9 @@ msgstr "" "RMB: Slet Punkt." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." msgstr "Slet points" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3587,17 +3530,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Slet points" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Slet points" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3675,7 +3607,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Tilføj Node" @@ -4228,7 +4159,7 @@ msgstr "Alle" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sorter:" @@ -4377,21 +4308,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Zoom Ud" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Zoom Ud" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Zoom Ind" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4650,8 +4579,17 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Opret Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Rediger Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Rediger Poly (Fjern Punkt)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4753,35 +4691,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5152,6 +5064,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Rediger Node Kurve" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5179,6 +5096,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5194,11 +5115,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5259,6 +5175,10 @@ msgstr "Fjern Funktion" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5270,7 +5190,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5315,10 +5241,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Opret Poly" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Ã…bn 2D Editor" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5341,12 +5277,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Opret Poly" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Fjern punkt" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5373,19 +5305,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5529,20 +5461,24 @@ msgid "Error saving file!" msgstr "Fejl, kan ikke gemme TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Fejl, under forsøg pÃ¥ at gemme." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Fejl i flytning:\n" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Error loading skrifttype." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Fejl i flytning:\n" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5564,6 +5500,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5605,8 +5549,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Vis filer" +msgid "Open..." +msgstr "Ã…ben" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5636,15 +5580,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "Importerer Scene..." #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5755,6 +5700,10 @@ msgstr "" msgid "Go to Function" msgstr "Tilføj Funktion" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5787,10 +5736,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6498,11 +6443,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6677,7 +6627,7 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Line Draw" -msgstr "Line Draw" +msgstr "Linje Streg" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Rectangle Paint" @@ -6744,12 +6694,12 @@ msgstr "Anim Skift Transformering" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Tilføj Node(r) fra Tree" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Fjern Kurve Punkt" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6761,13 +6711,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "Indsæt Spor" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Slet points" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Opret Poly" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6797,16 +6768,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Slet markerede filer?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Gem den aktuelt redigerede ressource." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Slet points" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Gem den aktuelt redigerede ressource." @@ -6825,12 +6807,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Gem den aktuelt redigerede ressource." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Denne handling kan ikke udføres uden en scene." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6847,6 +6836,11 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Tilføj Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6885,7 +6879,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Eksporter Projekt" #: editor/project_export.cpp @@ -8368,7 +8362,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "trin argument er nul!" #: modules/gdscript/gdscript_functions.cpp @@ -9274,7 +9269,7 @@ msgstr "" "til det!" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9325,7 +9320,9 @@ msgstr "" "PathFollow2D virker kun, nÃ¥r den angives som et barn af en Path2D node." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9422,6 +9419,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9438,6 +9439,10 @@ msgstr "Advarsel!" msgid "Please Confirm..." msgstr "Bekræft venligst..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9501,10 +9506,6 @@ msgstr "Ugyldig skriftstørrelse." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9522,6 +9523,28 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Opret Poly" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Opret en ny polygon fra start" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Zoom Ud" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Zoom Ind" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Vis filer" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Zoom Ind" + #~ msgid "Class List:" #~ msgstr "Class Liste:" @@ -9591,9 +9614,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "Anim Skift Spor Wrap Mode" -#~ msgid "Edit Node Curve" -#~ msgstr "Rediger Node Kurve" - #~ msgid "Edit Selection Curve" #~ msgstr "Rediger Valgte Kurve" diff --git a/editor/translations/de.po b/editor/translations/de.po index 95d275e732..cfe9545db2 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -34,11 +34,12 @@ # Robin Bauknecht <robin.bauknecht@gmail.com>, 2018. # Julian Retzlaff <julian.retzlaff@googlemail.com>, 2018. # asyncial <mahlburg@posteo.de>, 2018. +# ssantos <ssantos@web.de>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-11-10 20:07+0000\n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -47,7 +48,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.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -63,9 +64,8 @@ msgstr "" "Nicht genügend Bytes zum Dekodieren des Byte-Strings oder ungültiges Format." #: core/math/expression.cpp -#, fuzzy msgid "Invalid input %i (not passed) in expression" -msgstr "Ungültige Eingabe %i (fehlgeschlagen) in Ausdruck" +msgstr "Ungültige Eingabe %i (nicht bestanden) in Ausdruck" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -283,7 +283,6 @@ msgstr "%d NEUE Spuren erstellen und Schlüsselbilder hinzufügen?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -433,14 +432,12 @@ msgid "Delete Selection" msgstr "Auswahl löschen" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Gehe zum nächsten Schritt" +msgstr "Zum nächsten Schritt" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Gehe zum vorherigen Schritt" +msgstr "Zum vorherigen Schritt" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -562,15 +559,19 @@ msgstr "Alle ersetzen" msgid "Selection Only" msgstr "Nur Auswahl" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Vergrößern" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Verkleinern" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Vergrößerung zurücksetzen" @@ -579,8 +580,8 @@ msgid "Warnings:" msgstr "Warnungen:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Vergrößerung:" +msgid "Font Size:" +msgstr "Schriftgröße:" #: editor/code_editor.cpp msgid "Line:" @@ -693,9 +694,8 @@ msgid "Edit Connection: " msgstr "Verbindung bearbeiten: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Sollen wirklich alle Verbindungen mit diesem Signal entfernt werden?" +msgstr "Sollen wirklich alle Verbindungen des Signals „%s“ entfernt werden?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -740,8 +740,8 @@ msgid "Recent:" msgstr "Kürzlich:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Suche:" @@ -792,8 +792,7 @@ msgid "Resource" msgstr "Ressource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Pfad" @@ -852,10 +851,8 @@ msgid "Error loading:" msgstr "Fehler beim Laden:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "" -"Die Szene konnte aufgrund fehlender Abhängigkeiten nicht geladen werden:" +msgstr "Ladefehler aufgrund fehlender Abhängigkeiten:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1264,8 +1261,7 @@ msgid "Node Name:" msgstr "Node-Name:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Name" @@ -1343,7 +1339,6 @@ msgid "File Exists, Overwrite?" msgstr "Datei existiert bereits. Ãœberschreiben?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Diesen Ordner auswählen" @@ -1352,15 +1347,13 @@ msgid "Copy Path" msgstr "Pfad kopieren" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Im Dateimanager öffnen" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "Zeige im Dateimanager" +msgstr "Im Dateimanager anzeigen" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1503,19 +1496,16 @@ msgid "Methods" msgstr "Methoden" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Methoden" +msgstr "Methoden:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Eigenschaften" +msgstr "Motiv-Eigenschaften" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Eigenschaften:" +msgstr "Motiv-Eigenschaften:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1542,14 +1532,12 @@ msgid "Constants:" msgstr "Konstanten:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Beschreibung" +msgstr "Klassenbeschreibung" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Beschreibung:" +msgstr "Klassenbeschreibung:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1566,12 +1554,10 @@ msgstr "" "$url2]Meldung von Problemen[/url][/color] sind sehr erwünscht." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Eigenschaften-Beschreibung:" +msgstr "Eigenschaften-Beschreibung" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" msgstr "Eigenschaften-Beschreibung:" @@ -1584,12 +1570,10 @@ msgstr "" "$url]Ergänzungen durch eigene Beiträge[/url][/color] sind sehr erwünscht!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Methoden-Beschreibung:" +msgstr "Methoden-Beschreibung" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" msgstr "Methoden-Beschreibung:" @@ -1607,49 +1591,40 @@ msgid "Search Help" msgstr "Hilfe durchsuchen" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Normale Ansicht" +msgstr "Alles anzeigen" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Klassen" +msgstr "Nur Klassen" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Methoden" +msgstr "Nur Methoden" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Signale" +msgstr "Nur Signale" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Konstanten" +msgstr "Nur Konstanten" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Eigenschaften" +msgstr "Nur Eigenschaften" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Eigenschaften" +msgstr "Nur Motiv-Eigenschaften" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Mitglieder" +msgstr "Mitgliedstyp" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Klasse:" +msgstr "Klasse" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1750,6 +1725,15 @@ msgstr "Diese Aktion kann nicht ohne eine Wurzel ausgeführt werden." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"Diese Szene kann nicht gespeichert werden da sie eine zyklische " +"Instantiierungshierarchie enthält.\n" +"Speichern ist erst nach Beheben des Konflikts möglich." + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1758,7 +1742,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Momentan geöffnete Szenen können nicht überschrieben werden!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -2021,13 +2005,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Erweiterungsskript konnte nicht geladen werden: ‚%s‘." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"Erweiterungsskript konnte nicht geladen werden: ‚%s‘ Skript ist nicht im " -"Werkzeugmodus." +"Erweiterungsskript konnte nicht von folgendem Pfad geladen werden: ‚%s‘. Es " +"scheint ein Fehler im Quellcode zu sein. Bitte Syntax überprüfen." #: editor/editor_node.cpp msgid "" @@ -2084,7 +2067,6 @@ msgstr "Standard" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" msgstr "Im Dateisystem anzeigen" @@ -2169,7 +2151,6 @@ msgid "Save Scene" msgstr "Szene speichern" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Alle Szenen speichern" @@ -2199,7 +2180,7 @@ msgid "Undo" msgstr "Rückgängig machen" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Wiederherstellen" @@ -2223,7 +2204,7 @@ msgstr "Projekteinstellungen" msgid "Export" msgstr "Exportieren" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Werkzeuge" @@ -2654,9 +2635,18 @@ msgstr "Zuweisen.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"ViewportTextures können nicht für Ressourcen erstellt werden die als Datei " +"gespeichert sind.\n" +"Diese Ressourcen müssen zu einer Szene gehören." #: editor/editor_properties.cpp msgid "" @@ -2665,13 +2655,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"ViewportTexture kann für diese Ressource nicht erstellt werden weil sie " +"nicht als lokal zu einer Szene markiert wurde.\n" +"Bitte die ‚Lokal zu Szene‘-Eigenschaft an dieser Ressource aktivieren (und " +"an allen Ressourcen die sie enthalten, bis zum nächsten Node)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Viewport auswählen" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Neues Skript" @@ -2981,9 +2974,8 @@ msgstr "" "Der Dateityp-Cache wird nicht gespeichert!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Favoriten:" +msgstr "Favoriten" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3069,14 +3061,12 @@ msgid "Instance" msgstr "Instanz" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Favoriten:" +msgstr "Zu Favoriten hinzufügen" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Aus Gruppe entfernen" +msgstr "Aus Favoriten entfernen" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3098,7 +3088,7 @@ msgstr "Duplizieren..." msgid "Move To..." msgstr "Verschiebe zu..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Neues Skript..." @@ -3107,12 +3097,10 @@ msgid "New Resource..." msgstr "Neue Ressource..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" -msgstr "Alle expandieren" +msgstr "Alle ausklappen" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" msgstr "Alle einklappen" @@ -3136,9 +3124,8 @@ msgid "Re-Scan Filesystem" msgstr "Dateisystem erneut einlesen" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "Modus umschalten" +msgstr "Geteilten Modus umschalten" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3175,24 +3162,20 @@ msgid "Create Script" msgstr "Erstelle Skript" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "In Dateien suchen" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Suche: " +msgstr "Suche:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Verzeichnis: " +msgstr "Verzeichnis:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Filter" +msgstr "Filter:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3232,7 +3215,8 @@ msgid "Group name already exists." msgstr "Gruppenname existiert bereits." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "Ungültiger Gruppenname." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3369,12 +3353,10 @@ msgid "Failed to load resource." msgstr "Laden der Ressource gescheitert." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "Alle Eigenschaften ausklappen" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "Alle Eigenschaften einklappen" @@ -3480,14 +3462,13 @@ msgid "Activate now?" msgstr "Sofort aktivieren?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "Polygon erstellen" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Polygon bearbeiten" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3495,25 +3476,27 @@ msgid "Insert Point" msgstr "Punkt einfügen" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Polygon bearbeiten (Punkt entfernen)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Polygon und Punkt entfernen" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Polygon von Grund auf neu erstellen" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Punkte erstellen." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Existierendes Polygon editieren:\n" "LMT: Punkt verschieben.\n" @@ -3521,8 +3504,9 @@ msgstr "" "RMT: Punkt löschen." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Punkte entfernen" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Punkte löschen." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3570,15 +3554,6 @@ msgstr "Punkte auswählen und verschieben, erstellen mit RMT." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Punkte erstellen." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Punkte löschen." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Punkt" @@ -3660,7 +3635,6 @@ msgstr "" "nicht abgerufen werden." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Node hinzufügen.." @@ -4197,7 +4171,7 @@ msgstr "Alle" msgid "Plugins" msgstr "Erweiterungen" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sortiere:" @@ -4329,9 +4303,8 @@ msgid "Resize CanvasItem" msgstr "CanvasItem in Größe anpassen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "CanvasItem rotieren" +msgstr "CanvasItem skalieren" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4354,18 +4327,19 @@ msgid "Paste Pose" msgstr "Pose einfügen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Verkleinern" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Vergrößerung zurücksetzen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Vergrößern" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Auswahlmodus" @@ -4396,9 +4370,8 @@ msgid "Rotate Mode" msgstr "Rotationsmodus" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Skalierungsmodus (R)" +msgstr "Skalierungsmodus" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4499,9 +4472,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "Macht Unterobjekte dieses Objekts wieder auswählbar." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Skelett" +msgstr "Skelett-Einstellungen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4555,7 +4527,7 @@ msgstr "Zeige Ansichtsfenster (Viewport)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Gruppe zeigen und Icons sperren" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4628,8 +4600,17 @@ msgstr "" "Ziehen + Alt: Nodetyp ändern" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Polygon3D erstellen" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Polygon erstellen" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Polygon bearbeiten" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Polygon bearbeiten (Punkt entfernen)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4730,37 +4711,9 @@ msgid "Item List Editor" msgstr "Auflistungseditor" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Keine OccluderPolygon2D-Ressource für dieses Node gefunden.\n" -"Neues erstellen und zuweisen?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Occluder-Polygon erzeugen" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Polygon von Grund auf neu erstellen." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Bestehendes Polygon bearbeiten:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMT: Punkt verschieben." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Strg+LMT: Segment aufteilen." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMT: Punkt entfernen." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh ist leer!" @@ -4998,7 +4951,6 @@ msgid "Create Navigation Polygon" msgstr "Erzeuge Navigationspolygon" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" msgstr "Generiere Sichtbarkeits-Rechteck" @@ -5133,6 +5085,11 @@ msgid "Add Point to Curve" msgstr "Punkt zu Kurve hinzufügen" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Kurve schließen" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Punkt auf Kurve verschieben" @@ -5160,6 +5117,11 @@ msgid "Click: Add Point" msgstr "Klicken: Punkt hinzufügen" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Segment aufteilen (in Kurve)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Rechtsklick: Punkt löschen" @@ -5175,11 +5137,6 @@ msgstr "Punkt hinzufügen (in leerem Raum)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Segment aufteilen (in Kurve)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Punk löschen" @@ -5236,6 +5193,10 @@ msgstr "Ausgangskontrollpunkt löschen" msgid "Remove In-Control Point" msgstr "Eingangskontrollpunkt löschen" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Segment aufteilen (in Kurve)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "Gelenk verschieben" @@ -5247,10 +5208,17 @@ msgstr "" "Die Skeleton-Eigenschaft des Polygon2Ds zeigt nicht auf ein Skeleton2D-Node" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "Knochen synchronisieren" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Erzeuge UV-Map" @@ -5287,10 +5255,21 @@ msgid "Transform UV Map" msgstr "Transformiere UV-Map" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Typ der Transformation" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "Knochengewichte malen" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Polygon2D-UV-Editor" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Polygon2D-UV-Editor" @@ -5311,11 +5290,8 @@ msgid "Bones" msgstr "Knochen" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Polygon erstellen" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "Punkt verschieben" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5343,19 +5319,23 @@ msgid "Scale Polygon" msgstr "Polygon skalieren" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "Zwei Punkte verbinden um Teilung zu erstellen" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Teilung zum entfernen auswählen" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "Gewichte mit angegebener Intensität malen" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "Gewichte mit angegebener Intensität weg malen" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5482,7 +5462,6 @@ msgid "Error writing TextFile:" msgstr "Fehler beim Schreiben von Textdatei:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." msgstr "Fehler: Datei konnte nicht geladen werden." @@ -5495,19 +5474,23 @@ msgid "Error saving file!" msgstr "Fehler beim Speichern der Datei!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Fehler beim Speichern des Motivs" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Fehler beim Speichern" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Fehler beim importieren des Motivs" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Fehler beim Importieren" #: editor/plugins/script_editor_plugin.cpp @@ -5527,6 +5510,14 @@ msgid "Import Theme" msgstr "Motiv importieren" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Fehler beim Speichern des Motivs" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Fehler beim Speichern" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Motiv speichern als..." @@ -5567,8 +5558,9 @@ msgid "File" msgstr "Datei" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Neue Textdatei" +#, fuzzy +msgid "Open..." +msgstr "Öffnen" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5583,7 +5575,6 @@ msgid "Copy Script Path" msgstr "Skriptpfad kopieren" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Zurück im Verlauf" @@ -5597,6 +5588,11 @@ msgid "Theme" msgstr "Motiv" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Motiv importieren" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Motiv neu laden" @@ -5605,10 +5601,6 @@ msgid "Save Theme" msgstr "Motiv speichern" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Motiv speichern als" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Dokumentation schließen" @@ -5655,7 +5647,6 @@ msgid "Keep Debugger Open" msgstr "Debugger offen halten" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" msgstr "Mit externem Editor debuggen" @@ -5700,7 +5691,6 @@ msgid "Debugger" msgstr "Debugger" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" msgstr "Suchergebnisse" @@ -5713,9 +5703,12 @@ msgid "(ignore)" msgstr "(ignorieren)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Springe zu Funktion..." +msgstr "Springe zu Funktion" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standard" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5749,10 +5742,6 @@ msgstr "Kapitalisiere" msgid "Syntax Highlighter" msgstr "Syntaxhervorhebung" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standard" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5804,12 +5793,10 @@ msgid "Trim Trailing Whitespace" msgstr "Kürze Leerraum am Zeilenende" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "Konvertiere Einrückung zu Leerzeichen" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "Konvertiere Einrückung zu Tabulatoren" @@ -5827,12 +5814,10 @@ msgid "Remove All Breakpoints" msgstr "Lösche alle Haltepunkte" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "Springe zum nächsten Haltepunkt" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" msgstr "Springe zum vorigen Haltepunkt" @@ -5841,17 +5826,14 @@ msgid "Find Previous" msgstr "Finde Vorheriges" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "In Dateien suchen..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Springe zu Funktion..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Springe zu Zeile..." @@ -5947,11 +5929,11 @@ msgstr "Animationsschlüsselbild eingefügt." #: editor/plugins/spatial_editor_plugin.cpp msgid "Pitch" -msgstr "Tonhöhe" +msgstr "Neigen" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Gieren" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6118,9 +6100,8 @@ msgid "Freelook Speed Modifier" msgstr "Freisicht Geschwindigkeitsregler" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "Sichtrotation sperren" +msgstr "Sichtrotation gesperrt" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6456,12 +6437,18 @@ msgid "Set Region Rect" msgstr "Bereichsrechteck setzen" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Wähle Griff" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Einrastmodus:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Nichts>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Nichts" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6624,9 +6611,8 @@ msgid "Fix Invalid Tiles" msgstr "Ungültige Kacheln reparieren" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Auswahl zentrieren" +msgstr "Auswahl ausschneiden" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6673,39 +6659,37 @@ msgid "Pick Tile" msgstr "Wähle Kachel" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Auswahl verschieben" +msgstr "Auswahl kopieren" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Rotationsmodus" +msgstr "Nach links rotieren" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "nach rechts" +msgstr "Nach rechts rotieren" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Horizontal spiegeln" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Vertikal spiegeln" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "Transformation" +msgstr "Transform löschen" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Texturen zu TileSet hinzufügen" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Aktuelle Textur aus TileSet entfernen" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6717,21 +6701,40 @@ msgid "Merge from Scene" msgstr "Aus Szene zusammenführen" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Unterkachel zur Benutzung als Icon auswählen, dieses wird auch für ungültige " -"Autokachelzuordnungen benutzt werden." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "Kachelnamen anzeigen (Alt-Taste halten)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Animation einfügen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Punkte löschen." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Polygon von Grund auf neu erstellen." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Kachelnamen anzeigen (Alt-Taste halten)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" -msgstr "Wirklich ausgewählte Textur und ALLE sie nutzenden Kacheln entfernen?" +msgstr "Ausgewählte Textur und ALLE sie nutzenden Kacheln entfernen?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." @@ -6746,10 +6749,10 @@ msgid "Merge from scene?" msgstr "Aus Szene vereinen?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." msgstr "" -" Dateien wurde nicht hinzugefügt weil sie schon in der Liste vorhanden waren." +"%s Datei(en) wurde(n) nicht hinzugefügt weil sie schon in der Liste " +"vorhanden war(en)." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6760,14 +6763,9 @@ msgstr "" "Auf andere Kachel drücken um sie zu bearbeiten." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" -"LMT: Bit anstellen.\n" -"RMT: Bit ausstellen.\n" -"Auf andere Kachel klicken um diese zu bearbeiten." +#, fuzzy +msgid "Delete selected Rect." +msgstr "Ausgewählte Dateien löschen?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6778,6 +6776,22 @@ msgstr "" "Auf andere Kachel drücken um diese zu bearbeiten." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Punkte entfernen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "" +"LMT: Bit anstellen.\n" +"RMT: Bit ausstellen.\n" +"Auf andere Kachel klicken um diese zu bearbeiten." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6796,11 +6810,21 @@ msgstr "" "Auf andere Kachel drücken um diese zu bearbeiten." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Unterkachel auswählen um ihre Priorität zu ändern.\n" +"Auf andere Kachel drücken um diese zu bearbeiten." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "Diese Eigenschaft kann nicht geändert werden." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Kachelsatz" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6816,6 +6840,11 @@ msgid "Light" msgstr "Licht" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Node hinzufügen.." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -6836,14 +6865,12 @@ msgid "Export templates for this platform are missing/corrupted:" msgstr "Export-Vorlagen für dieses Systeme fehlen / sind fehlerhaft:" #: editor/project_export.cpp -#, fuzzy msgid "Release" -msgstr "gerade losgelassen" +msgstr "Veröffentlichung" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "Exportiere für %s" +msgstr "Exportiere alles" #: editor/project_export.cpp msgid "Presets" @@ -6855,8 +6882,8 @@ msgstr "Hinzufügen..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "Exportvorlage:" +msgid "Export Path" +msgstr "Exportpfad:" #: editor/project_export.cpp msgid "Resources" @@ -6921,14 +6948,12 @@ msgid "Export PCK/Zip" msgstr "Exportiere PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Export-Modus:" +msgstr "Export-Modus?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "Exportieren" +msgstr "Alles exportieren" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7618,16 +7643,14 @@ msgid "Step" msgstr "Schritt" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" -msgstr "Wert um welchen Zähler für jedes Node erhöht wird" +msgstr "Wert um welchen der Zähler für jedes Node erhöht wird" #: editor/rename_dialog.cpp msgid "Padding" msgstr "Versatz" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." @@ -7778,6 +7801,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"Wenn „Editierbare Instanz“ deaktiviert wird, werden alle Eigenschaften " +"dieses Nodes wieder in ihren Ausgangszustand zurückgesetzt." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7852,9 +7877,8 @@ msgid "Clear Inheritance" msgstr "Leere Vererbung" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Öffne Godot-Referenzdokumentation" +msgstr "Dokumentation öffnen" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7869,9 +7893,8 @@ msgid "Change Type" msgstr "Typ ändern" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Skript öffnen" +msgstr "Skript erweitern" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -8035,9 +8058,8 @@ msgid "Path is empty" msgstr "Pfad ist leer" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Sprite ist leer!" +msgstr "Dateiname ist leer" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8128,9 +8150,8 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "Aufrufsverlauf" +msgstr "Stacktrace" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8357,7 +8378,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "Schrittargument ist null!" #: modules/gdscript/gdscript_functions.cpp @@ -8580,7 +8602,7 @@ msgstr "Ende des inneren Exception-Stack-Traces" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "NavMesh backen" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8969,12 +8991,11 @@ msgstr "VisualScript suchen" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "%s abrufen" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Setzen " +msgstr "%s setzen" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9075,6 +9096,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"CPUParticles2D-Animationen benötigen ein CanvasItemMaterial mit der " +"Eigenschaft „Particles Animation“ aktiviert." #: scene/2d/light_2d.cpp msgid "" @@ -9134,6 +9157,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Particles2D-Animationen benötigen ein CanvasItemMaterial mit der Eigenschaft " +"„Particles Animation“ aktiviert." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9283,16 +9308,16 @@ msgstr "" "Bitte erzeuge eine shape Ressource dafür!" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "" -"Nichts ist sichtbar da keine Meshe den Zeichendurchläufen zugewiesen wurden." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Nichts ist sichtbar da kein Mesh zugewiesen wurden." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"CPUParticles-Animationen benötigen ein SpatialMaterial mit der Eigenschaft " +"„Billboard Particles“ aktiviert." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9323,24 +9348,27 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"Particles-Animationen benötigen ein SpatialMaterial mit der Eigenschaft " +"„Billboard Particles“ aktiviert." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." msgstr "" -"PathFollow2D funktioniert nur, wenn es als Unterobjekt eines Path2D-Nodes " +"PathFollow funktioniert nur, wenn es als Unterobjekt eines Path-Nodes " "gesetzt wird." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" -"PathFollow2D funktioniert nur, wenn es als Unterobjekt eines Path2D-Nodes " -"gesetzt wird." +"OrientedPathFollow funktioniert nur, wenn es als Unterobjekt eines Path-" +"Nodes gesetzt wird." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." -msgstr "" +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." +msgstr "OrientedPathFollow benötigt im Elternpfad aktivierte Aufwärtsvektoren." #: scene/3d/physics_body.cpp msgid "" @@ -9382,7 +9410,6 @@ msgid "This body will be ignored until you set a mesh" msgstr "Diese Körper wird ignoriert werden bis ein Mesh gesetzt wurde" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" @@ -9450,6 +9477,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Die Wurzel des Animationsspieler ist kein gültiges Node." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Rohdatenmodus" @@ -9466,6 +9497,10 @@ msgstr "Warnung!" msgid "Please Confirm..." msgstr "Bitte bestätigen..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9479,7 +9514,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Wenn exp_edit true ist muss min_value größer als null sein." #: scene/gui/scroll_container.cpp msgid "" @@ -9538,10 +9573,6 @@ msgstr "Ungültige Schriftgröße." msgid "Input" msgstr "Eingang" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Nichts" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Ungültige Quelle für Shader." @@ -9558,6 +9589,59 @@ msgstr "Zuweisung an Uniform." msgid "Varyings can only be assigned in vertex function." msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." +#~ msgid "Create Poly" +#~ msgstr "Polygon erstellen" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Polygon von Grund auf neu erstellen" + +#~ msgid "Zoom out" +#~ msgstr "Verkleinern" + +#~ msgid "Zoom in" +#~ msgstr "Vergrößern" + +#~ msgid "Create Poly3D" +#~ msgstr "Polygon3D erstellen" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Keine OccluderPolygon2D-Ressource für dieses Node gefunden.\n" +#~ "Neues erstellen und zuweisen?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Bestehendes Polygon bearbeiten:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMT: Punkt verschieben." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Strg+LMT: Segment aufteilen." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMT: Punkt entfernen." + +#~ msgid "New TextFile" +#~ msgstr "Neue Textdatei" + +#~ msgid "Save Theme As" +#~ msgstr "Motiv speichern als" + +#~ msgid "<None>" +#~ msgstr "<Nichts>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Unterkachel zur Benutzung als Icon auswählen, dieses wird auch für " +#~ "ungültige Autokachelzuordnungen benutzt werden." + +#~ msgid "Zoom:" +#~ msgstr "Vergrößerung:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Sollen wirklich alle Verbindungen entfernt werden von „" @@ -10280,9 +10364,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Source Font:" #~ msgstr "Quellschriftart:" -#~ msgid "Source Font Size:" -#~ msgstr "Quellschriftgröße:" - #~ msgid "Dest Resource:" #~ msgstr "Ziel-Ressource:" diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po index 66085ed6b8..45c6666a5d 100644 --- a/editor/translations/de_CH.po +++ b/editor/translations/de_CH.po @@ -8,15 +8,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-07-17 23:44+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:38+0100\n" "Last-Translator: Christian Fisch <christian.fiesel@gmail.com>\n" "Language-Team: Swiss High German <https://hosted.weblate.org/projects/godot-" "engine/godot/de_CH/>\n" "Language: de_CH\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.8-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -259,7 +261,6 @@ msgstr "Erstelle %d in neuer Ebene inklusiv Bild?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -532,15 +533,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -549,7 +554,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -713,8 +718,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -761,8 +766,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1223,8 +1227,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1696,6 +1699,12 @@ msgstr "Ohne eine Szene kann das nicht funktionieren." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2102,7 +2111,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2127,7 +2136,7 @@ msgstr "Projekteinstellungen" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2548,6 +2557,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2564,8 +2579,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "New Script" msgstr "Script hinzufügen" @@ -3000,7 +3014,7 @@ msgstr "Node(s) duplizieren" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Script hinzufügen" @@ -3128,7 +3142,7 @@ msgstr "" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Projektname:" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3382,15 +3396,15 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Node erstellen" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Script hinzufügen" #: editor/plugins/abstract_polygon_2d_editor.cpp #, fuzzy @@ -3398,31 +3412,33 @@ msgid "Insert Point" msgstr "Bild einfügen" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr "Ungültige Bilder löschen" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Bild einfügen" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" -msgstr "Bild einfügen" +msgid "Erase points." +msgstr "Oberfläche %d" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3466,17 +3482,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Bild einfügen" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Oberfläche %d" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3554,7 +3559,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Node" @@ -4106,7 +4110,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4260,15 +4264,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4531,7 +4535,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Node erstellen" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4636,35 +4649,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5041,6 +5028,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Node Kurve editieren" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5068,6 +5060,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5083,11 +5079,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5147,6 +5138,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5158,7 +5153,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5200,10 +5201,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Transformationstyp" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Polygon 2D UV Editor" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Polygon 2D UV Editor" @@ -5225,12 +5236,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Node erstellen" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Ungültige Bilder löschen" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5257,19 +5264,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5410,20 +5417,24 @@ msgid "Error saving file!" msgstr "Szene kann nicht gespeichert werden." #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Szene kann nicht gespeichert werden." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Szene kann nicht gespeichert werden." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Fehler beim Exportieren des Projekts!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Szene kann nicht gespeichert werden." #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5444,6 +5455,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5485,8 +5504,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Datei(en) öffnen" +msgid "Open..." +msgstr "Öffnen" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5514,15 +5533,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5630,6 +5649,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5662,10 +5685,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6370,11 +6389,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6618,12 +6642,12 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Node von Szene" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Ungültige Bilder löschen" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6635,13 +6659,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "Node erstellen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Oberfläche %d" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Node erstellen" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6671,16 +6716,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Node(s) löschen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Node(s) löschen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Bild einfügen" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Node(s) löschen" @@ -6699,12 +6755,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Node(s) löschen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Ohne eine Szene kann das nicht funktionieren." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "Datei(en) öffnen" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6720,6 +6783,11 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6757,7 +6825,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Projekt exportieren" #: editor/project_export.cpp @@ -8250,7 +8318,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9147,7 +9215,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9196,7 +9264,9 @@ msgstr "" "gesetzt wird." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9286,6 +9356,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" @@ -9303,6 +9377,10 @@ msgstr "Alert!" msgid "Please Confirm..." msgstr "Bitte bestätigen..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9360,10 +9438,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" @@ -9381,6 +9455,10 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Datei(en) öffnen" + +#, fuzzy #~ msgid "Show current scene file." #~ msgstr "Node(s) löschen" @@ -9391,9 +9469,6 @@ msgstr "" #~ msgid "Convert To Lowercase" #~ msgstr "Verbindung zu Node:" -#~ msgid "Edit Node Curve" -#~ msgstr "Node Kurve editieren" - #~ msgid "Anim Add Key" #~ msgstr "Anim Bild hinzufügen" @@ -9515,9 +9590,6 @@ msgstr "" #~ "SampleLibrary Ressource in der 'samples' Eigenschaft erzeugt oder " #~ "definiert werden." -#~ msgid "Error exporting project!" -#~ msgstr "Fehler beim Exportieren des Projekts!" - #~ msgid "Error writing the project PCK!" #~ msgstr "Fehler beim Schreiben des Projekts PCK!" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 7f7d1391a1..01468c1173 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -243,7 +243,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -511,15 +510,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -528,7 +531,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -686,8 +689,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -734,8 +737,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1187,8 +1189,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1643,6 +1644,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2039,7 +2046,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2063,7 +2070,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2474,6 +2481,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2490,8 +2503,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2904,7 +2916,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3027,7 +3039,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3273,14 +3285,12 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +msgid "Edit Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3288,29 +3298,29 @@ msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3355,15 +3365,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3439,7 +3440,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -3971,7 +3971,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4119,15 +4119,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4383,7 +4383,15 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4485,35 +4493,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4881,6 +4863,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4908,6 +4894,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4923,11 +4913,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -4984,6 +4969,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -4994,7 +4983,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5034,7 +5029,15 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5058,11 +5061,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5090,19 +5089,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5240,19 +5239,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5272,6 +5271,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5312,7 +5319,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5341,15 +5348,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5456,6 +5463,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5488,10 +5499,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6180,11 +6187,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6420,11 +6432,11 @@ msgid "Clear transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6436,13 +6448,31 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6472,15 +6502,23 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete selected Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6498,11 +6536,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6518,6 +6562,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6554,7 +6602,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -7997,7 +8045,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8839,7 +8887,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8882,7 +8930,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -8970,6 +9020,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -8986,6 +9040,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9042,10 +9100,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index 3f04d1ce6a..f83b35fe97 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-09-25 10:28+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:39+0100\n" "Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" "Language: el\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -250,7 +252,6 @@ msgstr "ΔημιουÏγία %d νÎων κομματιών και εισαγωΠ#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -529,15 +530,19 @@ msgstr "Αντικατάσταση όλων" msgid "Selection Only" msgstr "Μόνο στην επιλογή" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "ΜεγÎθυνση" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "ΣμÏκÏινση" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "ΕπαναφοÏά μεγÎθυνσης" @@ -546,8 +551,9 @@ msgid "Warnings:" msgstr "Î Ïοειδοποιήσεις:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "ΜεγÎθυνση:" +#, fuzzy +msgid "Font Size:" +msgstr "ÎœÎγεθος πηγαίας γÏαμματοσειÏάς:" #: editor/code_editor.cpp msgid "Line:" @@ -709,8 +715,8 @@ msgid "Recent:" msgstr "Î Ïόσφατα:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Αναζήτηση:" @@ -761,8 +767,7 @@ msgid "Resource" msgstr "Î ÏŒÏος" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "ΔιαδÏομή" @@ -1224,8 +1229,7 @@ msgid "Node Name:" msgstr "Όνομα κόμβου:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Όνομα" @@ -1709,6 +1713,12 @@ msgstr "Αυτή η λειτουÏγία δεν μποÏεί να γίνει Ï‡Ï #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2161,7 +2171,7 @@ msgid "Undo" msgstr "ΑναίÏεση" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "ΑκÏÏωση αναίÏεσης" @@ -2185,7 +2195,7 @@ msgstr "Ρυθμίσεις ÎÏγου" msgid "Export" msgstr "Εξαγωγή" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ΕÏγαλεία" @@ -2616,6 +2626,12 @@ msgstr "ΕκχώÏηση.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2632,8 +2648,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "ΕπιλÎξτε μία οπτική γωνία" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Îεα δεσμή ενεÏγειών" @@ -3062,7 +3077,7 @@ msgstr "ΑναπαÏαγωγή..." msgid "Move To..." msgstr "Μετακίνηση σε..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Îεα δεσμή ενεÏγειών..." @@ -3196,7 +3211,8 @@ msgid "Group name already exists." msgstr "ΥπαÏκτό όνομα ομάδας." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "ΆκυÏο όνομα ομάδας." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3446,14 +3462,14 @@ msgid "Activate now?" msgstr "ΕνεÏγοποίηση Ï„ÏŽÏα;" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Δημιουγία πολυγώνου" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "ΕπεγεÏγασία πολυγώνου" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3461,25 +3477,27 @@ msgid "Insert Point" msgstr "Εισαγωγή σημείου" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "ΕπεγεÏγασία πολυγώνου (ΑφαίÏεση σημείου)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "ΑφαίÏεση πολυγώνου και σημείου" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "ΔημιουÏγία νÎου πολυγώνου από την αÏχή" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "ΔημιουÏγία σημείων." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "ΕπεξεÏγασία υπαÏÎºÏ„Î¿Ï Ï€Î¿Î»Ï…Î³ÏŒÎ½Î¿Ï…:\n" "ΑÏιστεÏÏŒ κλικ: Μετακίνηση σημείου.\n" @@ -3487,8 +3505,9 @@ msgstr "" "Δεξί κλικ: ΔιαγÏαφή σημείου." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "ΔιαγÏαφή σημείων" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "ΔιαγÏαφή σημείων." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3535,15 +3554,6 @@ msgstr "Επιλογή και μετακίνηση σημείων, Î´Î·Î¼Î¹Î¿Ï…Ï #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "ΔημιουÏγία σημείων." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "ΔιαγÏαφή σημείων." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Σημείο" @@ -3627,7 +3637,6 @@ msgstr "" "ανάκτηση των ονομάτων των κομματιών." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Î Ïοσθήκη κόμβου.." @@ -4165,7 +4174,7 @@ msgstr "Όλα" msgid "Plugins" msgstr "Î Ïόσθετα" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Ταξινόμηση:" @@ -4322,18 +4331,19 @@ msgid "Paste Pose" msgstr "Επικόληση στάσης" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "ΣμÏκÏινση" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "ΕπαναφοÏά μεγÎθυνσης" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "ΜεγÎθυνση" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Επιλογή λειτουÏγίας" @@ -4594,8 +4604,17 @@ msgstr "" "ΣÏÏσιμο & απόθεση + Alt: Αλλαγή του Ï„Ïπου του κόμβου" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "ΔημιουÏγία πολυγώνου 3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Δημιουγία πολυγώνου" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "ΕπεγεÏγασία πολυγώνου" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "ΕπεγεÏγασία πολυγώνου (ΑφαίÏεση σημείου)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4696,37 +4715,9 @@ msgid "Item List Editor" msgstr "ΕπεξεÏγαστής λίστας στοιχείων" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Δεν υπάÏχει πόÏος OccluderPolygon2D σε αυτόν τον κόμβο.\n" -"Îα δημιουÏγία και να οÏισθεί Îνας;" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "ΔημιουÏγία πολυγώνου εμποδίου" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "ΔημιουÏγία νÎου πολυγώνου από την αÏχή." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "ΕπεξεÏγασία υπαÏÎºÏ„Î¿Ï Ï€Î¿Î»Ï…Î³ÏŽÎ½Î¿Ï…:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "ΑÏιστεÏÏŒ κλίκ: ΜΕτακίνηση σημείου." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+ΑÏιστεÏÏŒ κλικ: ΔιαχωÏσμός τμήματος." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "Δεξί κλικ: ΔιαγÏαφή σημείου." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Το πλÎγμα είναι άδειο!" @@ -5099,6 +5090,11 @@ msgid "Add Point to Curve" msgstr "Î Ïοσθήκη σημείου στην καμπÏλη" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "κλείσιμο καμπÏλης" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Μετακίνηση σημείου στην καμπÏλη" @@ -5126,6 +5122,11 @@ msgid "Click: Add Point" msgstr "Κλικ: Î Ïοσθήκη σημείου" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "ΔιαχωÏισμός τμήματος (στην καμπÏλη)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Δεξί κλικ: ΔιαγÏαφή σημείου" @@ -5141,11 +5142,6 @@ msgstr "Î Ïοσθήκη σημείου (σε άδειο χώÏο)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "ΔιαχωÏισμός τμήματος (στην καμπÏλη)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "ΔιαγÏαφή σημείου" @@ -5202,6 +5198,10 @@ msgstr "ΑφαίÏεση σημείου ελÎγχου εξόδου" msgid "Remove In-Control Point" msgstr "ΑφαίÏεση σημείου ελÎγχου εισόδου" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "ΔιαχωÏισμός τμήματος (στην καμπÏλη)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5214,10 +5214,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Εμφάνιση οστών" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "ΔημιουÏγία χάÏτη UV" @@ -5259,10 +5265,20 @@ msgid "Transform UV Map" msgstr "Μετασχηματισμός χάÏτη UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Είδος μετασχηματισμοÏ" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "ΕπεξεÏγαστής δισδιάστατου πολυγώνου" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "ΕπεξεÏγαστής δισδιάστατου πολυγώνου" @@ -5287,11 +5303,7 @@ msgstr "ΔημιουÏγία οστών" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Δημιουγία πολυγώνου" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Μετακίνηση σημείου" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5319,20 +5331,20 @@ msgid "Scale Polygon" msgstr "Κλιμάκωση πολυγώνου" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "ΕπιλÎξτε Îνα αντικείμενο ÏÏθμισης Ï€Ïώτα!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5482,19 +5494,23 @@ msgid "Error saving file!" msgstr "Σφάλμα κατά την αποθήκευση TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Σφάλμα κατά την αποθήκευση θÎματος" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Σφάλμα κατά την αποθήκευση" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Σφάλμα κατά την εισαγωγή θÎματος" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Σφάλμα κατά την εισαγωγή" #: editor/plugins/script_editor_plugin.cpp @@ -5517,6 +5533,14 @@ msgid "Import Theme" msgstr "Εισαγωγή θÎματος" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Σφάλμα κατά την αποθήκευση θÎματος" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Σφάλμα κατά την αποθήκευση" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Αποθήκευση θÎματος ως..." @@ -5558,8 +5582,8 @@ msgstr "ΑÏχείο" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Î Ïοβολή αÏχείων" +msgid "Open..." +msgstr "Άνοιγμα" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5588,6 +5612,11 @@ msgid "Theme" msgstr "ΘÎμα" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Εισαγωγή θÎματος" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "ΕπαναφόÏτωση θÎματος" @@ -5596,10 +5625,6 @@ msgid "Save Theme" msgstr "Αποθήκευση θÎματος" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Αποθήκευση θÎματος ως" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Κλείσιμο τεκμηÏίωσης" @@ -5709,6 +5734,10 @@ msgstr "" msgid "Go to Function" msgstr "Πήγαινε σε συνάÏτηση..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Μόνο οι πόÏοι από το σÏστημα αÏχείων μποÏοÏν να διαγÏαφοÏν." @@ -5742,10 +5771,6 @@ msgstr "Κεφαλαιοποίηση" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6462,11 +6487,18 @@ msgid "Set Region Rect" msgstr "ΟÏισμός οÏθογωνίου πεÏιοχής" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "ΟÏισμός λαβής" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "ΛειτουÏγία κουμπώματος:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<Τίποτα>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6711,12 +6743,12 @@ msgstr "Μετασχηματισμός" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Î ÏοσθÎστε κόμβο/-ους από δÎντÏο" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "ΑφαίÏεση Ï„ÏÎχουσας εγγÏαφής" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6728,15 +6760,34 @@ msgid "Merge from Scene" msgstr "Συγχώνευση από σκηνή" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "Επικόλληση κίνησης" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "ΔιαγÏαφή σημείων." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "ΔημιουÏγία νÎου πολυγώνου από την αÏχή." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" -"ΕπιλÎξτε υπότιτλο για εικονίδιο, o οποίος θα χÏησιμοποιείται και σε μη " -"ÎγκυÏες συνδÎσεις αυτόματων πλακιδίων." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6767,13 +6818,8 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" -"ΑÏιστεÏÏŒ κλικ: ενεÏγοποίησε το bit.\n" -"Δεξί κλικ: απενεÏγοποίησε το bit." +msgid "Delete selected Rect." +msgstr "ΔιαγÏαφή επιλεγμÎνων αÏχείων;" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6784,6 +6830,21 @@ msgstr "ΕπÎλεξε το Ï„ÏÎχων επεξεÏγαζόμενο υπο-πΠ#: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Delete polygon." +msgstr "ΔιαγÏαφή σημείων" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "" +"ΑÏιστεÏÏŒ κλικ: ενεÏγοποίησε το bit.\n" +"Δεξί κλικ: απενεÏγοποίησε το bit." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6801,11 +6862,19 @@ msgstr "ΕπιλÎξτε υπο-πλακίδιο για να αλλάξετε Ï„ #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "ΕπιλÎξτε υπο-πλακίδιο για να αλλάξετε την Ï€ÏοτεÏαιότητα του." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Αυτή η λειτουÏγία δεν μποÏεί να γίνει χωÏίς σκηνή." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "ΣÏνολο πλακιδίων" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6825,6 +6894,11 @@ msgstr "Δεξιά" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Î Ïοσθήκη κόμβου.." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Î ÏόγÏαμμα σκίασης" @@ -6865,7 +6939,7 @@ msgstr "Î Ïοσθήκη..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Εξαγωγή ÎÏγου" #: editor/project_export.cpp @@ -8406,7 +8480,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "Η παÏάμετÏος step είναι μηδÎν!" #: modules/gdscript/gdscript_functions.cpp @@ -9332,7 +9407,7 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" "Τίποτα δεν είναι οÏατό, επειδή δεν Îχουν οÏιστεί πεÏάσματα για τα πλÎγματα." @@ -9383,7 +9458,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "Το PathFollow2D δουλεÏει μόνο όταν κληÏονομεί Îναν κόμβο Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9495,6 +9572,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Το δÎντÏο κίνησης δεν είναι ÎγκυÏο." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Ωμή λειτουÏγία" @@ -9511,6 +9592,10 @@ msgstr "Ειδοποίηση!" msgid "Please Confirm..." msgstr "ΠαÏακαλώ επιβεβαιώστε..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9581,11 +9666,6 @@ msgstr "Μη ÎγκυÏο μÎγεθος γÏαμματοσειÏάς." msgid "Input" msgstr "Î Ïοσθήκη εισόδου" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Τίποτα>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9603,6 +9683,60 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Δημιουγία πολυγώνου" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "ΔημιουÏγία νÎου πολυγώνου από την αÏχή" + +#~ msgid "Zoom out" +#~ msgstr "ΣμÏκÏινση" + +#~ msgid "Zoom in" +#~ msgstr "ΜεγÎθυνση" + +#~ msgid "Create Poly3D" +#~ msgstr "ΔημιουÏγία πολυγώνου 3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Δεν υπάÏχει πόÏος OccluderPolygon2D σε αυτόν τον κόμβο.\n" +#~ "Îα δημιουÏγία και να οÏισθεί Îνας;" + +#~ msgid "Edit existing polygon:" +#~ msgstr "ΕπεξεÏγασία υπαÏÎºÏ„Î¿Ï Ï€Î¿Î»Ï…Î³ÏŽÎ½Î¿Ï…:" + +#~ msgid "LMB: Move Point." +#~ msgstr "ΑÏιστεÏÏŒ κλίκ: ΜΕτακίνηση σημείου." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+ΑÏιστεÏÏŒ κλικ: ΔιαχωÏσμός τμήματος." + +#~ msgid "RMB: Erase Point." +#~ msgstr "Δεξί κλικ: ΔιαγÏαφή σημείου." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Î Ïοβολή αÏχείων" + +#~ msgid "Save Theme As" +#~ msgstr "Αποθήκευση θÎματος ως" + +#~ msgid "<None>" +#~ msgstr "<Τίποτα>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "ΕπιλÎξτε υπότιτλο για εικονίδιο, o οποίος θα χÏησιμοποιείται και σε μη " +#~ "ÎγκυÏες συνδÎσεις αυτόματων πλακιδίων." + +#~ msgid "Zoom:" +#~ msgstr "ΜεγÎθυνση:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "" #~ "Είστε σίγουÏοι πως θÎλετε να αφαιÏÎσετε όλες τις συνδÎσεις απο το \"" @@ -10320,9 +10454,6 @@ msgstr "" #~ msgid "Source Font:" #~ msgstr "Πηγαία γÏαμματοσειÏά:" -#~ msgid "Source Font Size:" -#~ msgstr "ÎœÎγεθος πηγαίας γÏαμματοσειÏάς:" - #~ msgid "Dest Resource:" #~ msgstr "Î ÏŒÏος Ï€ÏοοÏισμοÏ:" diff --git a/editor/translations/es.po b/editor/translations/es.po index 6c1b5908cd..741d58a62c 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -33,12 +33,14 @@ # Franklin David Macias Avellan <franklin.macias864@gmail.com>, 2018. # Dianiel GarcÃa <jdangarr@gmail.com>, 2018. # ayahuasca1979 <ayahuasca1979@gmail.com>, 2018. +# Elena G <elena.guzbla@gmail.com>, 2018. +# willy zegarra <willyzegarra58@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-09-14 23:25+0000\n" -"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n" +"PO-Revision-Date: 2018-12-13 14:40+0100\n" +"Last-Translator: willy zegarra <willyzegarra58@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -46,7 +48,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.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -282,7 +284,6 @@ msgstr "¿Crear %d nuevas pistas e insertar claves?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -439,7 +440,6 @@ msgid "Go to Next Step" msgstr "Ir al siguiente paso" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "Ir al paso anterior" @@ -563,15 +563,19 @@ msgstr "Reemplazar todo" msgid "Selection Only" msgstr "Sólo selección" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Acercar" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Alejar" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Restablecer zoom" @@ -580,8 +584,8 @@ msgid "Warnings:" msgstr "Advertencias:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Zoom:" +msgid "Font Size:" +msgstr "Tamaño de la tipografÃa:" #: editor/code_editor.cpp msgid "Line:" @@ -694,9 +698,8 @@ msgid "Edit Connection: " msgstr "Editar Conexión: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "¿Estás seguro/a que quieres quitar todas las conexiones de esta señal?" +msgstr "¿Está seguro/a que quiere quitar todas las conexiones de esta señal?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -741,8 +744,8 @@ msgid "Recent:" msgstr "Recientes:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Buscar:" @@ -793,8 +796,7 @@ msgid "Resource" msgstr "Recursos" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Ruta" @@ -1260,8 +1262,7 @@ msgid "Node Name:" msgstr "Nombre del nodo:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nombre" @@ -1339,7 +1340,6 @@ msgid "File Exists, Overwrite?" msgstr "El archivo ya existe ¿Quieres sobreescribirlo?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Seleccionar esta carpeta" @@ -1348,7 +1348,6 @@ msgid "Copy Path" msgstr "Copiar ruta" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Abrir en el Explorador de Archivos" @@ -1499,19 +1498,16 @@ msgid "Methods" msgstr "Métodos" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Métodos" +msgstr "Métodos:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Propiedades" +msgstr "Propiedades del Tema" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Propiedades:" +msgstr "Propiedades del Tema:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1543,9 +1539,8 @@ msgid "Class Description" msgstr "Descripción" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Descripción:" +msgstr "Descripción de la Clase:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1562,12 +1557,10 @@ msgstr "" "$color][url=$url2]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Descripción de la propiedad:" +msgstr "Descripción de la propiedad" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" msgstr "Descripción de la propiedad:" @@ -1580,14 +1573,12 @@ msgstr "" "[color=$color][url=$url]aportando una[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Descripción del método:" +msgstr "Descripción del métodos:" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Descripción del método:" +msgstr "Descripciones del método:" #: editor/editor_help.cpp msgid "" @@ -1603,49 +1594,40 @@ msgid "Search Help" msgstr "Ayuda de búsqueda" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Mostrar normales" +msgstr "Mostrar todos" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Clases" +msgstr "Solo clases" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Métodos" +msgstr "Solo métodos" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Señales" +msgstr "Solo señales" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Constantes" +msgstr "Solo Constantes" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Propiedades" +msgstr "Solo Propiedades" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Propiedades" +msgstr "Solo Propiedades del Tema" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Miembros" +msgstr "Tipo de Miembro" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Clase:" +msgstr "Clase" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1744,6 +1726,16 @@ msgid "This operation can't be done without a tree root." msgstr "Esta operación no puede realizarse sin una escena raÃz." #: 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 "" +"Esta escena no puede ser guardada por que hay una inclusión inclusiones " +"cÃclicas en la instancia.\n" +"Por favor, resuélvalo e intente guardar de nuevo." + +#: editor/editor_node.cpp msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." @@ -1753,7 +1745,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "¡No se puede sobreescribir una escena que está abierta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -2017,13 +2009,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "No se pudo cargar el script addon desde la ruta: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"No se pudo cargar el script addon desde la ruta: '%s' El script no está en " -"modo tool." +"No se puede cargar el script de addon desde la ruta: '%s' Parece que hay un " +"error en el código, por favor compruebe la sintaxis." #: editor/editor_node.cpp msgid "" @@ -2194,7 +2185,7 @@ msgid "Undo" msgstr "Deshacer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Rehacer" @@ -2218,7 +2209,7 @@ msgstr "Ajustes del proyecto" msgid "Export" msgstr "Exportar" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Herramientas" @@ -2648,9 +2639,18 @@ msgstr "Asignar..." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"No se puede crear un ViewportTexture en un recurso guardado como un " +"archivo.\n" +"El recurso necesita pertenecer a una escena." #: editor/editor_properties.cpp msgid "" @@ -2664,8 +2664,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "Selecciona un viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Nuevo script" @@ -2977,9 +2976,8 @@ msgstr "" "de tipos de archivo!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Favoritos:" +msgstr "Favoritos" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3066,14 +3064,12 @@ msgid "Instance" msgstr "Instanciar" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Favoritos:" +msgstr "Agregar a favoritos" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Quitar del grupo" +msgstr "Quitar de favoritos" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3095,7 +3091,7 @@ msgstr "Duplicar..." msgid "Move To..." msgstr "Mover a..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Nuevo Script..." @@ -3171,24 +3167,22 @@ msgid "Create Script" msgstr "Crear script" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" -msgstr "Encontrar en archivos" +msgstr "Buscar en Archivos" #: editor/find_in_files.cpp #, fuzzy msgid "Find:" -msgstr "Buscar: " +msgstr "Buscar:" #: editor/find_in_files.cpp #, fuzzy msgid "Folder:" -msgstr "Carpeta: " +msgstr "Carpeta:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Filtros" +msgstr "Filtros:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3228,7 +3222,8 @@ msgid "Group name already exists." msgstr "El nombre del grupo ya existe." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "nombre de Grupo inválido." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3477,14 +3472,13 @@ msgid "Activate now?" msgstr "¿Activar ahora?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "Crear polÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Editar polÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3492,25 +3486,27 @@ msgid "Insert Point" msgstr "Insertar punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Editar polÃgono (quitar punto)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Quitar polÃgono y punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Crear un nuevo polÃgono desde cero" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Crear puntos." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Editar polÃgono existente:\n" "Clic izquierdo: Mover punto.\n" @@ -3518,8 +3514,9 @@ msgstr "" "Clic derecho: Borrar punto." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Eliminar puntos" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Borrar puntos." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3567,15 +3564,6 @@ msgstr "Seleccionar y mover puntos, crear puntos con clic derecho." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Crear puntos." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Borrar puntos." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Punto" @@ -3659,7 +3647,6 @@ msgstr "" "no se pudieron obtener los nombres de las pistas." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Añadir Nodo..." @@ -4198,7 +4185,7 @@ msgstr "Todos" msgid "Plugins" msgstr "Plugins" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Ordenar:" @@ -4354,18 +4341,19 @@ msgid "Paste Pose" msgstr "Pegar pose" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Zoom out" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Resetear el Zoom" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Zoom in" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Modo de selección" @@ -4553,8 +4541,9 @@ msgid "Show Viewport" msgstr "Ver viewport" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Mostrar iconos de grupo y bloqueo" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4627,8 +4616,17 @@ msgstr "" "Arrastrar y soltar + Alt : Cambiar tipo de nodo" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Crear Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Crear polÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Editar polÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Editar polÃgono (quitar punto)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4729,37 +4727,9 @@ msgid "Item List Editor" msgstr "Editor de lista de elementos" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"No se ha encontrado el recurso OccluderPolygon2D en este nodo.\n" -"¿Crear uno y asignarlo?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Crear polÃgono oclusor" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Crea un nuevo polÃgono desde cero." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Editar polÃgono existente:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "Clic izquierdo: Mover punto." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl + LMB: Dividir Segmento." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "Clic derecho: Borrar punto." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "¡La malla está vacÃa!" @@ -5135,6 +5105,11 @@ msgid "Add Point to Curve" msgstr "Añadir punto a curva" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Cerrar curva" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Mover Punto en Curva" @@ -5162,6 +5137,11 @@ msgid "Click: Add Point" msgstr "Clic: Añadir Punto" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Dividir segmento (en curva)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Clic derecho: Eliminar punto" @@ -5177,11 +5157,6 @@ msgstr "Añadir punto (en espacio vacÃo)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Dividir segmento (en curva)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Eliminar punto" @@ -5238,6 +5213,10 @@ msgstr "Eliminar punto Out-Control" msgid "Remove In-Control Point" msgstr "Eliminar punto In-Control" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Dividir segmento (en curva)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "Mover unión" @@ -5248,10 +5227,20 @@ msgid "" msgstr "La propiedad esqueleto del Polygon2D no apunta a un nodo Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "Sincronizar huesos" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" +"Sin textura en este nodo.\n" +"Asigná una textura para poder editar la región." + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Crear mapa UV" @@ -5288,10 +5277,21 @@ msgid "Transform UV Map" msgstr "Transformar Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Tipo de transformación" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "Pintar peso de huesos" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Editor UV de polÃgonos en 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Editor UV de polÃgonos en 2D" @@ -5312,11 +5312,8 @@ msgid "Bones" msgstr "Huesos" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Crear polÃgono" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "Mover punto" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5344,19 +5341,23 @@ msgid "Scale Polygon" msgstr "Escalar polÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "Conectar dos puntos para crear una división" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Selecciona una división para borrarla" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "Pintar pesos con la intensidad especificada" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "Despintar pesos con la intensidad especificada" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5495,19 +5496,23 @@ msgid "Error saving file!" msgstr "¡Error guardando archivo!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Error al guardar el tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Error al guardar" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Error al importar el tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Error al importar" #: editor/plugins/script_editor_plugin.cpp @@ -5527,6 +5532,14 @@ msgid "Import Theme" msgstr "Importar tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Error al guardar el tema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Error al guardar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Guardar tema como..." @@ -5567,8 +5580,9 @@ msgid "File" msgstr "Archivo" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Nuevo TextFile" +#, fuzzy +msgid "Open..." +msgstr "Abrir" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5597,6 +5611,11 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importar tema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Recargar tema" @@ -5605,10 +5624,6 @@ msgid "Save Theme" msgstr "Guardar tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Guardar tema como" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Cerrar documentación" @@ -5717,6 +5732,10 @@ msgstr "(ignorar)" msgid "Go to Function" msgstr "Ir a función..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Estándar" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Sólo se pueden arrastrar/soltar recursos del sistema de archivos." @@ -5749,10 +5768,6 @@ msgstr "Poner en mayúsculas" msgid "Syntax Highlighter" msgstr "Resaltador de sintaxis" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Estándar" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5948,8 +5963,9 @@ msgid "Pitch" msgstr "Altura" #: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy msgid "Yaw" -msgstr "" +msgstr "Girar desde eje vertical" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6452,12 +6468,18 @@ msgid "Set Region Rect" msgstr "Establecer rectángulo de región" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Establecer handle" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Modo Snap:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Ninguno>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Ninguno" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6685,11 +6707,11 @@ msgstr "Mover a la derecha" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Voltear horizontalmente" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Voltear verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy @@ -6697,11 +6719,13 @@ msgid "Clear transform" msgstr "Transformar" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Agregar Textura(s) al TileSet" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Quitar textura actual del TileSet" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6713,15 +6737,35 @@ msgid "Merge from Scene" msgstr "Unir desde escena" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Seleccione sub-tile para utilizar como icono, éste se utilizará también en " -"enlazados automáticos no válidos." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Pegar animación" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Borrar puntos." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Crea un nuevo polÃgono desde cero." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Display Tile Names (Hold Alt Key)" msgstr "Mostrar nombres de tiles (mantener Tecla Alt)" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6755,21 +6799,32 @@ msgstr "" "Haz clic en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "¿Eliminar los archivos seleccionados?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"Clic izq: Activar bit.\n" -"Clic der: Desactivar bit.\n" +"Seleccionar sub-tile editado actualmente.\n" "Clic en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Eliminar puntos" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"Seleccionar sub-tile editado actualmente.\n" +"Clic izq: Activar bit.\n" +"Clic der: Desactivar bit.\n" "Clic en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6791,11 +6846,21 @@ msgstr "" "Clic en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Seleccionar sub-tile para cambiar su prioridad.\n" +"Clic en otro Tile para editarlo." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "Esta propiedad no se puede cambiar." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Tile Set" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6811,6 +6876,11 @@ msgid "Light" msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Añadir Nodo..." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -6851,7 +6921,7 @@ msgstr "Añadir..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Presets de Exportación:" #: editor/project_export.cpp @@ -8352,7 +8422,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "el argumento step es cero!" #: modules/gdscript/gdscript_functions.cpp @@ -8965,12 +9036,11 @@ msgstr "Buscar en VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Obtener %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Establecer " +msgstr "Establecer %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9070,6 +9140,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"La animación CPUParticles2D requiere el uso de un CanvasItemMaterial con " +"\"Particles Animation\" activado." #: scene/2d/light_2d.cpp msgid "" @@ -9127,6 +9199,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"La animación Particles2D requiere el uso de un CanvasItemMaterial con " +"\"Particles Animation\" activado." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9273,7 +9347,7 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" "Nada es visible porque las mallas no se han asignado a los pases de dibujo." @@ -9282,6 +9356,8 @@ msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"La animación CPUParticles requiere el uso de un SpatialMaterial con " +"\"Billboard Particles\" activado." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9312,6 +9388,8 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"La animación de partÃculas requiere el uso de un SpatialMaterial con " +"\"Billboard Particles\" activado." #: scene/3d/path.cpp #, fuzzy @@ -9326,7 +9404,9 @@ msgstr "" "PathFollow2D solo funciona cuando está colocado como hijo de un nodo Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9433,6 +9513,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "La raÃz del AnimationPlayer no es un nodo válido." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Raw" @@ -9449,6 +9533,10 @@ msgstr "¡Alerta!" msgid "Please Confirm..." msgstr "Por favor, confirma..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9461,7 +9549,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Si exp_edit es `true` min_value debe ser > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9517,10 +9605,6 @@ msgstr "Tamaño de tipografÃa incorrecto." msgid "Input" msgstr "Entrada" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Ninguno" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Fuente inválida para el shader." @@ -9537,6 +9621,59 @@ 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 "Create Poly" +#~ msgstr "Crear polÃgono" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Crear un nuevo polÃgono desde cero" + +#~ msgid "Zoom out" +#~ msgstr "Zoom out" + +#~ msgid "Zoom in" +#~ msgstr "Zoom in" + +#~ msgid "Create Poly3D" +#~ msgstr "Crear Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "No se ha encontrado el recurso OccluderPolygon2D en este nodo.\n" +#~ "¿Crear uno y asignarlo?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Editar polÃgono existente:" + +#~ msgid "LMB: Move Point." +#~ msgstr "Clic izquierdo: Mover punto." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl + LMB: Dividir Segmento." + +#~ msgid "RMB: Erase Point." +#~ msgstr "Clic derecho: Borrar punto." + +#~ msgid "New TextFile" +#~ msgstr "Nuevo TextFile" + +#~ msgid "Save Theme As" +#~ msgstr "Guardar tema como" + +#~ msgid "<None>" +#~ msgstr "<Ninguno>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Seleccione sub-tile para utilizar como icono, éste se utilizará también " +#~ "en enlazados automáticos no válidos." + +#~ msgid "Zoom:" +#~ msgstr "Zoom:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "¿Estás seguro/a que quieres quitar todas las conexiones de el/la \"" @@ -10271,9 +10408,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Source Font:" #~ msgstr "TipografÃa elegida:" -#~ msgid "Source Font Size:" -#~ msgstr "Tamaño de la tipografÃa elegida:" - #~ msgid "Dest Resource:" #~ msgstr "Recurso de destino:" @@ -11149,13 +11283,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Scale Region Editor" #~ msgstr "Editor de Regiones de Escalado" -#~ msgid "" -#~ "No texture in this node.\n" -#~ "Set a texture to be able to edit region." -#~ msgstr "" -#~ "Sin textura en este nodo.\n" -#~ "Asigná una textura para poder editar la región." - #~ msgid "Inherit Scene" #~ msgstr "Heredar Escena" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 133c013958..93684a56c4 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-11-21 19:08+0000\n" +"PO-Revision-Date: 2018-12-13 14:39+0100\n" "Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" @@ -22,7 +22,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.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -256,7 +256,6 @@ msgstr "Crear %d NUEVOS tracks e insertar claves?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -407,12 +406,10 @@ msgid "Delete Selection" msgstr "Eliminar Selección" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "Ir a Paso Próximo" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "Ir a Paso Previo" @@ -536,15 +533,19 @@ msgstr "Reemplazar Todo" msgid "Selection Only" msgstr "Solo Selección" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoom In" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zoom Out" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Resetear el Zoom" @@ -553,8 +554,8 @@ msgid "Warnings:" msgstr "Advertencias:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Zoom:" +msgid "Font Size:" +msgstr "Tamaño de TipografÃa:" #: editor/code_editor.cpp msgid "Line:" @@ -667,9 +668,9 @@ msgid "Edit Connection: " msgstr "Editar Conexión: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "¿Estás seguro/a que querés quitar todas las conexiones de esta señal?" +msgstr "" +"¿Estás seguro/a que querés quitar todas las conexiones de la señal \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -714,8 +715,8 @@ msgid "Recent:" msgstr "Recientes:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Buscar:" @@ -764,8 +765,7 @@ msgid "Resource" msgstr "Recursos" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Ruta" @@ -822,10 +822,8 @@ msgid "Error loading:" msgstr "Error cargando:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "" -"La escena falló al cargar debido a las siguientes dependencias faltantes:" +msgstr "Fallo la carga debido a dependencias faltantes:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1232,8 +1230,7 @@ msgid "Node Name:" msgstr "Nombre de Nodo:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nombre" @@ -1311,24 +1308,21 @@ msgid "File Exists, Overwrite?" msgstr "El Archivo Existe, Sobreescribir?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "Seleccionar esta Carpeta" +msgstr "Seleccionar Esta Carpeta" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" msgstr "Copiar Ruta" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Abrir en el Explorador de Archivos" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "Mostrar en Gestor de Archivos" +msgstr "Mostrar en Explorador de Archivos" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1471,19 +1465,16 @@ msgid "Methods" msgstr "Métodos" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Métodos" +msgstr "Métodos:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Propiedades" +msgstr "Propiedades de Tema" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Propiedades:" +msgstr "Propiedades de Tema:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1510,14 +1501,12 @@ msgid "Constants:" msgstr "Constantes:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Descripción" +msgstr "Descripción de Clase" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Descripción:" +msgstr "Descripción de Clase:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1534,14 +1523,12 @@ msgstr "" "url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Descripción de Propiedad:" +msgstr "Descripción de Propiedades" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "Descripción de Propiedad:" +msgstr "Descripción de Propiedades:" #: editor/editor_help.cpp msgid "" @@ -1552,12 +1539,10 @@ msgstr "" "[color=$color][url=$url]contribuyendo una[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Descripción de Métodos:" +msgstr "Descripción de Método" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" msgstr "Descripción de Métodos:" @@ -1575,49 +1560,40 @@ msgid "Search Help" msgstr "Buscar en la Ayuda" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Mostrar Normal" +msgstr "Mostrar Todo" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Clases" +msgstr "Solo Clases" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Métodos" +msgstr "Solo Métodos" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Señales" +msgstr "Solo Señales" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Constantes" +msgstr "Solo Constantes" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Propiedades" +msgstr "Solo Propiedades" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Propiedades" +msgstr "Solo Propiedades de Tema" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Miembros" +msgstr "Tipo de Miembro" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Clase:" +msgstr "Clase" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1717,6 +1693,15 @@ msgstr "Esta operación no puede hacerse sin una raÃz de árbol." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"Esta escena no puede ser guardada porque hay una inclusión cÃclica de " +"instanciado.\n" +"Por favor resolvela y probá de nuevo." + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1725,7 +1710,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "No se puede sobrescribir una escena que todavÃa esta abierta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1988,13 +1973,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "No se pudo cargar el script de addon desde la ruta: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"No se pudo cargar el script de addon desde la ruta: El script '%s' no está " -"en modo tool." +"No se pudo cargar el script de addon desde la ruta: '%s' Parece haber un " +"error en el código. Por favor, revisá la sintaxis." #: editor/editor_node.cpp msgid "" @@ -2050,7 +2034,6 @@ msgstr "Por Defecto" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" msgstr "Mostrar en Sistema de Archivos" @@ -2135,9 +2118,8 @@ msgid "Save Scene" msgstr "Guardar Escena" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" -msgstr "Guardar todas las Escenas" +msgstr "Guardar Todas las Escenas" #: editor/editor_node.cpp msgid "Close Scene" @@ -2165,7 +2147,7 @@ msgid "Undo" msgstr "Deshacer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Rehacer" @@ -2189,7 +2171,7 @@ msgstr "Configuración de Proyecto" msgid "Export" msgstr "Exportar" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Herramientas" @@ -2620,9 +2602,17 @@ msgstr "Asignar.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"No se puede crear una ViewportTexture en recursos guardados como archivo.\n" +"El recurso debe pertenecer a una escena." #: editor/editor_properties.cpp msgid "" @@ -2631,13 +2621,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"No se puede crear una ViewportTexture en este recurso porque no esta " +"asignado como local a la escena.\n" +"Por favor activá la propiedad 'local a escena' en él (y en todos los " +"recursos que lo contienen hasta un nodo)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Seleccionar un Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Nuevo Script" @@ -2949,9 +2942,8 @@ msgstr "" "de tipos de archivo!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Favoritos:" +msgstr "Favoritos" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3037,14 +3029,12 @@ msgid "Instance" msgstr "Instancia" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Favoritos:" +msgstr "Agregar a favoritos" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Quitar del Grupo" +msgstr "Quitar de favoritos" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3066,7 +3056,7 @@ msgstr "Duplicar..." msgid "Move To..." msgstr "Mover A..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Nuevo Script.." @@ -3075,14 +3065,12 @@ msgid "New Resource..." msgstr "Nuevo Recurso..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" -msgstr "Expandir todos" +msgstr "Expandir Todos" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" -msgstr "Colapsar todos" +msgstr "Colapsar Todos" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3104,9 +3092,8 @@ msgid "Re-Scan Filesystem" msgstr "Reexaminar Sistema de Archivos" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "Act/Desact. Modo" +msgstr "Act/Desact. Modo Partido" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3142,24 +3129,20 @@ msgid "Create Script" msgstr "Crear Script" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" -msgstr "Encontrar en archivos" +msgstr "Buscar en archivos" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Encontrar: " +msgstr "Buscar:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Carpeta: " +msgstr "Carpeta:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Filtros" +msgstr "Filtros:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3199,7 +3182,8 @@ msgid "Group name already exists." msgstr "El nombre del grupo ya existe." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "nombre de Grupo inválido." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3336,14 +3320,12 @@ msgid "Failed to load resource." msgstr "Fallo al cargar recurso." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" -msgstr "Expandir todas las propiedades" +msgstr "Expandir Todas las Propiedades" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" -msgstr "Colapsar todas las propiedades" +msgstr "Colapsar Todas las Propiedades" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -3447,14 +3429,13 @@ msgid "Activate now?" msgstr "Activar ahora?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "Crear PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Editar PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3462,25 +3443,27 @@ msgid "Insert Point" msgstr "Insertar Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Editar PolÃgono (Remover Punto)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Remover PolÃgono y Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Crear un nuevo polÃgono desde cero" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Crear puntos." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Editar polÃgono existente:\n" "Click izq: Mover Punto.\n" @@ -3488,8 +3471,9 @@ msgstr "" "Click der: Eliminar Punto." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Eliminar puntos" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Borrar puntos." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3537,15 +3521,6 @@ msgstr "Seleccionar y mover puntos, crear puntos con click derecho." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Crear puntos." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Borrar puntos." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Punto" @@ -3629,7 +3604,6 @@ msgstr "" "no se pudieron obtener los nombres de las pistas." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Agregar Nodo.." @@ -4168,7 +4142,7 @@ msgstr "Todos" msgid "Plugins" msgstr "Plugins" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Ordenar:" @@ -4299,9 +4273,8 @@ msgid "Resize CanvasItem" msgstr "Redimensionar CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "Rotar CanvasItem" +msgstr "Escalar CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4324,18 +4297,19 @@ msgid "Paste Pose" msgstr "Pegar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Zoom out" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Reset de Zoom" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Zoom in" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Modo Seleccionar" @@ -4366,9 +4340,8 @@ msgid "Rotate Mode" msgstr "Modo Rotar" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Modo de Escalado (R)" +msgstr "Modo de Escalado" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4467,9 +4440,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "Restaurar la habilidad de seleccionar los hijos de un objeto." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Esqueleto" +msgstr "Opciones de Esqueleto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4523,7 +4495,7 @@ msgstr "Mostrar Viewport" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Mostrar Grupo Y Bloquear Iconos" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4596,8 +4568,17 @@ msgstr "" "Drag & drop + Alt : Cambiar tipo de nodo" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Crear Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Crear PolÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Editar PolÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Editar PolÃgono (Remover Punto)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4698,37 +4679,9 @@ msgid "Item List Editor" msgstr "Editor de Lista de Items" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"No hay ningún recurso OccluderPolygon2D en este nodo.\n" -"Crear y asignar uno?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Crear PolÃgono Oclusor" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Crear un nuevo polÃgono de cero." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Editar polÃgono existente:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "Click. Izq: Mover Punto." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+Click Izq.: Partir Segmento en Dos." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "Click Der.: Borrar Punto." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "El Mesh está vacÃo!" @@ -4965,9 +4918,8 @@ msgid "Create Navigation Polygon" msgstr "Crear PolÃgono de Navegación" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "Generar Rect. de Visibilidad" +msgstr "Generando Rect. de Visibilidad" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" @@ -5099,6 +5051,11 @@ msgid "Add Point to Curve" msgstr "Agregar Punto a Curva" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Cerrar Curva" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Mover Punto en Curva" @@ -5126,6 +5083,11 @@ msgid "Click: Add Point" msgstr "Click: Agregar Punto" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Partir Segmento (en curva)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Click Derecho: Eliminar Punto" @@ -5141,11 +5103,6 @@ msgstr "Agregar Punto (en espacio vacÃo)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Partir Segmento (en curva)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Eliminar Punto" @@ -5202,6 +5159,10 @@ msgstr "Quitar Punto Out-Control" msgid "Remove In-Control Point" msgstr "Quitar Punto In-Control" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Partir Segmento (en curva)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "Mover unión" @@ -5212,10 +5173,20 @@ msgid "" msgstr "La propiedad esqueleto del Polygon2D no apunta a un nodo Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "Sincronizar Huesos" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" +"Sin textura en este nodo.\n" +"Asigná una textura para poder editar la región." + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Crear Mapa UV" @@ -5252,10 +5223,21 @@ msgid "Transform UV Map" msgstr "Transformar Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Tipo de Transformación" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "Pintar peso de huesos" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Editor UV de PolÃgonos 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Editor UV de PolÃgonos 2D" @@ -5276,11 +5258,8 @@ msgid "Bones" msgstr "Huesos" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Crear PolÃgono" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "Mover Punto" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5308,19 +5287,23 @@ msgid "Scale Polygon" msgstr "Escalar PolÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "Conectar dos puntos para crear una división" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Seleccioná una división para borrarla" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "Pintar pesos con la intensidad especificada" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "Despintar pesos con la intensidad especificada" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5446,9 +5429,8 @@ msgid "Error writing TextFile:" msgstr "Error al escribir el TextFile:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." -msgstr "Error no se pudo cargar el archivo." +msgstr "Error: no se pudo cargar el archivo." #: editor/plugins/script_editor_plugin.cpp msgid "Error could not load file." @@ -5459,19 +5441,23 @@ msgid "Error saving file!" msgstr "Error guardando archivo!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Error al guardar el tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Error al guardar" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Error al importar el tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Error al importar" #: editor/plugins/script_editor_plugin.cpp @@ -5491,6 +5477,14 @@ msgid "Import Theme" msgstr "Importar Tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Error al guardar el tema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Error al guardar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Guardar Tema Como..." @@ -5531,8 +5525,9 @@ msgid "File" msgstr "Archivo" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Nuevo Archivo de Texto" +#, fuzzy +msgid "Open..." +msgstr "Abrir" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5547,7 +5542,6 @@ msgid "Copy Script Path" msgstr "Copiar Ruta de Script" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Previo en Historial" @@ -5561,6 +5555,11 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importar Tema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Recargar Tema" @@ -5569,10 +5568,6 @@ msgid "Save Theme" msgstr "Guardar Tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Guardar Tema Como" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Cerrar Docs" @@ -5619,9 +5614,8 @@ msgid "Keep Debugger Open" msgstr "Mantener el Depurador Abierto" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" -msgstr "Depurar con editor externo" +msgstr "Depurar con Editor Externo" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" @@ -5664,9 +5658,8 @@ msgid "Debugger" msgstr "Depurador" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" -msgstr "Resultados de la búsqueda" +msgstr "Resultados de la Búsqueda" #: editor/plugins/script_text_editor.cpp msgid "Line" @@ -5677,9 +5670,12 @@ msgid "(ignore)" msgstr "(ignorar)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Ir a Función..." +msgstr "Ir a Función" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Estándar" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5713,10 +5709,6 @@ msgstr "Capitalizar" msgid "Syntax Highlighter" msgstr "Resaltador de sintaxis" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Estándar" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5768,14 +5760,12 @@ msgid "Trim Trailing Whitespace" msgstr "Eliminar Espacios Sobrantes al Final" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "Convertir Indentación En Espacios" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" -msgstr "Convertir Indentación En Tabs" +msgstr "Convertir Indentación En Tabulaciones" #: editor/plugins/script_text_editor.cpp msgid "Auto Indent" @@ -5791,31 +5781,26 @@ msgid "Remove All Breakpoints" msgstr "Quitar Todos los Breakpoints" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" -msgstr "Ir a Próximo Breakpoint" +msgstr "Ir al Breakpoint Siguiente" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "Ir a Anterior Breakpoint" +msgstr "Ir al Breakpoint Anterior" #: editor/plugins/script_text_editor.cpp msgid "Find Previous" msgstr "Encontrar Anterior" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." -msgstr "Encontrar en archivos..." +msgstr "Buscar en Archivos..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Ir a Función..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Ir a LÃnea..." @@ -5913,7 +5898,7 @@ msgstr "Altura" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Yaw" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6080,9 +6065,8 @@ msgid "Freelook Speed Modifier" msgstr "Modificador de Velocidad de Vista Libre" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "Trabar Rotación de Vista" +msgstr "Rotación de Vista Trabada" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6416,12 +6400,18 @@ msgid "Set Region Rect" msgstr "Setear Region Rect" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Setear Handle" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Modo Snap:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Ninguno>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Ninguno" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6584,9 +6574,8 @@ msgid "Fix Invalid Tiles" msgstr "Corregir Tiles Inválidos" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Centrar Selección" +msgstr "Cortar Selección" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6633,39 +6622,37 @@ msgid "Pick Tile" msgstr "Elegir Tile" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Mover Selección" +msgstr "Copiar Selección" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Modo Rotar" +msgstr "Rotar a la izquierda" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "Mover a la Derecha" +msgstr "Rotar a la derecha" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Espejar horizontalmente" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Espejar verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "Transform" +msgstr "Reestablecer transform" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Agregar Textura(s) al TileSet" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Quitar Textura actual del TileSet" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6677,19 +6664,38 @@ msgid "Merge from Scene" msgstr "Mergear desde Escena" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Selectionar sub-tile para usar como icono, esta también sera usada en " -"bindings inválidos de autotile." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "Mostrar nombres de tiles (mantener Tecla Alt)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Pegar Animación" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Borrar puntos." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Crear un nuevo polÃgono de cero." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Mostrar nombres de tiles (mantener Tecla Alt)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" msgstr "¿Quitar Textura Seleccionada y TODOS LOS TILES que la usen?" @@ -6706,9 +6712,8 @@ msgid "Merge from scene?" msgstr "¿Mergear desde escena?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " archivo(s) no fueron agregados porque ya estaban en la lista." +msgstr "%s archivo(s) no fueron agregados porque ya estaban en la lista." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6719,21 +6724,32 @@ msgstr "" "Click en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Eliminar archivos seleccionados?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"Click izq: Activar bit.\n" -"Click der: Desactivar bit.\n" +"Seleccionar sub-tile editado actualmente.\n" "Click en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Eliminar puntos" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"Seleccionar sub-tile editado actualmente.\n" +"Click izq: Activar bit.\n" +"Click der: Desactivar bit.\n" "Click en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6755,11 +6771,21 @@ msgstr "" "Click en otro Tile para editarlo." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Seleccionar sub-tile para cambiar su prioridad.\n" +"Click en otro Tile para editarlo." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "Esta propiedad no se puede cambiar." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Tile Set" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6775,6 +6801,11 @@ msgid "Light" msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Agregar Nodo.." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -6797,14 +6828,12 @@ msgstr "" "corruptas:" #: editor/project_export.cpp -#, fuzzy msgid "Release" -msgstr "recién soltado" +msgstr "Release" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "Exportando para %s" +msgstr "Exportar Todo" #: editor/project_export.cpp msgid "Presets" @@ -6816,8 +6845,8 @@ msgstr "Agregar..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "Presets de Exportación:" +msgid "Export Path" +msgstr "Ruta de Exportación:" #: editor/project_export.cpp msgid "Resources" @@ -6882,14 +6911,12 @@ msgid "Export PCK/Zip" msgstr "Exportar PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Modo de Exportación:" +msgstr "¿Modo de Exportación?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "Exportar" +msgstr "Exportar Todos" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7580,7 +7607,6 @@ msgid "Step" msgstr "Paso" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" msgstr "Cantidad en la que se incrementa el contador por cada nodo" @@ -7589,7 +7615,6 @@ msgid "Padding" msgstr "Relleno" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." @@ -7738,6 +7763,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"Desactivar \"editable_instance\" causara que todas las propiedades del nodo " +"vuelvan a sus valores por defecto." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7813,9 +7840,8 @@ msgid "Clear Inheritance" msgstr "Limpiar Herencia" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Abrir la documentación online de Godot" +msgstr "Abrir documentación" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7830,9 +7856,8 @@ msgid "Change Type" msgstr "Cambiar Tipo" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Abrir Script" +msgstr "Extender Script" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -7996,9 +8021,8 @@ msgid "Path is empty" msgstr "La ruta está vacÃa" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "El sprite esta vacÃo!" +msgstr "Nombre de archivo vacio" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8089,9 +8113,8 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "Frames del Stack" +msgstr "Stack Trace" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8318,7 +8341,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "el argumento step es cero!" #: modules/gdscript/gdscript_functions.cpp @@ -8542,7 +8566,7 @@ msgstr "Fin del stack trace de excepción interna" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "Hacer Bake de NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8929,12 +8953,11 @@ msgstr "Buscar en VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Obtener %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Set " +msgstr "Asignar %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9033,6 +9056,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Animar CPUParticles2D requiere el uso de un CanvasItemMaterial con " +"\"Particles Animation\" activado." #: scene/2d/light_2d.cpp msgid "" @@ -9088,6 +9113,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Animar de Particles2D requiere el uso de un CanvasItemMaterial con " +"\"Particles Animation\" activado." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9232,15 +9259,16 @@ msgstr "" "shape!" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "Nada visible ya que no se asigno pasadas de dibujado a los meshes." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Nada visible ya que no se asignó ningún mesh." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"Animar CPUParticles requiere el uso de un SpatialMaterial con \"Billboard " +"Particles\" activado." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9269,22 +9297,28 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"Animar Particles requiere el uso de un SpatialMaterial con \"Billboard " +"Particles\" activado." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." msgstr "" -"PathFollow2D sólo funciona cuando está seteado como hijo de un nodo Path2D." +"PathFollow solo funciona cuando está asignado como hijo de un nodo Path." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" -"PathFollow2D sólo funciona cuando está seteado como hijo de un nodo Path2D." +"OrientedPathFollow solo funciona cuando esta asignado como hijo de un nodo " +"Path." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" +"OrientedPathFollow requiere que los vectores up estén activos en su Path " +"padre." #: scene/3d/physics_body.cpp msgid "" @@ -9326,15 +9360,14 @@ msgid "This body will be ignored until you set a mesh" msgstr "Este cuerpo sera ignorado hasta que le asignes un mesh" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" "Change the size in children collision shapes instead." msgstr "" -"Los cambios de tamaño a SoftBody serán sobre escritos por el motor de fÃsica " -"al ejecutar.\n" -"Cambiá el tamaño de los collision shapes hijos." +"Los cambios de tamaño a un SoftBody serán sobrescritos por el motor de " +"fÃsica al ejecutar.\n" +"En su lugar, cambiá el tamaño de los collision shapes hijos." #: scene/3d/sprite_3d.cpp msgid "" @@ -9390,6 +9423,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "La raÃz del AnimationPlayer no es un nodo válido." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Raw" @@ -9406,6 +9443,10 @@ msgstr "Alerta!" msgid "Please Confirm..." msgstr "Confirmá, por favor..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9418,7 +9459,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Si exp_edit es verdadero min_value debe ser > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9474,10 +9515,6 @@ msgstr "Tamaño de tipografÃa inválido." msgid "Input" msgstr "Entrada" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Ninguno" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Fuente inválida para el shader." @@ -9494,6 +9531,59 @@ 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 "Create Poly" +#~ msgstr "Crear PolÃgono" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Crear un nuevo polÃgono desde cero" + +#~ msgid "Zoom out" +#~ msgstr "Zoom out" + +#~ msgid "Zoom in" +#~ msgstr "Zoom in" + +#~ msgid "Create Poly3D" +#~ msgstr "Crear Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "No hay ningún recurso OccluderPolygon2D en este nodo.\n" +#~ "Crear y asignar uno?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Editar polÃgono existente:" + +#~ msgid "LMB: Move Point." +#~ msgstr "Click. Izq: Mover Punto." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+Click Izq.: Partir Segmento en Dos." + +#~ msgid "RMB: Erase Point." +#~ msgstr "Click Der.: Borrar Punto." + +#~ msgid "New TextFile" +#~ msgstr "Nuevo Archivo de Texto" + +#~ msgid "Save Theme As" +#~ msgstr "Guardar Tema Como" + +#~ msgid "<None>" +#~ msgstr "<Ninguno>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Selectionar sub-tile para usar como icono, esta también sera usada en " +#~ "bindings inválidos de autotile." + +#~ msgid "Zoom:" +#~ msgstr "Zoom:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "¿Estás seguro/a que querés quitar todas las conexiones de el/la \"" @@ -10217,9 +10307,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Source Font:" #~ msgstr "TipografÃa de Origen:" -#~ msgid "Source Font Size:" -#~ msgstr "Tamaño de la TipografÃa de Origen:" - #~ msgid "Dest Resource:" #~ msgstr "Recurso de Dest:" @@ -11072,13 +11159,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Scale Region Editor" #~ msgstr "Editor de Regiones de Escalado" -#~ msgid "" -#~ "No texture in this node.\n" -#~ "Set a texture to be able to edit region." -#~ msgstr "" -#~ "Sin textura en este nodo.\n" -#~ "Asigná una textura para poder editar la región." - #~ msgid "Inherit Scene" #~ msgstr "Heredar Escena" diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 4f908a5ad2..2d8350551a 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -13,15 +13,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-21 19:07+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:35+0100\n" "Last-Translator: Mahdi <sadisticwarlock@gmail.com>\n" "Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/" "godot/fa/>\n" "Language: fa\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -266,7 +268,6 @@ msgstr "ساختن تعداد d% ترک جدید، ودرج کلیدها؟" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -543,15 +544,19 @@ msgstr "جایگزینی همه" msgid "Selection Only" msgstr "تنها در قسمت انتخاب شده" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "بزرگنمایی بیشتر" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "بزرگنمایی کمتر" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "بازنشانی بزرگنمایی" @@ -560,9 +565,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "بزرگنمایی بیشتر" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -727,8 +731,8 @@ msgid "Recent:" msgstr "اخیر:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "جستجو:" @@ -779,8 +783,7 @@ msgid "Resource" msgstr "منبع" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "مسیر" @@ -1243,8 +1246,7 @@ msgid "Node Name:" msgstr "نام گره:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1724,6 +1726,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2126,7 +2134,7 @@ msgid "Undo" msgstr "خنثی کردن (Undo)" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2150,7 +2158,7 @@ msgstr "ترجیØات پروژه" msgid "Export" msgstr "صدور" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ابزارها" @@ -2570,6 +2578,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2586,8 +2600,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "New Script" msgstr "صØنه جدید" @@ -3019,7 +3032,7 @@ msgstr "انتخاب شده را به دو تا تکثیر Ú©Ù†" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "صØنه جدید" @@ -3158,7 +3171,7 @@ msgstr "بارگذاری خودکار 's%' هم اکنون موجود است!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "نام نامعتبر." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3410,46 +3423,48 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "انتخاب شده را تغییر مقیاس بده" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "ویرایش سیگنال" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr "برداشتن نقش" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "ØØ°Ù Ú©Ù†" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" -msgstr "ØØ°Ù Ú©Ù†" +msgid "Erase points." +msgstr "Ú©Ùندی در آغاز" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3494,17 +3509,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "ØØ°Ù Ú©Ù†" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Ú©Ùندی در آغاز" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3582,7 +3586,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "اÙزودن گره" @@ -4138,7 +4141,7 @@ msgstr "همه" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "مرتب‌سازی:" @@ -4289,21 +4292,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "بزرگنمایی کمتر" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "بزرگنمایی کمتر" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "بزرگنمایی بیشتر" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "انتخاب Øالت" @@ -4562,7 +4563,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4666,35 +4676,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5065,6 +5049,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "ویرایش منØÙ†ÛŒ گره" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5092,6 +5081,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5107,11 +5100,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5172,6 +5160,10 @@ msgstr "برداشتن نقش" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5183,7 +5175,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5227,10 +5225,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "گشودن ویرایشگر دو بعدی" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5252,12 +5260,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "انتخاب شده را تغییر مقیاس بده" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "برداشتن نقطه" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5284,20 +5288,20 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "نخست، یک تنظیم را انتخاب کنید!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5441,20 +5445,24 @@ msgid "Error saving file!" msgstr "خطا در بارگذاری:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "خطای بارگذاری قلم." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "خطا در بارگذاری:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "خطای بارگذاری قلم." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "خطا در بارگذاری:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5476,6 +5484,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5518,8 +5534,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "نمایش پرونده ها" +msgid "Open..." +msgstr "باز Ú©Ù†" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5549,15 +5565,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "من میبینم ..." #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5670,6 +5687,10 @@ msgstr "" msgid "Go to Function" msgstr "اÙزودن وظیÙÙ‡" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5702,10 +5723,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6423,11 +6440,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6674,12 +6696,12 @@ msgstr "انتقال را در انیمیشن تغییر بده" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "گره(ها) را از درخت اضاÙÙ‡ Ú©Ù†" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Øذ٠نقطهٔ منØÙ†ÛŒ" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6691,13 +6713,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "مسیر به سمت گره:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Ú©Ùندی در آغاز" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6727,16 +6770,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "آیا پرونده‌های انتخاب شده Øذ٠شود؟" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "ساختن پوشه" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "ØØ°Ù Ú©Ù†" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "ساختن پوشه" @@ -6754,12 +6808,19 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "ساختن پوشه" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "صدور مجموعه کاشی" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6776,6 +6837,11 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "اÙزودن گره" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6816,7 +6882,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "صدور پروژه" #: editor/project_export.cpp @@ -8322,7 +8388,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "آرگومان step صÙر است!" #: modules/gdscript/gdscript_functions.cpp @@ -9252,7 +9319,7 @@ msgstr "" "برای آن ایجاد کنید!" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9303,7 +9370,9 @@ msgstr "" "می‌کند." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9401,6 +9470,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9417,6 +9490,10 @@ msgstr "هشدار!" msgid "Please Confirm..." msgstr "لطÙاً تأیید کنید…" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9480,10 +9557,6 @@ msgstr "اندازهٔ قلم نامعتبر." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9501,6 +9574,22 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "بزرگنمایی کمتر" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "بزرگنمایی بیشتر" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "نمایش پرونده ها" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "بزرگنمایی بیشتر" + #~ msgid "Class List:" #~ msgstr "Ùهرست کلاس:" @@ -9561,9 +9650,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "تغییر Øالت بسته شدن ترک انیمشین" -#~ msgid "Edit Node Curve" -#~ msgstr "ویرایش منØÙ†ÛŒ گره" - #~ msgid "Edit Selection Curve" #~ msgstr "ویرایش منØÙ†ÛŒ انتخاب شده" @@ -9627,9 +9713,6 @@ msgstr "" #~ msgid "Thanks!" #~ msgstr "با تشکر !" -#~ msgid "I see..." -#~ msgstr "من میبینم ..." - #, fuzzy #~ msgid "Can't open '%s'." #~ msgstr "در Øال اتصال..." diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 40def6086b..3cd306dcb7 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -12,15 +12,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-04 17:26+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:35+0100\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" "Language: fi\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -254,7 +256,6 @@ msgstr "Luo %d uutta raitaa ja lisää avaimet?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -399,14 +400,12 @@ msgid "Delete Selection" msgstr "Poista valitut" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Mene seuraavaan vaiheeseen" +msgstr "Mene seuraavaan askeleeseen" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Mene edelliseen vaiheeseen" +msgstr "Mene edelliseen askeleeseen" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -528,15 +527,19 @@ msgstr "Korvaa kaikki" msgid "Selection Only" msgstr "Pelkkä valinta" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Lähennä" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Loitonna" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Palauta oletuslähennystaso" @@ -545,8 +548,8 @@ msgid "Warnings:" msgstr "Varoitukset:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Lähennä:" +msgid "Font Size:" +msgstr "Fontin koko:" #: editor/code_editor.cpp msgid "Line:" @@ -659,9 +662,8 @@ msgid "Edit Connection: " msgstr "Muokkaa yhteyttä: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Oletko varma, että haluat poistaa kaikki kytkennät tältä signaalilta?" +msgstr "Oletko varma, että haluat poistaa kaikki kytkennät signaalilta \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -706,8 +708,8 @@ msgid "Recent:" msgstr "Viimeaikaiset:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Hae:" @@ -758,8 +760,7 @@ msgid "Resource" msgstr "Resurssi" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Polku" @@ -816,9 +817,8 @@ msgid "Error loading:" msgstr "Virhe ladatessa:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "Skenen lataaminen epäonnistui puuttuvan riippuvuuden takia:" +msgstr "Lataaminen epäonnistui puuttuvien riippuvuuksien takia:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1225,8 +1225,7 @@ msgid "Node Name:" msgstr "Solmun nimi:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nimi" @@ -1304,7 +1303,6 @@ msgid "File Exists, Overwrite?" msgstr "Tiedosto on jo olemassa, korvaa?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Valitse tämä kansio" @@ -1313,13 +1311,11 @@ msgid "Copy Path" msgstr "Kopioi polku" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Avaa tiedostonhallinnassa" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" msgstr "Näytä tiedostonhallinnassa" @@ -1464,19 +1460,16 @@ msgid "Methods" msgstr "Metodit" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Metodit" +msgstr "Metodit:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Ominaisuudet" +msgstr "Teeman ominaisuudet" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Ominaisuudet:" +msgstr "Teeman ominaisuudet:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1503,14 +1496,12 @@ msgid "Constants:" msgstr "Vakiot:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Kuvaus" +msgstr "Luokan kuvaus" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Kuvaus:" +msgstr "Luokan kuvaus:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1527,14 +1518,12 @@ msgstr "" "sellaisen[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Ominaisuuden kuvaus:" +msgstr "Ominaisuuksien kuvaukset" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "Ominaisuuden kuvaus:" +msgstr "Ominaisuuksien kuvaukset:" #: editor/editor_help.cpp msgid "" @@ -1545,14 +1534,12 @@ msgstr "" "$color][url=$url]kirjoittamalla sellaisen[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Metodin kuvaus:" +msgstr "Metodien kuvaukset" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Metodin kuvaus:" +msgstr "Metodien kuvaukset:" #: editor/editor_help.cpp msgid "" @@ -1568,49 +1555,40 @@ msgid "Search Help" msgstr "Etsi ohjeesta" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Näytä normaali" +msgstr "Näytä kaikki" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Luokat" +msgstr "Vain luokat" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Metodit" +msgstr "Vain metodit" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Signaalit" +msgstr "Vain signaalit" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Vakiot" +msgstr "Vain vakiot" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Ominaisuudet" +msgstr "Vain ominaisuudet" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Ominaisuudet" +msgstr "Vain teeman ominaisuudet" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Jäsenet" +msgstr "Jäsenen tyyppi" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Luokka:" +msgstr "Luokka" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1709,6 +1687,15 @@ msgstr "Tätä toimintoa ei voi tehdä ilman että puun juuri on olemassa." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"Tätä skeneä ei voida tallentaa, koska ilmentymät on sisällytetty toisiinsa " +"syklisesti.\n" +"Ratkaise ensin se ja yritä sitten tallennusta uudelleen." + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1717,7 +1704,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Ei voida ylikirjoittaa vielä auki olevaa skeneä!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1970,12 +1957,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Virhe ladattaessa lisäosaa polusta: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"Virhe ladattaessa lisäosaa polusta: '%s'. Skripti ei ole työkalu-tilassa." +"Virhe ladattaessa lisäosaa polusta: '%s'. Koodissa vaikuttaa olevan virhe, " +"ole hyvä ja tarkista syntaksi." #: editor/editor_node.cpp msgid "" @@ -2026,7 +2013,6 @@ msgstr "Oletus" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" msgstr "Näytä tiedostojärjestelmässä" @@ -2111,7 +2097,6 @@ msgid "Save Scene" msgstr "Tallenna skene" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Tallenna kaikki skenet" @@ -2141,7 +2126,7 @@ msgid "Undo" msgstr "Peru" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Tee uudelleen" @@ -2165,7 +2150,7 @@ msgstr "Projektin asetukset" msgid "Export" msgstr "Vie" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Työkalut" @@ -2594,9 +2579,18 @@ msgstr "Aseta..." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Ei voida luoda ViewportTexture tietoa tiedostoon tallennetuille " +"resursseille.\n" +"Resurssin täytyy kuulua johonkin skeneen." #: editor/editor_properties.cpp msgid "" @@ -2605,13 +2599,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Ei voida luoda ViewportTexture tietoa tälle resurssille, koska sitä ei ole " +"asetettu paikalliseksi skeneen.\n" +"Ole hyvä ja vaihda 'local to scene' ominaisuus sille (ja kaikille sen " +"sisältäville resursseille aina solmuun saakka)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Valitse näyttöruutu" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Uusi skripti" @@ -2921,9 +2918,8 @@ msgstr "" "Välimuistia ei tallenneta!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Suosikit:" +msgstr "Suosikit" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3009,14 +3005,12 @@ msgid "Instance" msgstr "Luo ilmentymä" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Suosikit:" +msgstr "Lisää suosikkeihin" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Poista ryhmästä" +msgstr "Poista suosikeista" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3038,7 +3032,7 @@ msgstr "Kahdenna..." msgid "Move To..." msgstr "Siirrä..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Uusi skripti..." @@ -3047,14 +3041,12 @@ msgid "New Resource..." msgstr "Uusi resurssi..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" msgstr "Laajenna kaikki" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" -msgstr "Pienennä kaikki" +msgstr "Tiivistä kaikki" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3076,9 +3068,8 @@ msgid "Re-Scan Filesystem" msgstr "Skannaa tiedostojärjestelmä uudelleen" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "Aseta tila" +msgstr "Aseta jaettu tila" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3113,24 +3104,20 @@ msgid "Create Script" msgstr "Luo skripti" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "Etsi tiedostoista" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Etsi: " +msgstr "Etsi:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Kansio: " +msgstr "Kansio:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Suodattimet" +msgstr "Suodattimet:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3170,7 +3157,8 @@ msgid "Group name already exists." msgstr "Ryhmän nimi on jo olemassa." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "virheellinen ryhmän nimi." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3308,12 +3296,10 @@ msgid "Failed to load resource." msgstr "Resurssin lataaminen epäonnistui." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "Laajenna kaikki ominaisuudet" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "Tiivistä kaikki ominaisuudet" @@ -3419,14 +3405,13 @@ msgid "Activate now?" msgstr "Aktivoi nyt?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "Luo polygoni" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Muokkaa polygonia" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3434,25 +3419,27 @@ msgid "Insert Point" msgstr "Lisää piste" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Muokkaa polygonia (poista piste)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Poista polygoni ja piste" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Luo uusi polygoni tyhjästä" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Luo pisteitä." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Muokkaa polygonia:\n" "Vasen hiirenkorva: Siirrä pistettä.\n" @@ -3460,8 +3447,9 @@ msgstr "" "Oikea hiirenkorva: Poista piste." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Poista pisteitä" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Pyyhi pisteitä." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3509,15 +3497,6 @@ msgstr "Valitse ja siirrä pisteitä, luo pisteitä hiiren oikealla napilla." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Luo pisteitä." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Pyyhi pisteitä." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Piste" @@ -3598,7 +3577,6 @@ msgstr "" "nimien haku ei onnistu." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Lisää solmu..." @@ -4136,7 +4114,7 @@ msgstr "Kaikki" msgid "Plugins" msgstr "Liitännäiset" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Lajittele:" @@ -4267,9 +4245,8 @@ msgid "Resize CanvasItem" msgstr "Muokkaa CanvasItemin kokoa" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "Kierrä CanvasItemiä" +msgstr "Skaalaa CanvasItemiä" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4292,18 +4269,19 @@ msgid "Paste Pose" msgstr "Liitä asento" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Loitonna" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Palauta lähennys" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Lähennä" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Valitse tila" @@ -4334,9 +4312,8 @@ msgid "Rotate Mode" msgstr "Kääntötila" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Skaalaustila (R)" +msgstr "Skaalaustila" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4435,9 +4412,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "Palauttaa objektin aliobjektien mahdollisuuden tulla valituksi." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Luuranko" +msgstr "Luurangon asetukset" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4491,7 +4467,7 @@ msgstr "Näytä näyttöikkuna" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Näytä ryhmityksen ja lukituksen kuvakkeet" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4564,8 +4540,17 @@ msgstr "" "Vedä & pudota + Alt: Muuta solmun tyyppiä" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Luo Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Luo polygoni" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Muokkaa polygonia" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Muokkaa polygonia (poista piste)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4666,37 +4651,9 @@ msgid "Item List Editor" msgstr "Sisällön muokkaus" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Tälle solmulle ei ole OccluderPolygon2D resurssia.\n" -"Luodaanko ja asetetaanko sellainen?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Luo peittävä polygoni" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Luo uusi piste tyhjästä." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Muokkaa olemassaolevaa polygonia:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "VHP: Siirrä pistettä." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+Vasen hiirennappi: Puolita osa." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "OHP: Pyyhi piste." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh on tyhjä!" @@ -4934,9 +4891,8 @@ msgid "Create Navigation Polygon" msgstr "Luo navigointipolygoni" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "Kartoita näkyvä alue" +msgstr "Kartoitetaan näkyvää aluetta" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" @@ -5068,6 +5024,11 @@ msgid "Add Point to Curve" msgstr "Lisää käyrään piste" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Sulje käyrä" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Siirrä pistettä käyrällä" @@ -5095,6 +5056,11 @@ msgid "Click: Add Point" msgstr "Klikkaa: lisää piste" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Puolita osa (käyrässä)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Oikea klikkaus: Poista piste" @@ -5110,11 +5076,6 @@ msgstr "Lisää piste (tyhjyydessä)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Puolita osa (käyrässä)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Poista piste" @@ -5171,6 +5132,10 @@ msgstr "Poista lähtöohjaimen piste" msgid "Remove In-Control Point" msgstr "Poista tulo-ohjaimen piste" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Puolita osa (käyrässä)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "Siirrä liitosta" @@ -5181,10 +5146,17 @@ msgid "" msgstr "Polygon2D solmun luuominaisuus ei osoita Skeleton2D solmuun" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "Synkkaa luut" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Luo UV kartta" @@ -5221,10 +5193,21 @@ msgid "Transform UV Map" msgstr "Muunna UV kartta" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Muunnoksen tyyppi" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "Maalaa luiden painot" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Polygon 2D UV-editori" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Polygon 2D UV-editori" @@ -5245,11 +5228,8 @@ msgid "Bones" msgstr "Luut" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Luo polygoni" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "Siirrä pistettä" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5277,19 +5257,23 @@ msgid "Scale Polygon" msgstr "Skaalaa polygonia" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "Yhdistä kaksi pistettä luodaksesi jaon" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Valitse jako poistaaksesi sen" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "Maalaa painot tietyllä voimakkuudella" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "Poista painojen maalaus tietyllä voimakkuudella" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5415,9 +5399,8 @@ msgid "Error writing TextFile:" msgstr "Virhe kirjoitettaessa teksitiedostoa:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." -msgstr "Virhe - Ei voitu ladata tiedostoa." +msgstr "Virhe: ei voitu ladata tiedostoa." #: editor/plugins/script_editor_plugin.cpp msgid "Error could not load file." @@ -5428,19 +5411,23 @@ msgid "Error saving file!" msgstr "Virhe tallennettaessa tiedostoa!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Virhe tallennettaessa teemaa" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Virhe tallennettaessa" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Virhe tuotaessa teemaa" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Virhe tuonnissa" #: editor/plugins/script_editor_plugin.cpp @@ -5460,6 +5447,14 @@ msgid "Import Theme" msgstr "Tuo teema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Virhe tallennettaessa teemaa" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Virhe tallennettaessa" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Tallenna teema nimellä..." @@ -5500,8 +5495,9 @@ msgid "File" msgstr "Tiedosto" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Uusi tekstitiedosto" +#, fuzzy +msgid "Open..." +msgstr "Avaa" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5516,7 +5512,6 @@ msgid "Copy Script Path" msgstr "Kopioi skriptin polku" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Edellinen historiassa" @@ -5530,6 +5525,11 @@ msgid "Theme" msgstr "Teema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Tuo teema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Lataa teema uudelleen" @@ -5538,10 +5538,6 @@ msgid "Save Theme" msgstr "Tallenna teema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Tallenna teema nimellä" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Sulje dokumentaatio" @@ -5588,9 +5584,8 @@ msgid "Keep Debugger Open" msgstr "Pidä testaaja auki" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" -msgstr "Testaa ulkoisella editorilla" +msgstr "Debuggaa ulkoisella editorilla" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" @@ -5633,7 +5628,6 @@ msgid "Debugger" msgstr "Debuggeri" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" msgstr "Haun tulokset" @@ -5646,9 +5640,12 @@ msgid "(ignore)" msgstr "(sivuuta)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Mene funktioon..." +msgstr "Mene funktioon" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standardi" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5682,10 +5679,6 @@ msgstr "Isot alkukirjaimet" msgid "Syntax Highlighter" msgstr "Syntaksin korostaja" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standardi" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5737,12 +5730,10 @@ msgid "Trim Trailing Whitespace" msgstr "Poista välilyönnit lopusta" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "Muuta sisennys välilyönneiksi" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "Muuta sisennys sarkaimiksi" @@ -5753,38 +5744,33 @@ msgstr "Automaattinen sisennys" #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Toggle Breakpoint" -msgstr "Aseta tai poista breakpoint" +msgstr "Aseta tai poista keskeytyskohta" #: editor/plugins/script_text_editor.cpp msgid "Remove All Breakpoints" -msgstr "Poista kaikki breakpointit" +msgstr "Poista kaikki keskeytyskohdat" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" -msgstr "Mene seuraavaan breakpointiin" +msgstr "Mene seuraavaan keskeytyskohtaan" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "Mene edelliseen breakpointiin" +msgstr "Mene edelliseen keskeytyskohtaan" #: editor/plugins/script_text_editor.cpp msgid "Find Previous" msgstr "Etsi edellinen" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "Etsi tiedostoista..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Mene funktioon..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Mene riville..." @@ -5878,11 +5864,11 @@ msgstr "Animaatioavain lisätty." #: editor/plugins/spatial_editor_plugin.cpp msgid "Pitch" -msgstr "Sävelkorkeus" +msgstr "Nyökkäys (pitch)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Käännös (yaw)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6049,9 +6035,8 @@ msgid "Freelook Speed Modifier" msgstr "Liikkumisen nopeussäädin" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "Lukitse näkymän kierto" +msgstr "Näkymän kierto lukittu" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6385,12 +6370,18 @@ msgid "Set Region Rect" msgstr "Aseta alueen suorakulmio" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Aseta kahva" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Tarttumisen tila:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Ei mitään>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Ei mitään" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6553,9 +6544,8 @@ msgid "Fix Invalid Tiles" msgstr "Korjaa virheelliset ruudut" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Keskitä valintaan" +msgstr "Leikkaa valinta" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6602,39 +6592,37 @@ msgid "Pick Tile" msgstr "Poimi ruutu" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Siirrä valintaa" +msgstr "Kopioi valinta" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Kääntötila" +msgstr "Kierrä vasemmalle" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "Siirry oikealle" +msgstr "Kierrä oikealle" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Käännä vaakasuorasti" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Käännä pystysuorasti" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "Muunna" +msgstr "Tyhjennä muunnos" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Lisää tekstuurit ruutuvalikoimaan" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Poista nykyinen tekstuuri ruutuvalikoimasta" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6646,19 +6634,38 @@ msgid "Merge from Scene" msgstr "Yhdistä skenestä" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Valitse aliruutu, jota käytetään ikonina ja myös virheellisten " -"automaattiruudutusten ilmaisemiseen." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "Näytä ruutujen nimet (pidä Alt-näppäin pohjassa)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Liitä animaatio" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Pyyhi pisteitä." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Create a new polygon." +msgstr "Luo uusi piste tyhjästä." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Näytä ruutujen nimet (pidä Alt-näppäin pohjassa)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" msgstr "Poista valittu tekstuuri ja KAIKKI RUUDUT, jotka käyttävät sitä?" @@ -6675,9 +6682,8 @@ msgid "Merge from scene?" msgstr "Yhdistä skenestä?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " tiedostoa ei lisätty, koska ne ovat jo listalla." +msgstr "%s tiedostoa ei lisätty, koska ne olivat jo listalla." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6688,21 +6694,32 @@ msgstr "" "Napsauta toista ruutua muokataksesi sitä." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Poista valitut tiedostot?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"Hiiren vasen: aseta bitti päälle.\n" -"Hiiren oikea: aseta bitti pois päältä.\n" +"Valitse muokattavana oleva aliruutu.\n" "Napsauta toista ruutua muokataksesi sitä." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Poista pisteitä" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"Valitse muokattavana oleva aliruutu.\n" +"Hiiren vasen: aseta bitti päälle.\n" +"Hiiren oikea: aseta bitti pois päältä.\n" "Napsauta toista ruutua muokataksesi sitä." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6724,11 +6741,21 @@ msgstr "" "Napsauta toista ruutua muokataksesi sitä." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Valitse aliruutu muuttaaksesi sen tärkeyttä.\n" +"Napsauta toista ruutua muokataksesi sitä." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "Tätä ominaisuutta ei voi muuttaa." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Ruutuvalikoima" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6744,6 +6771,11 @@ msgid "Light" msgstr "Valo" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Lisää solmu..." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -6764,14 +6796,12 @@ msgid "Export templates for this platform are missing/corrupted:" msgstr "Vientimallit tälle alustalle puuttuvat tai ovat viallisia:" #: editor/project_export.cpp -#, fuzzy msgid "Release" -msgstr "juuri julkaistu" +msgstr "Julkaisuversio" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "Vie" +msgstr "Viedään kaikki" #: editor/project_export.cpp msgid "Presets" @@ -6783,8 +6813,8 @@ msgstr "Lisää..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "Vie projekti" +msgid "Export Path" +msgstr "Vientipolku:" #: editor/project_export.cpp msgid "Resources" @@ -6849,14 +6879,12 @@ msgid "Export PCK/Zip" msgstr "Vie PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Vientitila:" +msgstr "Vientitila?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "Vie" +msgstr "Vie kaikki" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7542,7 +7570,6 @@ msgid "Step" msgstr "Askel" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" msgstr "Lukumäärä, jolla laskuria kasvatetaan kullekin solmulle" @@ -7551,13 +7578,12 @@ msgid "Padding" msgstr "Täyte" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." msgstr "" "Pienin määrä numeromerkkejä laskurille.\n" -"Puuttuvat numermerkit täytetään edeltävillä nollilla." +"Puuttuvat numeromerkit täytetään edeltävillä nollilla." #: editor/rename_dialog.cpp msgid "Regular Expressions" @@ -7700,6 +7726,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"\"editable_instance\" ominaisuuden poistaminen käytöstä palauttaa kaikki " +"solmun ominaisuudet oletusarvoihin." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7774,9 +7802,8 @@ msgid "Clear Inheritance" msgstr "Poista perintä" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Avaa Godotin online-dokumentaatio" +msgstr "Avaa dokumentaatio" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7791,9 +7818,8 @@ msgid "Change Type" msgstr "Muuta tyyppiä" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Avaa skripti" +msgstr "Laajenna skriptiä" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -7956,9 +7982,8 @@ msgid "Path is empty" msgstr "Polku on tyhjä" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Sprite on tyhjä!" +msgstr "Tiedostonimi on tyhjä" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8049,9 +8074,8 @@ msgid "Bytes:" msgstr "Tavu(j)a:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "Pinokehykset" +msgstr "Pinojäljitys" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8278,7 +8302,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "askeleen argumentti on nolla!" #: modules/gdscript/gdscript_functions.cpp @@ -8503,7 +8528,7 @@ msgstr "Sisemmän poikkeuksen kutsupinon loppu" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "Kehitä NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8889,12 +8914,11 @@ msgstr "Hae VisualScriptistä" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Hae %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Set " +msgstr "Aseta %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -8992,6 +9016,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"CPUParticles2D animaatio edellyttää CanvasItemMaterial käyttöä niin että " +"\"Particles Animation\" on kytketty päälle." #: scene/2d/light_2d.cpp msgid "" @@ -9049,6 +9075,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Particles2D animaatio edellyttää CanvasItemMaterial käyttöä niin että " +"\"Particles Animation\" on kytketty päälle." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9194,17 +9222,16 @@ msgstr "" "luo sille muotoresurssi!" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "" -"Mitään ei näy, koska mesheille ei ole asetettu piirtopyyhkäisyjä (draw " -"passes)." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Mitään ei näy, koska meshiä ei ole asetettu." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"CPUParticles animaatio edellyttää SpatialMaterial käyttöä niin että " +"\"Billboard Particles\" on kytketty päälle." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9236,22 +9263,26 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"Particles animaatio edellyttää SpatialMaterial käyttöä niin että \"Billboard " +"Particles\" on kytketty päälle." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "" -"PathFollow2D toimii ainoastaan ollessaan asetettuna Path2D solmun alle." +msgstr "PathFollow toimii ainoastaan ollessaan asetettuna Path solmun alle." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" -"PathFollow2D toimii ainoastaan ollessaan asetettuna Path2D solmun alle." +"OrientedPathFollow toimii ainoastaan ollessaan asetettuna Path solmun alle." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" +"OrientedPathFollow edellyttää, että sen Path isäntäsolmulle on asetettu ylös-" +"vektorit." #: scene/3d/physics_body.cpp msgid "" @@ -9292,7 +9323,6 @@ msgid "This body will be ignored until you set a mesh" msgstr "Tämä kappale sivuutetaan, kunnes asetat meshin" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" @@ -9354,6 +9384,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "AnimationPlayer juuri ei ole kelvollinen solmu." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raakatila" @@ -9370,6 +9404,10 @@ msgstr "Huomio!" msgid "Please Confirm..." msgstr "Ole hyvä ja vahvista..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9382,7 +9420,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Jos exp_edit on tosi, min_value täytyy olla > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9438,10 +9476,6 @@ msgstr "Virheellinen fonttikoko." msgid "Input" msgstr "Syöte" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Ei mitään" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Virheellinen lähde sävyttimelle." @@ -9458,6 +9492,59 @@ msgstr "Sijoitus uniformille." msgid "Varyings can only be assigned in vertex function." msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." +#~ msgid "Create Poly" +#~ msgstr "Luo polygoni" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Luo uusi polygoni tyhjästä" + +#~ msgid "Zoom out" +#~ msgstr "Loitonna" + +#~ msgid "Zoom in" +#~ msgstr "Lähennä" + +#~ msgid "Create Poly3D" +#~ msgstr "Luo Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Tälle solmulle ei ole OccluderPolygon2D resurssia.\n" +#~ "Luodaanko ja asetetaanko sellainen?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Muokkaa olemassaolevaa polygonia:" + +#~ msgid "LMB: Move Point." +#~ msgstr "VHP: Siirrä pistettä." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+Vasen hiirennappi: Puolita osa." + +#~ msgid "RMB: Erase Point." +#~ msgstr "OHP: Pyyhi piste." + +#~ msgid "New TextFile" +#~ msgstr "Uusi tekstitiedosto" + +#~ msgid "Save Theme As" +#~ msgstr "Tallenna teema nimellä" + +#~ msgid "<None>" +#~ msgstr "<Ei mitään>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Valitse aliruutu, jota käytetään ikonina ja myös virheellisten " +#~ "automaattiruudutusten ilmaisemiseen." + +#~ msgid "Zoom:" +#~ msgstr "Lähennä:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Oletko varma, että haluat poistaa kaikki yhteydet kohteesta \"" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index e62b20139a..7ecd4d48ea 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -50,11 +50,13 @@ # Florent Wijanto <f_wijanto@hotmail.com>, 2018. # Olivier gareau <olivier.gareau@protonmail.com>, 2018. # Rémi Verschelde <akien@godotengine.org>, 2018. +# Rémi Bintein <reminus5@hotmail.fr>, 2018. +# Sylvain Corsini <sylvain.corsini@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-11-26 16:07+0000\n" +"PO-Revision-Date: 2018-12-13 14:31+0100\n" "Last-Translator: Rémi Verschelde <akien@godotengine.org>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" @@ -63,7 +65,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.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -297,7 +299,6 @@ msgstr "Créer %d NOUVELLES pistes et insérer des clés ?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -379,7 +380,7 @@ msgstr "Anim Déplacer Clés" #: editor/animation_track_editor.cpp msgid "Clipboard is empty" -msgstr "Le presse-papiers est vide !" +msgstr "Le presse-papiers est vide" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" @@ -452,12 +453,10 @@ msgid "Delete Selection" msgstr "Supprimer la sélection" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "Aller à l'étape suivante" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "Aller à l'étape précédente" @@ -581,15 +580,19 @@ msgstr "Remplacer tout" msgid "Selection Only" msgstr "Sélection uniquement" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoomer" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Dézoomer" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Réinitialiser le zoom" @@ -598,8 +601,8 @@ msgid "Warnings:" msgstr "Avertissements :" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Agrandissement (%) :" +msgid "Font Size:" +msgstr "Taille de police :" #: editor/code_editor.cpp msgid "Line:" @@ -712,7 +715,6 @@ msgid "Edit Connection: " msgstr "Modifier les connexions : " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "Voulez-vous vraiment supprimer toutes les connexions de ce signal ?" @@ -734,7 +736,7 @@ msgstr "Édition..." #: editor/connections_dialog.cpp msgid "Go To Method" -msgstr "Aller à la méthode :" +msgstr "Aller à la méthode" #: editor/create_dialog.cpp msgid "Change %s Type" @@ -759,8 +761,8 @@ msgid "Recent:" msgstr "Récents :" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Rechercher :" @@ -811,8 +813,7 @@ msgid "Resource" msgstr "Ressource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Chemin" @@ -870,7 +871,6 @@ msgid "Error loading:" msgstr "Erreur au chargement :" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" msgstr "La scène n'a pas pu être chargée à cause de dépendances manquantes :" @@ -1279,8 +1279,7 @@ msgid "Node Name:" msgstr "Nom de nÅ“ud :" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nom" @@ -1306,7 +1305,7 @@ msgstr "[vide]" #: editor/editor_data.cpp msgid "[unsaved]" -msgstr "(Non sauvegardé)" +msgstr "[non enregistré]" #: editor/editor_dir_dialog.cpp msgid "Please select a base directory first" @@ -1358,7 +1357,6 @@ msgid "File Exists, Overwrite?" msgstr "Le fichier existe, l'écraser ?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Sélectionner ce dossier" @@ -1367,13 +1365,11 @@ msgid "Copy Path" msgstr "Copier le chemin" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Ouvrir dans le gestionnaire de fichiers" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" msgstr "Montrer dans le gestionnaire de fichiers" @@ -1515,22 +1511,19 @@ msgstr "Propriétés :" #: editor/editor_help.cpp msgid "Methods" -msgstr "Méthodes :" +msgstr "Méthodes" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" msgstr "Méthodes :" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Propriétés" +msgstr "Propriétés du thème" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Propriétés :" +msgstr "Propriétés du thème :" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1557,14 +1550,12 @@ msgid "Constants:" msgstr "Constantes :" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Description" +msgstr "Description de la classe" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Description :" +msgstr "Description de la classe :" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1581,12 +1572,10 @@ msgstr "" "demander un[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Description des propriétés :" +msgstr "Description des propriétés" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" msgstr "Description des propriétés :" @@ -1599,14 +1588,12 @@ msgstr "" "[color=$color][url=$url]en créant[/url][/color] une !" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Description de la méthode :" +msgstr "Descriptions des méthodes" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Description de la méthode :" +msgstr "Descriptions des méthode :" #: editor/editor_help.cpp msgid "" @@ -1622,49 +1609,40 @@ msgid "Search Help" msgstr "Chercher dans l'aide" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Affichage normal" +msgstr "Tout afficher" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Classes" +msgstr "Classes seulement" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Méthodes :" +msgstr "Méthodes seulement" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Signaux" +msgstr "Signaux seulement" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Constantes" +msgstr "Constantes seulement" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Propriétés" +msgstr "Propriétés seulement" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Propriétés" +msgstr "Propriétés du thème seulement" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Membres" +msgstr "Type de membre" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Classe :" +msgstr "Classe" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1763,6 +1741,15 @@ msgstr "Cette opération ne peut être réalisée sans une arborescence racine." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"Cette scène ne peut pas être enregistrée du fait d'une dépendance circulaire " +"à l'instanciation.\n" +"L'enregistrement ne sera possible qu'une fois ce problème résolu." + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1771,7 +1758,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Impossible de ré-écrire une scène encore ouverte !" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -2040,13 +2027,12 @@ msgstr "" "Impossible de charger le script de l’extension depuis le chemin : '%s'." #: editor/editor_node.cpp -#, fuzzy 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' Le " -"script n'est pas en mode outil." +"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 msgid "" @@ -2102,7 +2088,6 @@ msgstr "Par défaut" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" msgstr "Montrer dans le système de fichiers" @@ -2187,7 +2172,6 @@ msgid "Save Scene" msgstr "Enregistrer la scène" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Enregistrer toutes les scènes" @@ -2217,7 +2201,7 @@ msgid "Undo" msgstr "Annuler" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Refaire" @@ -2241,7 +2225,7 @@ msgstr "Paramètres du projet" msgid "Export" msgstr "Exporter" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Outils" @@ -2613,7 +2597,7 @@ msgstr "Mesure :" #: editor/editor_profiler.cpp msgid "Frame Time (sec)" -msgstr "Temps image (en seconde)" +msgstr "Temps par trame (seconde)" #: editor/editor_profiler.cpp msgid "Average Time (sec)" @@ -2621,11 +2605,11 @@ msgstr "Temps moyen (seconde)" #: editor/editor_profiler.cpp msgid "Frame %" -msgstr "% d'image" +msgstr "Trame %" #: editor/editor_profiler.cpp msgid "Physics Frame %" -msgstr "Frame physique %" +msgstr "Trame physique %" #: editor/editor_profiler.cpp msgid "Time:" @@ -2641,7 +2625,7 @@ msgstr "Self" #: editor/editor_profiler.cpp msgid "Frame #:" -msgstr "Frame # :" +msgstr "Trame # :" #: editor/editor_profiler.cpp msgid "Time" @@ -2673,9 +2657,20 @@ msgstr "Assigner..." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" +"La ressource sélectionnée (%s) ne correspond pas au type attendu pour cette " +"propriété (%s)." + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Impossible de créer un ViewportTexture sur des ressources enregistrées comme " +"fichier.\n" +"La ressource a besoin d'appartenir à une scène." #: editor/editor_properties.cpp msgid "" @@ -2684,13 +2679,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Impossible de créer un ViewportTexture sur cette ressource car elle n'est " +"pas définie comme locale à la scène.\n" +"Merci de changer la propriété \"Local To Scene\" de cette ressource (et des " +"ressources intermédiaires la contenant, jusqu'au nÅ“ud qui l'utilise)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Choisissez un Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Nouveau script" @@ -2971,7 +2969,7 @@ msgstr "Versions installées :" #: editor/export_template_manager.cpp msgid "Install From File" -msgstr "Installer depuis fichier :" +msgstr "Installer depuis fichier" #: editor/export_template_manager.cpp msgid "Remove Template" @@ -3002,9 +3000,8 @@ msgstr "" "sera pas sauvé !" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Favoris :" +msgstr "Favoris" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3091,14 +3088,12 @@ msgid "Instance" msgstr "Instance" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Favoris :" +msgstr "Ajouter aux favoris" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Supprimer du groupe" +msgstr "Supprimer des favoris" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3120,7 +3115,7 @@ msgstr "Dupliquer…" msgid "Move To..." msgstr "Déplacer vers…" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Nouveau Script..." @@ -3129,12 +3124,10 @@ msgid "New Resource..." msgstr "Nouvelle Ressource…" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" msgstr "Développer tout" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" msgstr "Réduire tout" @@ -3158,9 +3151,8 @@ msgid "Re-Scan Filesystem" msgstr "Analyser à nouveau le système de fichiers" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "Basculer le mode" +msgstr "Activer/désactiver le mode scindé" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3198,24 +3190,20 @@ msgid "Create Script" msgstr "Créer un script" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "Trouver dans les fichiers" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Trouver : " +msgstr "Trouver :" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Dossier : " +msgstr "Dossier :" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Filtres" +msgstr "Filtres :" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3255,7 +3243,7 @@ msgid "Group name already exists." msgstr "Le nom du groupe existe déjà ." #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Nom de groupe invalide." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3264,11 +3252,11 @@ msgstr "Groupes" #: editor/groups_editor.cpp msgid "Nodes not in Group" -msgstr "Noeuds non groupés" +msgstr "NÅ“uds non groupés" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp msgid "Filter nodes" -msgstr "Filtrer les noeuds" +msgstr "Filtrer les nÅ“uds" #: editor/groups_editor.cpp msgid "Nodes in Group" @@ -3337,7 +3325,7 @@ msgstr "Importation de la scène…" #: editor/import/resource_importer_scene.cpp msgid "Generating Lightmaps" -msgstr "Génération des lightmaps :" +msgstr "Génération des lightmaps" #: editor/import/resource_importer_scene.cpp msgid "Generating for Mesh: " @@ -3393,12 +3381,10 @@ msgid "Failed to load resource." msgstr "Impossible de charger la ressource." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "Développer toutes les propriétés" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "Réduire toutes les propriétés" @@ -3504,49 +3490,46 @@ msgid "Activate now?" msgstr "Activer maintenant ?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "Créer un polygone" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +msgid "Edit Polygon" msgstr "Modifier le polygone" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" -msgstr "Point d'insertion" +msgstr "Insérer un point" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "Modifier le polygone (supprimer un point)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "Retirer Polygone et Point" +msgid "Remove Polygon And Point" +msgstr "Supprimer le polygone et le point" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Créer un nouveau polygone à partir de rien" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Créer des points." #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" -"Editer polygones existants :\n" -"Bouton gauche : Déplacer point\n" -"Ctrl+Bouton gauche : Diviser section.\n" -"Bouton droit: Effeacer point." +"Éditer les points.\n" +"Bouton gauche : Déplacer le point\n" +"Bouton droit : Effacer le point" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Supprimer les points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Effacer des points." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3561,7 +3544,7 @@ msgstr "Ajouter une animation" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "Load.." -msgstr "Chargement..." +msgstr "Charger..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3592,17 +3575,7 @@ msgstr "Définir la position de mélange dans l'espace" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Select and move points, create points with RMB." msgstr "" -"Sélectionner et déplacer les points, créer des points avec le bouton droit " -"de la souris." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Créer des points." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Effacer des points." +"Sélectionner et déplacer les points, créer des points avec un clic droit." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3622,7 +3595,7 @@ msgstr "Le triangle existe déjà " #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "BlendSpace2D does not belong to an AnimationTree node." -msgstr "BlendSpace2D n'appartient pas à un noeud AnimationTree." +msgstr "BlendSpace2D n'appartient pas à un nÅ“ud AnimationTree." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "No triangles exist, so no blending can take place." @@ -3690,7 +3663,6 @@ msgstr "" "impossible de récupérer les noms des pistes." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Ajouter un nÅ“ud..." @@ -3784,7 +3756,7 @@ msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from end. (Shift+A)" -msgstr "Lire l'animation sélectionnée à rebours depuis la fin. (Maj + A)" +msgstr "Lire l'animation sélectionnée à rebours depuis la fin. (Maj+A)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Stop animation playback. (S)" @@ -3792,7 +3764,7 @@ msgstr "Arrêter la lecture de l'animation. (S)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from start. (Shift+D)" -msgstr "Lire l'animation sélectionnée depuis le début. (Maj + D)" +msgstr "Lire l'animation sélectionnée depuis le début. (Maj+D)" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation from current pos. (D)" @@ -3951,8 +3923,8 @@ msgid "" "Shift+LMB to create connections." msgstr "" "Sélectionnez et déplacez les nÅ“uds.\n" -"Bouton droit pour ajouter de nouveaux nÅ“uds\n" -"Majuscule+Bouton gauche pour créer des connexions." +"Bouton droit pour ajouter de nouveaux nÅ“uds.\n" +"Maj+Bouton gauche pour créer des connexions." #: editor/plugins/animation_state_machine_editor.cpp msgid "Create new nodes." @@ -4229,7 +4201,7 @@ msgstr "Tout" msgid "Plugins" msgstr "Extensions" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Trier :" @@ -4289,7 +4261,7 @@ msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Bake Lightmaps" -msgstr "Précalculer les lightmaps :" +msgstr "Précalculer les lightmaps" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp @@ -4334,7 +4306,7 @@ msgstr "Déplacer le guide horizontal" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Create new horizontal guide" -msgstr "créer un nouveau guide horizontal" +msgstr "Créer un nouveau guide horizontal" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Remove horizontal guide" @@ -4361,9 +4333,8 @@ msgid "Resize CanvasItem" msgstr "Redimensionner l'élément de canevas" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "Pivoter l'élément de canevas" +msgstr "Mise à l'échelle de CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4386,18 +4357,20 @@ msgid "Paste Pose" msgstr "Coller la pose" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Éloigner" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" +"Avertissement : la position et la taille des nÅ“uds enfants d'un conteneur " +"sont strictement déterminées par leur parent." #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "Réinitialiser le facteur d'agrandissement" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Rapprocher" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Sélectionner le mode" @@ -4407,7 +4380,7 @@ msgstr "Glisser : tourner" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+Drag: Move" -msgstr "Alt + Glisser : déplacer" +msgstr "Alt+Glisser : déplacer" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." @@ -4417,7 +4390,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Alt+RMB: Depth list selection" -msgstr "Alt + Bouton droit : sélection détaillée par liste" +msgstr "Alt+Bouton droit : Sélection détaillée par liste" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move Mode" @@ -4428,9 +4401,8 @@ msgid "Rotate Mode" msgstr "Mode rotation" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Mode de mise à l'échelle (R)" +msgstr "Mode de mise à l'échelle" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4439,7 +4411,7 @@ msgid "" "(same as Alt+RMB in select mode)." msgstr "" "Afficher une liste de tous les objets à la position cliquée\n" -"(identique à Alt+Clic droit en mode sélection)." +"(identique à Alt+Bouton droit en mode sélection)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Click to change object's rotation pivot." @@ -4529,9 +4501,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "Rendre la sélection des enfants de l'objet de nouveau possible." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Squelette" +msgstr "Configuration du squelette" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4585,7 +4556,7 @@ msgstr "Montrer La fenêtre d'affichage" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Montrer le groupe et verrouiller les icônes" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4658,8 +4629,16 @@ msgstr "" "Glisser-déposer + Alt : Modifier le type de nÅ“ud" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Créer un Poly3D" +msgid "Create Polygon3D" +msgstr "Créer un Polygon3D" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Modifier le polygone" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Modifier le polygone (supprimer un point)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4760,36 +4739,9 @@ msgid "Item List Editor" msgstr "Éditeur de listes d'objets" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Aucune ressource OccluderPolygon2D sur ce nÅ“ud. En créer et en attribuer un ?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Créer un polygone occulteur" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Créer un nouveau polygone à partir de rien." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Modifier un polygone existant :" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "Bouton gauche : déplacer un point." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Contrôle + Bouton gauche : séparer le segment." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "Bouton droit : effacer un point." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Le maillage est vide !" @@ -5031,9 +4983,8 @@ msgid "Create Navigation Polygon" msgstr "Créer Polygone de Navigation" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "Générer Rect de Visibilité" +msgstr "Génération du rectangle de visibilité" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" @@ -5165,6 +5116,10 @@ msgid "Add Point to Curve" msgstr "Ajouter un point à la courbe" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "Scinder la courbe" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Déplacer le point dans la courbe" @@ -5184,7 +5139,7 @@ msgstr "Sélectionner des points" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Shift+Drag: Select Control Points" -msgstr "Maj. + Glisser : sélectionner des points de contrôle" +msgstr "Maj+Glisser : sélectionner des points de contrôle" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp @@ -5192,13 +5147,17 @@ msgid "Click: Add Point" msgstr "Clic : ajouter un point" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "Clic gauche : Diviser le segment (en courbe)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" -msgstr "Clic droit : supprimer un point" +msgstr "Clic droit : Supprimer un point" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Select Control Points (Shift+Drag)" -msgstr "Sélectionner les points de contrôle (Maj. + glisser)" +msgstr "Sélectionner les points de contrôle (Maj+Glisser)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp @@ -5207,11 +5166,6 @@ msgstr "Ajouter un point (dans un espace vide)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Diviser le segment (en courbe)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Supprimer le point" @@ -5268,6 +5222,10 @@ msgstr "Supprimer point Out-Control" msgid "Remove In-Control Point" msgstr "Supprimer point In-Control" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Diviser le segment (en courbe)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "Déplacer la jointure" @@ -5276,13 +5234,21 @@ msgstr "Déplacer la jointure" msgid "" "The skeleton property of the Polygon2D does not point to a Skeleton2D node" msgstr "" -"La propriété squelette du Polygon2D ne pointe pas vers un noeud Skeleton2D" +"La propriété squelette du Polygon2D ne pointe pas vers un nÅ“ud Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" msgstr "Synchroniser les os" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" +"Pas de texture dans ce polygone.\n" +"Sélectionnez une texture pour pouvoir éditer les UV." + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Créer une carte UV" @@ -5319,8 +5285,16 @@ msgid "Transform UV Map" msgstr "Transformer la carte UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" -msgstr "Poids de la peinture de l'os" +msgid "Transform Polygon" +msgstr "Transformer le polygon" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "Peindre les poids de l'os" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." +msgstr "Ouvrir l'éditeur d'UV de polygones 2D." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" @@ -5343,24 +5317,20 @@ msgid "Bones" msgstr "Os" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Créer un polygone" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "Déplacer le point" +msgid "Move Points" +msgstr "Déplacer de points" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" -msgstr "Contrôle: Tourner" +msgstr "Contrôle : Tourner" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" -msgstr "Maj. : Tout déplacer" +msgstr "Maj : Tout déplacer" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift+Ctrl: Scale" -msgstr "Maj.+Contrôle : Mettre à l'échelle" +msgstr "Maj+Contrôle : Mettre à l'échelle" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Move Polygon" @@ -5375,20 +5345,20 @@ msgid "Scale Polygon" msgstr "Mettre à l'échelle le polygone" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" -msgstr "Relier deux points pour faire une scission" +msgid "Connect two points to make a split." +msgstr "Relier deux points pour faire un fractionnement." #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" -msgstr "Sélectionnez un fractionnement à effacer" +msgid "Select a split to erase it." +msgstr "Sélectionnez un fractionnement à effacer." #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" -msgstr "Poids de la peinture avec intensité spécifiée" +msgid "Paint weights with specified intensity." +msgstr "Appliquer les poids avec l'intensité spécifiée." #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" -msgstr "Poids non peints avec intensité spécifiée" +msgid "Unpaint weights with specified intensity." +msgstr "Retirer les poids avec l'intensité spécifiée." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Radius:" @@ -5513,7 +5483,6 @@ msgid "Error writing TextFile:" msgstr "Erreur lors de l'écriture du fichier texte :" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." msgstr "Erreur de chargement de fichier." @@ -5526,19 +5495,19 @@ msgid "Error saving file!" msgstr "Erreur lors de l'enregistrement du fichier !" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "Erreur d'enregistrement du thème" +msgid "Error while saving theme." +msgstr "Erreur d'enregistrement du thème." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "Erreur d'enregistrement" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "Erreur d'importation du thème" +msgid "Error importing theme." +msgstr "Erreur d'importation du thème." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "Erreur d'importation" #: editor/plugins/script_editor_plugin.cpp @@ -5558,6 +5527,14 @@ msgid "Import Theme" msgstr "Importer un thème" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Erreur d'enregistrement du thème" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Erreur d'enregistrement" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Enregistrer le thème sous…" @@ -5598,8 +5575,8 @@ msgid "File" msgstr "Fichier" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Nouveau fichier texte" +msgid "Open..." +msgstr "Ouvrir..." #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5614,7 +5591,6 @@ msgid "Copy Script Path" msgstr "Copier le chemin du script" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Précédent dans l'historique" @@ -5628,6 +5604,10 @@ msgid "Theme" msgstr "Thème" #: editor/plugins/script_editor_plugin.cpp +msgid "Import Theme..." +msgstr "Importer un thème..." + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Recharger le thème" @@ -5636,10 +5616,6 @@ msgid "Save Theme" msgstr "Enregistrer le thème" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Enregistrer le thème sous" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Fermer les documentations" @@ -5686,7 +5662,6 @@ msgid "Keep Debugger Open" msgstr "Garder le débogueur ouvert" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" msgstr "Déboguer avec un éditeur externe" @@ -5731,7 +5706,6 @@ msgid "Debugger" msgstr "Débogueur" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" msgstr "Résultats de recherche" @@ -5744,9 +5718,12 @@ msgid "(ignore)" msgstr "(ignorer)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Aller à la fonction…" +msgstr "Aller à la fonction" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standard" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5780,10 +5757,6 @@ msgstr "Capitaliser" msgid "Syntax Highlighter" msgstr "Surligneur de syntaxe" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standard" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5835,12 +5808,10 @@ msgid "Trim Trailing Whitespace" msgstr "Supprimer les espaces de fin de ligne" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "Convertir indentations en espaces" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "Convertir les indentations en tabulations" @@ -5858,12 +5829,10 @@ msgid "Remove All Breakpoints" msgstr "Supprimer tous les points d'arrêt" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "Aller au point d'arrêt suivant" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" msgstr "Aller au point d'arrêt précédent" @@ -5872,17 +5841,14 @@ msgid "Find Previous" msgstr "Trouver le précédent" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "Trouver dans les fichiers..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Aller à la fonction…" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Aller à la ligne…" @@ -5976,11 +5942,11 @@ msgstr "Clé d'animation insérée." #: editor/plugins/spatial_editor_plugin.cpp msgid "Pitch" -msgstr "Hauteur" +msgstr "Tangage (latéral)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Lacet (hauteur)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6149,7 +6115,6 @@ msgid "Freelook Speed Modifier" msgstr "Modificateur de vitesse de la vue libre" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" msgstr "Verrouiller la rotation de la vue" @@ -6168,8 +6133,8 @@ msgid "" "Alt+RMB: Depth list selection" msgstr "" "Glisser : Rotation\n" -"ALt+glisser : Déplacer\n" -"Alt + Bouton droit : sélection détaillée par liste" +"ALt+Glisser : Déplacer\n" +"Alt+Bouton droit : Sélection détaillée par liste" #: editor/plugins/spatial_editor_plugin.cpp msgid "Move Mode (W)" @@ -6487,12 +6452,17 @@ msgid "Set Region Rect" msgstr "Définir région rectangulaire" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "Définir la marge" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Mode d'aimantation :" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Aucun>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Aucun" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6655,9 +6625,8 @@ msgid "Fix Invalid Tiles" msgstr "Résoudre les tuiles invalides" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Centrer sur la sélection" +msgstr "Couper la sélection" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6704,40 +6673,36 @@ msgid "Pick Tile" msgstr "Sélectionner une case" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Déplacer la sélection" +msgstr "Copier la sélection" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Mode rotation" +msgstr "Rotation à gauche" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "Aller à droite" +msgstr "Rotation à droite" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Retourner horizontalement" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Retourner verticalement" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "Transformation" +msgstr "Supprimer la transformation" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" -msgstr "Ajouter texture(s) au TileSet" +msgid "Add Texture(s) to TileSet." +msgstr "Ajouter des textures au TileSet." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "Supprimer la texture courante du TileSet" +msgid "Remove selected Texture from TileSet." +msgstr "Supprimer la texture sélectionnée du TileSet." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6748,19 +6713,35 @@ msgid "Merge from Scene" msgstr "Fusionner depuis la scène" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "Copier le masque de bit." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "Coller le masque de bit." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "Effacer le masque de bit." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." +msgstr "Créer un nouveau polygone." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "Circonscrire le polygone dans le Rect de région." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" -"Sélectionner une sous-tuile à utiliser comme icône, celle-ci sera aussi " -"utilisée pour les liaisons de tuiles automatiques invalides." +"Activer l'aimantation et afficher la grille (paramétrable via l'Inspecteur)." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "Afficher les noms des tuiles (maintenez la touche Alt enfoncée)" +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Afficher les noms des tuiles (maintenez Alt enfoncé)" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Remove selected texture and ALL TILES which use it?" msgstr "" "Supprimer la texture sélectionnée et TOUTES LES TUILES qui l'utilisent ?" @@ -6778,9 +6759,8 @@ msgid "Merge from scene?" msgstr "Fusionner depuis la scène ?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " fichier(s) non ajouté(s) car déjà sur la liste." +msgstr "%s fichier(s) non ajouté(s) car déjà sur la liste." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6791,21 +6771,29 @@ msgstr "" "Cliquez sur une autre tuile pour la modifier." #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete selected Rect." +msgstr "Supprimer le Rect sélectionné." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"Bouton-gauche : Activer le bit\n" -"Bouton-droit : Désactiver le bit\n" +"Sélectionner la sous-tuile en cours d'édition.\n" "Cliquer sur une autre tuile pour l'éditer." #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete polygon." +msgstr "Supprimer le polygone." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"Sélectionner la sous-tuile en cours d'édition.\n" +"Bouton gauche : Activer le bit.\n" +"Bouton droit : Désactiver le bit.\n" "Cliquer sur une autre tuile pour l'éditer." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6827,12 +6815,20 @@ msgstr "" "Cliquer sur une autre tuile pour l'éditer." #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Sélectionner une sous-tuile pour changer son index Z.\n" +"Cliquer sur une autre tuile pour l'éditer." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "Cette propriété ne peut être changée." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" -msgstr "Jeu de tuiles" +msgid "TileSet" +msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" @@ -6847,6 +6843,10 @@ msgid "Light" msgstr "Lumière" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "Ajouter un nÅ“ud..." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -6867,14 +6867,12 @@ msgid "Export templates for this platform are missing/corrupted:" msgstr "Modèles d'exportation manquants ou corrompus pour cette plateforme :" #: editor/project_export.cpp -#, fuzzy msgid "Release" -msgstr "vient d'être relâché" +msgstr "Publication (release)" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "Exportation pour %s" +msgstr "Tout exporter" #: editor/project_export.cpp msgid "Presets" @@ -6885,9 +6883,8 @@ msgid "Add..." msgstr "Ajouter…" #: editor/project_export.cpp -#, fuzzy -msgid "Export Path:" -msgstr "Pré-réglage d'exportation :" +msgid "Export Path" +msgstr "Chemin d'exportation" #: editor/project_export.cpp msgid "Resources" @@ -6952,14 +6949,12 @@ msgid "Export PCK/Zip" msgstr "Exporter le PCK/ZIP" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Mode d'exportation :" +msgstr "Mode Exportation?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "Exporter" +msgstr "Tout exporter" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7263,7 +7258,7 @@ msgstr "Bouton gauche" #: editor/project_settings_editor.cpp msgid "Right Button" -msgstr "Bouton droite" +msgstr "Bouton droit" #: editor/project_settings_editor.cpp msgid "Middle Button" @@ -7279,11 +7274,11 @@ msgstr "Molette vers le bas" #: editor/project_settings_editor.cpp msgid "Wheel Left Button" -msgstr "Molette Bouton Gauche" +msgstr "Molette bouton gauche" #: editor/project_settings_editor.cpp msgid "Wheel Right Button" -msgstr "Molette Bouton droit" +msgstr "Molette bouton droit" #: editor/project_settings_editor.cpp msgid "X Button 1" @@ -7495,7 +7490,7 @@ msgstr "Localisation" #: editor/project_settings_editor.cpp msgid "Locales Filter" -msgstr "Filtre de langues :" +msgstr "Filtre de langues" #: editor/project_settings_editor.cpp msgid "Show all locales" @@ -7596,7 +7591,7 @@ msgstr "Préfixe" #: editor/rename_dialog.cpp msgid "Suffix" -msgstr "suffixe" +msgstr "Suffixe" #: editor/rename_dialog.cpp msgid "Advanced options" @@ -7651,7 +7646,6 @@ msgid "Step" msgstr "Pas" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" msgstr "Valeur par laquelle le compteur est incrémenté pour chaque nÅ“ud" @@ -7660,7 +7654,6 @@ msgid "Padding" msgstr "Remplissage" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." @@ -7794,7 +7787,7 @@ msgstr "Supprimer le(s) nÅ“ud(s) ?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." -msgstr "Ne peut fonctionner avec le noeud racine." +msgstr "Ne peut fonctionner avec le nÅ“ud racine." #: editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." @@ -7809,6 +7802,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"Désactiver \"editable_instance\" implique la remise à zéro de toutes les " +"propriétés du nÅ“ud." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7876,16 +7871,15 @@ msgstr "Erreur de duplication de la scène afin de l'enregistrer." #: editor/scene_tree_dock.cpp msgid "Sub-Resources" -msgstr "Ressources secondaires :" +msgstr "Ressources secondaires" #: editor/scene_tree_dock.cpp msgid "Clear Inheritance" msgstr "Effacer l'héritage" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Ouvrir la documentation Godot en ligne" +msgstr "Ouvrir la documentation" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7900,9 +7894,8 @@ msgid "Change Type" msgstr "Changer le type" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Ouvrir un script" +msgstr "Hériter d'un script" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -7918,7 +7911,7 @@ msgstr "Sauvegarder la branche comme scène" #: editor/scene_tree_dock.cpp msgid "Copy Node Path" -msgstr "Copier le chemin du noeud" +msgstr "Copier le chemin du nÅ“ud" #: editor/scene_tree_dock.cpp msgid "Delete (No Confirm)" @@ -7963,14 +7956,14 @@ msgstr "Rendre visible" #: editor/scene_tree_editor.cpp msgid "Node configuration warning:" -msgstr "Avertissement de configuration de noeud :" +msgstr "Avertissement de configuration de nÅ“ud :" #: editor/scene_tree_editor.cpp msgid "" "Node has connection(s) and group(s).\n" "Click to show signals dock." msgstr "" -"Le noeud possède une (des) connection(s) et un (des) groupe(s)\n" +"Le nÅ“ud possède une (des) connection(s) et un (des) groupe(s)\n" "Cliquez pour afficher l'onglet des signaux." #: editor/scene_tree_editor.cpp @@ -7978,7 +7971,7 @@ msgid "" "Node has connections.\n" "Click to show signals dock." msgstr "" -"Le noeud possède des connections.\n" +"Le nÅ“ud possède des connections.\n" "Cliquez pour montrer l'arrimage de signaux." #: editor/scene_tree_editor.cpp @@ -7986,7 +7979,7 @@ msgid "" "Node is in group(s).\n" "Click to show groups dock." msgstr "" -"Le noeud fait partie d'un (de) groupe(s).\n" +"Le nÅ“ud fait partie d'un (de) groupe(s).\n" "Cliquez pour montrer l'arrimage de goupes." #: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp @@ -8035,7 +8028,7 @@ msgstr "Arbre de scène (nÅ“uds) :" #: editor/scene_tree_editor.cpp msgid "Node Configuration Warning!" -msgstr "Avertissement de configuration de noeud !" +msgstr "Avertissement de configuration de nÅ“ud !" #: editor/scene_tree_editor.cpp msgid "Select a Node" @@ -8066,9 +8059,8 @@ msgid "Path is empty" msgstr "Le chemin est vide" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Le sprite est vide !" +msgstr "Le nom de fichier est vide" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8132,7 +8124,7 @@ msgstr "Langage" #: editor/script_create_dialog.cpp msgid "Inherits" -msgstr "Hérité de :" +msgstr "Hérité de" #: editor/script_create_dialog.cpp msgid "Class Name" @@ -8159,7 +8151,6 @@ msgid "Bytes:" msgstr "Octets :" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" msgstr "Pile des appels" @@ -8389,7 +8380,7 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "L'argument du pas est zéro !" #: modules/gdscript/gdscript_functions.cpp @@ -8574,7 +8565,7 @@ msgstr "Impossible de sauvegarder la solution." #: modules/mono/editor/godotsharp_editor.cpp msgid "Done" -msgstr "C'est fait !" +msgstr "Terminé" #: modules/mono/editor/godotsharp_editor.cpp msgid "Failed to create C# project." @@ -8614,7 +8605,7 @@ msgstr "Fin de la trace d'appel (stack trace) intrinsèque" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "Calculer le NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8776,11 +8767,11 @@ msgstr "Ajouter un nÅ“ud" #: modules/visual_script/visual_script_editor.cpp msgid "Remove VisualScript Nodes" -msgstr "Supprimer noeuds VisualScript" +msgstr "Supprimer nÅ“uds VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Duplicate VisualScript Nodes" -msgstr "Dupliquer noeuds VisualScript" +msgstr "Dupliquer nÅ“uds VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." @@ -8791,7 +8782,7 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." msgstr "" -"Maintenir Ctrl pour déposer un accesseur. Maintenir Maj pour déposer une " +"Maintenir Contrôle pour déposer un accesseur. Maintenir Maj pour déposer une " "signature générique." #: modules/visual_script/visual_script_editor.cpp @@ -8800,7 +8791,7 @@ msgstr "Maintenir %s pour déposer une référence simple au nÅ“ud." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." -msgstr "Maintenir Ctrl pour déposer une référence simple au nÅ“ud." +msgstr "Maintenir Contrôle pour déposer une référence simple au nÅ“ud." #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a Variable Setter." @@ -8808,7 +8799,7 @@ msgstr "Maintenir %s pour déposer un mutateur de variable." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." -msgstr "Maintenir Ctrl pour déposer un mutateur de variable." +msgstr "Maintenir Contrôle pour déposer un mutateur de variable." #: modules/visual_script/visual_script_editor.cpp msgid "Add Preload Node" @@ -8860,7 +8851,7 @@ msgstr "Changer nom de l'entrée" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." -msgstr "Impossible de copier le noeud de fonction." +msgstr "Impossible de copier le nÅ“ud de fonction." #: modules/visual_script/visual_script_editor.cpp msgid "Clipboard is empty!" @@ -9002,12 +8993,11 @@ msgstr "Rechercher VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Obtenir %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Définir " +msgstr "Définir %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9105,6 +9095,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"L'animation de CPUParticles2D a besoin d'un CanvasItemMaterial avec " +"\"Animation de Particules\" activé." #: scene/2d/light_2d.cpp msgid "" @@ -9164,11 +9156,13 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"L'animation de Particles2D a besoin d'un CanvasItemMaterial avec \"Animation " +"de Particules\" activé." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "" -"Un PathFollow2D fonctionne seulement quand défini comme un enfant d'un nÅ“ud " +"PathFollow2D fonctionne seulement quand défini comme un enfant d'un nÅ“ud " "Path2D." #: scene/2d/physics_body_2d.cpp @@ -9214,11 +9208,11 @@ msgstr "" #: scene/3d/arvr_nodes.cpp msgid "ARVRCamera must have an ARVROrigin node as its parent" -msgstr "ARVRCamera doit avoir un noeud ARVROrigin comme parent" +msgstr "ARVRCamera doit avoir un nÅ“ud ARVROrigin comme parent" #: scene/3d/arvr_nodes.cpp msgid "ARVRController must have an ARVROrigin node as its parent" -msgstr "ARVRController doit avoir un noeud ARVROrigin comme parent" +msgstr "ARVRController doit avoir un nÅ“ud ARVROrigin comme parent" #: scene/3d/arvr_nodes.cpp msgid "" @@ -9230,7 +9224,7 @@ msgstr "" #: scene/3d/arvr_nodes.cpp msgid "ARVRAnchor must have an ARVROrigin node as its parent" -msgstr "ARVRAnchor doit avoir un noeud ARVROrigin comme parent" +msgstr "ARVRAnchor doit avoir un nÅ“ud ARVROrigin comme parent" #: scene/3d/arvr_nodes.cpp msgid "" @@ -9310,17 +9304,16 @@ msgstr "" "de forme pour cette CollisionShape !" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "" -"Rien n'est visible car les maillages n'ont pas été assignés au tirage des " -"passes." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Rien n'est visible car aucun maillage n'a été assigné." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"L'animation de CPUParticles a besoin d'un SpatialMaterial avec \"Billboard " +"Particles\" activé." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9352,24 +9345,27 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"L'animation de Particles a besoin d'un SpatialMaterial avec \"Billboard " +"Particles\" activé." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." msgstr "" -"Un PathFollow2D fonctionne seulement quand défini comme un enfant d'un nÅ“ud " -"Path2D." +"PathFollow fonctionne seulement quand défini comme un enfant d'un nÅ“ud Path." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" -"Un PathFollow2D fonctionne seulement quand défini comme un enfant d'un nÅ“ud " -"Path2D." +"OrientedPathFollow fonctionne seulement quand défini comme un enfant d'un " +"nÅ“ud Path." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" +"OrientedPathFollow requiert l'activation de la propriété \"Up Vector\" de la " +"ressource Curve de son Path parent." #: scene/3d/physics_body.cpp msgid "" @@ -9411,15 +9407,14 @@ msgid "This body will be ignored until you set a mesh" msgstr "Ce corps sera ignoré jusqu'à ce que vous définissiez un maillage" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" "Change the size in children collision shapes instead." msgstr "" "Les changements de tailles des SoftBody seront suppléés par le moteur " -"physique lors de l'exécution. Modifiez les tailles dans les formes de " -"collision enfants à la place." +"physique lors de l'exécution.\n" +"Modifiez les tailles dans les formes de collision enfants à la place." #: scene/3d/sprite_3d.cpp msgid "" @@ -9439,7 +9434,7 @@ msgstr "" #: scene/animation/animation_blend_tree.cpp msgid "On BlendTree node '%s', animation not found: '%s'" -msgstr "Sur le noeud BlendTree '%s', animation introuvable : '%s'" +msgstr "Sur le nÅ“ud BlendTree '%s', animation introuvable : '%s'" #: scene/animation/animation_blend_tree.cpp msgid "Animation not found: '%s'" @@ -9447,7 +9442,7 @@ msgstr "Animation introuvable : '%s'" #: scene/animation/animation_tree.cpp msgid "In node '%s', invalid animation: '%s'." -msgstr "Dans le noeud '%s', animation non valide : '%s'." +msgstr "Dans le nÅ“ud '%s', animation non valide : '%s'." #: scene/animation/animation_tree.cpp msgid "Invalid animation: '%s'." @@ -9476,6 +9471,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "La racine AnimationPlayer n'est pas un nÅ“ud valide." +#: scene/animation/animation_tree_player.cpp +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 "Raw Mode" msgstr "Mode brut" @@ -9492,6 +9491,10 @@ msgstr "Alerte !" msgid "Please Confirm..." msgstr "Veuillez confirmer…" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "Activer l'aimantation et afficher la grille." + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9505,7 +9508,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Si exp_edit est vrai min_value doit être > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9561,10 +9564,6 @@ msgstr "Taille de police invalide." msgid "Input" msgstr "Entrée" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Aucun" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Source invalide pour la forme." @@ -9580,1621 +9579,3 @@ msgstr "Affectation à l'uniforme." #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "Les variations ne peuvent être affectées que dans la fonction vertex." - -#~ msgid "Are you sure you want to remove all connections from the \"" -#~ msgstr "Voulez-vous vraiment supprimer toutes les connexions du ''" - -#~ msgid "Class List:" -#~ msgstr "Liste des classes :" - -#~ msgid "Search Classes" -#~ msgstr "Chercher dans les classes" - -#~ msgid "Public Methods" -#~ msgstr "Méthodes Publiques" - -#~ msgid "Public Methods:" -#~ msgstr "Méthodes publiques :" - -#~ msgid "GUI Theme Items" -#~ msgstr "Items de thème GUI" - -#~ msgid "GUI Theme Items:" -#~ msgstr "Items de thème GUI :" - -#~ msgid "Property: " -#~ msgstr "Propriété : " - -#~ msgid "Toggle folder status as Favorite." -#~ msgstr "Basculer le statut du dossier sur Favori." - -#~ msgid "Show current scene file." -#~ msgstr "Afficher le fichier de la scène courante." - -#~ msgid "Enter tree-view." -#~ msgstr "Entrer dans la vue en arborescence." - -#~ msgid "Whole words" -#~ msgstr "Mots entiers" - -#~ msgid "Match case" -#~ msgstr "Cas de correspondance" - -#~ msgid "Filter: " -#~ msgstr "Filtrer : " - -#~ msgid "Ok" -#~ msgstr "OK" - -#~ msgid "Show In File System" -#~ msgstr "Afficher dans le système de fichiers" - -#~ msgid "Search the class hierarchy." -#~ msgstr "Cherche dans la hiérarchie des classes." - -#~ msgid "Search in files" -#~ msgstr "Chercher dans les fichiers" - -#~ msgid "" -#~ "Built-in scripts can only be edited when the scene they belong to is " -#~ "loaded" -#~ msgstr "" -#~ "Les scripts intégrés ne peuvent être modifiés uniquement lorsque la scène " -#~ "à qui ils appartiennent est ouverte" - -#~ msgid "Convert To Uppercase" -#~ msgstr "Convertir en majuscule" - -#~ msgid "Convert To Lowercase" -#~ msgstr "Convertir en minuscule" - -#~ msgid "Snap To Floor" -#~ msgstr "Accrocher au sol" - -#~ msgid "Rotate 0 degrees" -#~ msgstr "Tourner de 0 degrés" - -#~ msgid "Rotate 90 degrees" -#~ msgstr "Tourner de 90 degrés" - -#~ msgid "Rotate 180 degrees" -#~ msgstr "Tourner de 180 degrés" - -#~ msgid "Rotate 270 degrees" -#~ msgstr "Tourner de 270 degrés" - -#~ msgid "Warning" -#~ msgstr "Avertissement" - -#~ msgid "Error:" -#~ msgstr "Erreur :" - -#~ msgid "Source:" -#~ msgstr "Source :" - -#~ msgid "Function:" -#~ msgstr "Fonction :" - -#~ msgid "Variable" -#~ msgstr "Variable" - -#~ msgid "Errors:" -#~ msgstr "Erreurs :" - -#~ msgid "Stack Trace (if applicable):" -#~ msgstr "Trace de pile (si applicable) :" - -#~ msgid "Bake!" -#~ msgstr "Calculer !" - -#~ msgid "Bake the navigation mesh." -#~ msgstr "Précalculer le maillage de navigation." - -#~ msgid "Get" -#~ msgstr "Récupérer" - -#~ msgid "Change Scalar Constant" -#~ msgstr "Modifier une constante scalaire" - -#~ msgid "Change Vec Constant" -#~ msgstr "Modifier une constance vectorielle" - -#~ msgid "Change RGB Constant" -#~ msgstr "Modifier une constante RVB" - -#~ msgid "Change Scalar Operator" -#~ msgstr "Modifier un opérateur scalaire" - -#~ msgid "Change Vec Operator" -#~ msgstr "Modifier un opérateur vectoriel" - -#~ msgid "Change Vec Scalar Operator" -#~ msgstr "Modifier un opérateur vectoriel scalaire" - -#~ msgid "Change RGB Operator" -#~ msgstr "Modifier un opérateur RVB" - -#~ msgid "Toggle Rot Only" -#~ msgstr "Basculer en mode rotation seule" - -#~ msgid "Change Scalar Function" -#~ msgstr "Modifier une fonction scalaire" - -#~ msgid "Change Vec Function" -#~ msgstr "Modifier une fonction vecteur" - -#~ msgid "Change Scalar Uniform" -#~ msgstr "Modifier échelle" - -#~ msgid "Change Vec Uniform" -#~ msgstr "Modifier vecteur" - -#~ msgid "Change RGB Uniform" -#~ msgstr "Modifier RGB" - -#~ msgid "Change Default Value" -#~ msgstr "Changer la valeur par défaut" - -#~ msgid "Change XForm Uniform" -#~ msgstr "Modifier XForm" - -#~ msgid "Change Texture Uniform" -#~ msgstr "Modifier texture" - -#~ msgid "Change Cubemap Uniform" -#~ msgstr "Modifier Cubemap" - -#~ msgid "Change Comment" -#~ msgstr "Modifier un commentaire" - -#~ msgid "Add/Remove to Color Ramp" -#~ msgstr "Ajouter/supprimer de la rampe de couleurs" - -#~ msgid "Modify Color Ramp" -#~ msgstr "Modifier une rampe de couleurs" - -#~ msgid "Add/Remove to Curve Map" -#~ msgstr "Ajouter/supprimer de la carte de courbes" - -#~ msgid "Modify Curve Map" -#~ msgstr "Modifier la carte de courbes" - -#~ msgid "Change Input Name" -#~ msgstr "Changer le nom de l'entrée" - -#~ msgid "Connect Graph Nodes" -#~ msgstr "Connecter les nÅ“uds de graphe" - -#~ msgid "Disconnect Graph Nodes" -#~ msgstr "Déconnecter les nÅ“uds de graphe" - -#~ msgid "Remove Shader Graph Node" -#~ msgstr "Supprimer le nÅ“ud de graphe Shader" - -#~ msgid "Move Shader Graph Node" -#~ msgstr "Déplacer le nÅ“ud de graphe Shader" - -#~ msgid "Duplicate Graph Node(s)" -#~ msgstr "Dupliquer le(s) nÅ“ud(s) de graphe" - -#~ msgid "Delete Shader Graph Node(s)" -#~ msgstr "Effacer le(s) nÅ“ud(s) de graphe Shader" - -#~ msgid "Error: Cyclic Connection Link" -#~ msgstr "Erreur: lien de connexion cyclique" - -#~ msgid "Error: Missing Input Connections" -#~ msgstr "Erreur : connexions d'entrée manquantes" - -#~ msgid "Add Shader Graph Node" -#~ msgstr "Ajouter un nÅ“ud de graphe Shader" - -#~ msgid "Disabled" -#~ msgstr "Désactivé" - -#~ msgid "Move Anim Track Up" -#~ msgstr "Monter la piste d'animation" - -#~ msgid "Move Anim Track Down" -#~ msgstr "Descendre la piste d'animation" - -#~ msgid "Set Transitions to:" -#~ msgstr "Définir les transitions à :" - -#~ msgid "Anim Track Rename" -#~ msgstr "Renommer la piste d'animation" - -#~ msgid "Anim Track Change Interpolation" -#~ msgstr "Modifier l'interpolation de la piste d'animation" - -#~ msgid "Anim Track Change Value Mode" -#~ msgstr "Modifier le mode de valeur de la piste d'animation" - -#~ msgid "Anim Track Change Wrap Mode" -#~ msgstr "Piste d'Animation Changer Mode de Conclusion" - -#~ msgid "Edit Node Curve" -#~ msgstr "Modifier la courbe du nÅ“ud" - -#~ msgid "Edit Selection Curve" -#~ msgstr "Modifier la courbe de sélection" - -#~ msgid "Anim Add Key" -#~ msgstr "Anim Ajouter Clé" - -#~ msgid "In" -#~ msgstr "In" - -#~ msgid "Out" -#~ msgstr "Out" - -#~ msgid "In-Out" -#~ msgstr "In-out" - -#~ msgid "Out-In" -#~ msgstr "Out-in" - -#~ msgid "Transitions" -#~ msgstr "Transitions" - -#~ msgid "Change Anim Len" -#~ msgstr "Changer durée d'animation" - -#~ msgid "Change Anim Loop" -#~ msgstr "Modifier le bouclage de l'animation" - -#~ msgid "Anim Create Typed Value Key" -#~ msgstr "Animation Créer une clé pour une valeur typée" - -#~ msgid "Anim Add Call Track" -#~ msgstr "Anim Ajouter Piste d'Appel" - -#~ msgid "Length (s):" -#~ msgstr "Longueur (s) :" - -#~ msgid "Step (s):" -#~ msgstr "Pas (s) :" - -#~ msgid "Cursor step snap (in seconds)." -#~ msgstr "Pas du curseur (en secondes)." - -#~ msgid "Enable/Disable looping in animation." -#~ msgstr "Activer/Désactiver le bouclage de l'animation." - -#~ msgid "Add new tracks." -#~ msgstr "Ajouter de nouvelles pistes." - -#~ msgid "Move current track up." -#~ msgstr "Déplacer la piste actuelle vers le haut." - -#~ msgid "Move current track down." -#~ msgstr "Déplacer la piste actuelle vers le bas." - -#~ msgid "Track tools" -#~ msgstr "Outils de piste" - -#~ msgid "Enable editing of individual keys by clicking them." -#~ msgstr "Activer la modification de chaque clé en cliquant dessus." - -#~ msgid "Key" -#~ msgstr "Clé" - -#~ msgid "Call Functions in Which Node?" -#~ msgstr "Appeler des fonctions dans quel nÅ“ud ?" - -#~ msgid "Thanks!" -#~ msgstr "Merci !" - -#~ msgid "I see..." -#~ msgstr "Je vois…" - -#~ msgid "Can't open '%s'." -#~ msgstr "Impossible d'ouvrir '%s'." - -#~ msgid "Ugh" -#~ msgstr "Oups" - -#~ msgid "Run Script" -#~ msgstr "Lancer le script" - -#~ msgid "Save the currently edited resource." -#~ msgstr "Enregistrer la ressource actuellement modifiée." - -#~ msgid "Stop Profiling" -#~ msgstr "Arrêter le profilage" - -#~ msgid "Start Profiling" -#~ msgstr "Démarrer le profilage" - -#~ msgid "Default (Same as Editor)" -#~ msgstr "Par défaut (le même que l'éditeur)" - -#~ msgid "Create new animation in player." -#~ msgstr "Créer une nouvelle animation dans le lecteur." - -#~ msgid "Load animation from disk." -#~ msgstr "Charger une animation depuis le disque." - -#~ msgid "Load an animation from disk." -#~ msgstr "Charger une animation depuis le disque." - -#~ msgid "Save the current animation" -#~ msgstr "Enregistrer l'animation actuelle" - -#~ msgid "Edit Target Blend Times" -#~ msgstr "Modifier les temps de mélange de la cible" - -#~ msgid "Copy Animation" -#~ msgstr "Copier l'animation" - -#~ msgid "Fetching:" -#~ msgstr "Récupération:" - -#~ msgid "prev" -#~ msgstr "préc" - -#~ msgid "next" -#~ msgstr "suiv" - -#~ msgid "last" -#~ msgstr "dern" - -#~ msgid "Edit IK Chain" -#~ msgstr "Modifier la chaîne IK" - -#~ msgid "Drag pivot from mouse position" -#~ msgstr "Déplacer le point de pivot à la position de la souris" - -#~ msgid "Set pivot at mouse position" -#~ msgstr "Placer le pivot sur la position de la souris" - -#~ msgid "Add/Remove Color Ramp Point" -#~ msgstr "Ajouter/supprimer un point de rampe de couleur" - -#~ msgid "OK :(" -#~ msgstr "OK :(" - -#~ msgid "Skeleton Gizmo visibility" -#~ msgstr "Visibilité squelette Gizmo" - -#~ msgid "StyleBox Preview:" -#~ msgstr "Aperçu de la StyleBox :" - -#~ msgid "StyleBox" -#~ msgstr "StyleBox" - -#~ msgid "Separation:" -#~ msgstr "Séparation :" - -#~ msgid "Texture Region Editor" -#~ msgstr "Éditeur de région de texture" - -#~ msgid "Erase selection" -#~ msgstr "Supprimer la sélection" - -#~ msgid "Could not find tile:" -#~ msgstr "Impossible de trouver la tuile :" - -#~ msgid "Item name or ID:" -#~ msgstr "Nom d'item ou ID :" - -#~ msgid "Autotiles" -#~ msgstr "Autotiles" - -#~ msgid "Export templates for this platform are missing/corrupted: " -#~ msgstr "" -#~ "Modèles d'exportation manquants ou corrompus pour cette plateforme : " - -#~ msgid "Button 7" -#~ msgstr "Bouton 7" - -#~ msgid "Button 8" -#~ msgstr "Bouton 8" - -#~ msgid "Button 9" -#~ msgstr "Bouton 9" - -#~ msgid "Discard Instancing" -#~ msgstr "Abandonner l'instanciation" - -#~ msgid "Makes Sense!" -#~ msgstr "C'est sensé !" - -#~ msgid "Clear!" -#~ msgstr "Effacer !" - -#~ msgid "Toggle Spatial Visible" -#~ msgstr "Afficher/cacher le Spatial" - -#~ msgid "Toggle CanvasItem Visible" -#~ msgstr "Afficher/cacher le CanvasItem" - -#~ msgid "Condition" -#~ msgstr "Condition" - -#~ msgid "Sequence" -#~ msgstr "Séquence" - -#~ msgid "Switch" -#~ msgstr "Switch" - -#~ msgid "Iterator" -#~ msgstr "Itérateur" - -#~ msgid "While" -#~ msgstr "Tant que" - -#~ msgid "Return" -#~ msgstr "Retour" - -#~ msgid "Call" -#~ msgstr "Appel" - -#~ msgid "Edit Variable" -#~ msgstr "Editerr la variable :" - -#~ msgid "Edit Signal" -#~ msgstr "Editer signal :" - -#~ msgid "Invalid action (anything goes but '/' or ':')." -#~ msgstr "Action invalide (tout passe, sauf « / » ou « : »)." - -#~ msgid "Can't contain '/' or ':'" -#~ msgstr "Ne peut pas contenir de '/' ou ':'" - -#~ msgid "" -#~ "Invalid version.txt format inside templates. Revision is not a valid " -#~ "identifier." -#~ msgstr "" -#~ "Format de version.txt invalide dans les modèles. Revision n'est pas un " -#~ "identifiant valide." - -#~ msgid "Can't write file." -#~ msgstr "Impossible d'écrire le fichier." - -#~ msgid "Couldn't get project.godot in project path." -#~ msgstr "" -#~ "Impossible de trouver le fichier project.godot dans le chemin du projet." - -#~ msgid "Couldn't get project.godot in the project path." -#~ msgstr "" -#~ "Impossible de trouver le fichier project.godot dans le chemin du projet." - -#~ msgid "Not found!" -#~ msgstr "Non trouvé !" - -#~ msgid "Replace By" -#~ msgstr "Remplacer par" - -#~ msgid "Case Sensitive" -#~ msgstr "Sensible à la casse" - -#~ msgid "Backwards" -#~ msgstr "À l'envers" - -#~ msgid "Prompt On Replace" -#~ msgstr "Avertir lors du remplacement" - -#~ msgid "Skip" -#~ msgstr "Passer" - -#~ msgid "" -#~ "Your project will be created in a non empty folder (you might want to " -#~ "create a new folder)." -#~ msgstr "" -#~ "Votre projet sera créé dans un dossier non-vide (vous pourriez avoir " -#~ "besoin de créer un nouveau dossier)." - -#~ msgid "That's a BINGO!" -#~ msgstr "C'est un BINGO !" - -#~ msgid "preview" -#~ msgstr "Aperçu" - -#~ msgid "Move Add Key" -#~ msgstr "Mouvement Ajouter une clé" - -#~ msgid "Create Subscription" -#~ msgstr "Créer une connexion" - -#~ msgid "List:" -#~ msgstr "Liste :" - -#~ msgid "Set Emission Mask" -#~ msgstr "Définir le masque d'émission" - -#~ msgid "Clear Emitter" -#~ msgstr "Effacer l'Émetteur" - -#~ msgid "Fold Line" -#~ msgstr "Masquer la ligne" - -#~ msgid " " -#~ msgstr " " - -#~ msgid "Sections:" -#~ msgstr "Sections :" - -#~ msgid "Cannot navigate to '" -#~ msgstr "Ne peux pas acceder à '" - -#~ msgid "" -#~ "\n" -#~ "Source: " -#~ msgstr "" -#~ "\n" -#~ "Source : " - -#~ msgid "Remove Point from Line2D" -#~ msgstr "Supprimer point de Line2D" - -#~ msgid "Add Point to Line2D" -#~ msgstr "Ajouter point à Line2D" - -#~ msgid "Move Point in Line2D" -#~ msgstr "Déplacer point de Line2D" - -#~ msgid "Split Segment (in line)" -#~ msgstr "Diviser le segment (dans la ligne)" - -#~ msgid "Meta+" -#~ msgstr "Méta+" - -#~ msgid "Setting '" -#~ msgstr "Paramètre" - -#~ msgid "Remote Inspector" -#~ msgstr "Inspecteur distant" - -#~ msgid "Live Scene Tree:" -#~ msgstr "Arbre des scènes en direct :" - -#~ msgid "Remote Object Properties: " -#~ msgstr "Propriétés de l'objet distant : " - -#, fuzzy -#~ msgid "Prev Level (%sDown Wheel)" -#~ msgstr "Niveau de prévisualisation (" - -#, fuzzy -#~ msgid "Next Level (%sUp Wheel)" -#~ msgstr "Niveau suivant (" - -#~ msgid "Selection -> Duplicate" -#~ msgstr "Sélection -> Dupliquer" - -#~ msgid "Selection -> Clear" -#~ msgstr "Sélection -> Effacer" - -#~ msgid "" -#~ "Path property must point to a valid Viewport node to work. Such Viewport " -#~ "must be set to 'render target' mode." -#~ msgstr "" -#~ "La propriété Path doit pointer vers un nÅ“ud de type Viewport valide pour " -#~ "fonctionner. Ce Viewport doit utiliser le mode « render target »." - -#~ msgid "" -#~ "The Viewport set in the path property must be set as 'render target' in " -#~ "order for this sprite to work." -#~ msgstr "" -#~ "Le Viewport défini dans la propriété Path doit utiliser le mode « render " -#~ "target » pour que cette sprite fonctionne." - -#~ msgid "' parsing of config failed." -#~ msgstr "L'analyse de la configuration a échoué." - -#~ msgid "Method List For '%s':" -#~ msgstr "Liste des méthodes pour « %s » :" - -#~ msgid "Arguments:" -#~ msgstr "Paramètres :" - -#~ msgid "Return:" -#~ msgstr "Retourne :" - -#~ msgid "Added:" -#~ msgstr "Ajouté :" - -#~ msgid "Removed:" -#~ msgstr "Supprimé :" - -#~ msgid "Could not save atlas subtexture:" -#~ msgstr "Impossible d'enregistrer la sous-texture atlas :" - -#~ msgid "Setting Up..." -#~ msgstr "Configuration…" - -#~ msgid "Error loading scene." -#~ msgstr "Erreur lors du chargement de la scène." - -#~ msgid "Re-Import" -#~ msgstr "Ré-importer" - -#~ msgid "Please wait for scan to complete." -#~ msgstr "Veuillez attendre la fin du scan." - -#~ msgid "Current scene must be saved to re-import." -#~ msgstr "" -#~ "La scène actuelle doit être enregistrée afin de pouvoir ré-importer." - -#~ msgid "Re-Importing" -#~ msgstr "Ré-importation" - -#~ msgid "Re-Import Changed Resources" -#~ msgstr "Ré-importer les ressources modifiées" - -#~ msgid "Loading Export Templates" -#~ msgstr "Chargement des modèles d'exportation" - -#~ msgid "" -#~ "\n" -#~ "Status: Needs Re-Import" -#~ msgstr "" -#~ "\n" -#~ "Statut: Réimportation nécessaire" - -#~ msgid "Same source and destination files, doing nothing." -#~ msgstr "Fichiers source et destination identiques, rien à faire." - -#~ msgid "Target file exists, can't overwrite. Delete first." -#~ msgstr "" -#~ "Le fichier cible existe et ne peut être réécrit. Supprimez le d'abord." - -#~ msgid "Same source and destination paths, doing nothing." -#~ msgstr "Chemins source et destination identiques, rien à faire." - -#~ msgid "Can't move directories to within themselves." -#~ msgstr "Impossible de déplacer des répertoires vers eux-mêmes." - -#~ msgid "Can't rename deps for:\n" -#~ msgstr "Impossible de renommer dependances pour :\n" - -#~ msgid "Pick New Name and Location For:" -#~ msgstr "Entrez un nouveau nom et chemin pour :" - -#~ msgid "No files selected!" -#~ msgstr "Pas de fichiers sélectionnés !" - -#~ msgid "Info" -#~ msgstr "Information" - -#~ msgid "Re-Import..." -#~ msgstr "Ré-importer…" - -#~ msgid "No bit masks to import!" -#~ msgstr "Pas de masques de bits à importer !" - -#~ msgid "Target path is empty." -#~ msgstr "Le chemin de destination est vide." - -#~ msgid "Target path must be a complete resource path." -#~ msgstr "" -#~ "Le chemin de destination doit être un chemin complet vers une ressource." - -#~ msgid "Target path must exist." -#~ msgstr "Le chemin de destination doit exister." - -#~ msgid "Import BitMasks" -#~ msgstr "Importer des BitMasks" - -#~ msgid "Source Texture(s):" -#~ msgstr "Texture(s) source :" - -#~ msgid "Target Path:" -#~ msgstr "Chemin de destination :" - -#~ msgid "Accept" -#~ msgstr "Accepter" - -#~ msgid "Bit Mask" -#~ msgstr "Masque de bits" - -#~ msgid "No source font file!" -#~ msgstr "Pas de fichier de police source !" - -#~ msgid "No target font resource!" -#~ msgstr "Pas de ressource de police de destination !" - -#~ msgid "" -#~ "Invalid file extension.\n" -#~ "Please use .font." -#~ msgstr "" -#~ "Extension de fichier invalide.\n" -#~ "Veuillez utiliser .font." - -#~ msgid "Couldn't save font." -#~ msgstr "Impossible d'enregistrer la police." - -#~ msgid "Source Font:" -#~ msgstr "Police source :" - -#~ msgid "Source Font Size:" -#~ msgstr "Taille de la police source :" - -#~ msgid "Dest Resource:" -#~ msgstr "Ressource de destination :" - -#~ msgid "The quick brown fox jumps over the lazy dog." -#~ msgstr "Voix ambiguë d'un cÅ“ur qui, au zéphyr, préfère les jattes de kiwis." - -#~ msgid "Test:" -#~ msgstr "Test :" - -#~ msgid "Options:" -#~ msgstr "Options :" - -#~ msgid "Font Import" -#~ msgstr "Importation d'une police" - -#~ msgid "" -#~ "This file is already a Godot font file, please supply a BMFont type file " -#~ "instead." -#~ msgstr "" -#~ "Ce fichier est déjà un fichier de police Godot, veuillez fournir un " -#~ "fichier de type BMFont à la place." - -#~ msgid "Failed opening as BMFont file." -#~ msgstr "Impossible d'ouvrir le fichier en tant que fichier BMFont." - -#~ msgid "Invalid font custom source." -#~ msgstr "Source personnalisée de police invalide." - -#~ msgid "No meshes to import!" -#~ msgstr "Pas de maillages à importer !" - -#~ msgid "Single Mesh Import" -#~ msgstr "Importer un maillage" - -#~ msgid "Source Mesh(es):" -#~ msgstr "Maillage(s) source :" - -#~ msgid "Surface %d" -#~ msgstr "Surface %d" - -#~ msgid "No samples to import!" -#~ msgstr "Pas d'échantillons à importer !" - -#~ msgid "Import Audio Samples" -#~ msgstr "Importer des échantillons audio" - -#~ msgid "Source Sample(s):" -#~ msgstr "Échantillon(s) source :" - -#~ msgid "Audio Sample" -#~ msgstr "Échantillon audio" - -#~ msgid "New Clip" -#~ msgstr "Nouvelle séquence" - -#~ msgid "Flags" -#~ msgstr "Drapeaux" - -#~ msgid "Bake FPS:" -#~ msgstr "FPS de calcul :" - -#~ msgid "Optimizer" -#~ msgstr "Optimiseur" - -#~ msgid "Max Linear Error" -#~ msgstr "Erreur linéaire maximale" - -#~ msgid "Max Angular Error" -#~ msgstr "Erreur angulaire maximale" - -#~ msgid "Max Angle" -#~ msgstr "Angle maximal" - -#~ msgid "Start(s)" -#~ msgstr "Départ(s)" - -#~ msgid "Source path is empty." -#~ msgstr "Le chemin source est vide." - -#~ msgid "Couldn't load post-import script." -#~ msgstr "Impossible de charger le script de post-importation." - -#~ msgid "Invalid/broken script for post-import." -#~ msgstr "Script invalide ou cassé de post-importation." - -#~ msgid "Error importing scene." -#~ msgstr "Erreur à l'importation de la scène." - -#~ msgid "Import 3D Scene" -#~ msgstr "Importer une scène 3D" - -#~ msgid "Source Scene:" -#~ msgstr "Scène source :" - -#~ msgid "Same as Target Scene" -#~ msgstr "Identique à la scène de destination" - -#~ msgid "Shared" -#~ msgstr "Partagé" - -#~ msgid "Target Texture Folder:" -#~ msgstr "Dossier de destination des textures :" - -#~ msgid "Custom Root Node Type:" -#~ msgstr "Type de nÅ“ud racine personnalisé :" - -#~ msgid "Auto" -#~ msgstr "Auto." - -#~ msgid "The Following Files are Missing:" -#~ msgstr "Les fichiers suivants sont manquants :" - -#~ msgid "Import Anyway" -#~ msgstr "Importer quand même" - -#~ msgid "Edited scene has not been saved, open imported scene anyway?" -#~ msgstr "" -#~ "La scène modifiée actuellement n'a pas été enregistrée, ouvrir la scène " -#~ "importée quand même ?" - -#~ msgid "Import Image:" -#~ msgstr "Importer une image :" - -#~ msgid "Couldn't localize path: %s (already local)" -#~ msgstr "Impossible de rendre le chemin local : %s (déjà local)" - -#~ msgid "3D Scene Animation" -#~ msgstr "Animation de scène 3D" - -#~ msgid "Uncompressed" -#~ msgstr "Non compressé" - -#~ msgid "Compress Lossless (PNG)" -#~ msgstr "Compression sans perte (PNG)" - -#~ msgid "Compress Lossy (WebP)" -#~ msgstr "Compression avec perte (WebP)" - -#~ msgid "Compress (VRAM)" -#~ msgstr "Compression GPU (VRAM)" - -#~ msgid "Texture Format" -#~ msgstr "Format de texture" - -#~ msgid "Texture Compression Quality (WebP):" -#~ msgstr "Qualité de compression de la texture (WebP) :" - -#~ msgid "Texture Options" -#~ msgstr "Options de texture" - -#~ msgid "Please specify some files!" -#~ msgstr "Veuillez spécifier des fichiers !" - -#~ msgid "At least one file needed for Atlas." -#~ msgstr "Il faut au moins un fichier pour créer un atlas." - -#~ msgid "Error importing:" -#~ msgstr "Erreur d'importation :" - -#~ msgid "Only one file is required for large texture." -#~ msgstr "Un seul fichier est nécessaire pour créer une grande texture." - -#~ msgid "Max Texture Size:" -#~ msgstr "Taille de texture maximale :" - -#~ msgid "Import Textures for Atlas (2D)" -#~ msgstr "Importer des textures pour un atlas (2D)" - -#~ msgid "Large Texture" -#~ msgstr "Grande texture" - -#~ msgid "Import Large Textures (2D)" -#~ msgstr "Importer des grandes textures (2D)" - -#~ msgid "Source Texture" -#~ msgstr "Texture source" - -#~ msgid "Base Atlas Texture" -#~ msgstr "Texture d'atlas de base" - -#~ msgid "Source Texture(s)" -#~ msgstr "Texture(s) source" - -#~ msgid "Import Textures for 2D" -#~ msgstr "Importer des textures pour la 2D" - -#~ msgid "Import Textures for 3D" -#~ msgstr "Importer des textures pour la 3D" - -#~ msgid "Import Textures" -#~ msgstr "Importer des textures" - -#~ msgid "2D Texture" -#~ msgstr "Texture 2D" - -#~ msgid "3D Texture" -#~ msgstr "Texture 3D" - -#~ msgid "Atlas Texture" -#~ msgstr "Texture atlas" - -#~ msgid "" -#~ "NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files " -#~ "to the project." -#~ msgstr "" -#~ "REMARQUE : L'import de textures 2D n'est pas obligatoire. Copiez " -#~ "directement les fichiers PNG ou JPEG dans le projet." - -#~ msgid "Crop empty space." -#~ msgstr "Rogner l'espace vide." - -#~ msgid "Texture" -#~ msgstr "Texture" - -#~ msgid "Import Large Texture" -#~ msgstr "Importer une grande texture" - -#~ msgid "Load Source Image" -#~ msgstr "Charger une image source" - -#~ msgid "Slicing" -#~ msgstr "Découpage" - -#~ msgid "Saving" -#~ msgstr "Enregistrement" - -#~ msgid "Couldn't save large texture:" -#~ msgstr "Impossible d'enregistrer la grande texture :" - -#~ msgid "Build Atlas For:" -#~ msgstr "Construire l'atlas pour :" - -#~ msgid "Loading Image:" -#~ msgstr "Chargement de l'image :" - -#~ msgid "Couldn't load image:" -#~ msgstr "Impossible de charger l'image :" - -#~ msgid "Converting Images" -#~ msgstr "Conversion des images" - -#~ msgid "Cropping Images" -#~ msgstr "Rognage des images" - -#~ msgid "Couldn't save atlas image:" -#~ msgstr "Impossible d'enregistrer l'image d'atlas :" - -#~ msgid "Couldn't save converted texture:" -#~ msgstr "Impossible d'enregistrer la texture convertie :" - -#~ msgid "Invalid translation source!" -#~ msgstr "Source de traduction invalide !" - -#~ msgid "Column" -#~ msgstr "Colonne" - -#~ msgid "No items to import!" -#~ msgstr "Pas d'objets à importer !" - -#~ msgid "No target path!" -#~ msgstr "Pas de chemin de destination !" - -#~ msgid "Import Translations" -#~ msgstr "Importer des traductions" - -#~ msgid "Couldn't import!" -#~ msgstr "Impossible d'importer !" - -#~ msgid "Import Translation" -#~ msgstr "Importer une traduction" - -#~ msgid "Source CSV:" -#~ msgstr "CSV source :" - -#~ msgid "Ignore First Row" -#~ msgstr "Ignorer la première ligne" - -#~ msgid "Compress" -#~ msgstr "Compresser" - -#~ msgid "Add to Project (project.godot)" -#~ msgstr "Ajouter au projet (project.godot)" - -#~ msgid "Import Languages:" -#~ msgstr "Importer les langues :" - -#~ msgid "Translation" -#~ msgstr "Traduction" - -#~ msgid "Triangle #" -#~ msgstr "Triangle #" - -#~ msgid "Light Baker Setup:" -#~ msgstr "Paramètres du calculateur d'éclairage :" - -#~ msgid "Fixing Lights" -#~ msgstr "Correction des lumières" - -#~ msgid "Making BVH" -#~ msgstr "Création du BVH" - -#~ msgid "Allocating Texture #" -#~ msgstr "Allocation de la texture #" - -#~ msgid "Baking Triangle #" -#~ msgstr "Calcul de la texture #" - -#~ msgid "Post-Processing Texture #" -#~ msgstr "Post-traitement de la texture #" - -#~ msgid "Reset the lightmap octree baking process (start over)." -#~ msgstr "" -#~ "Remettre le processus de calcul de l'éclairage à zéro (recommencer)." - -#~ msgid "Zoom Set..." -#~ msgstr "Définir le zoom…" - -#~ msgid "Set a Value" -#~ msgstr "Définir une valeur" - -#~ msgid "Parse BBCode" -#~ msgstr "Analyser le BBCode" - -#~ msgid "Length:" -#~ msgstr "Longueur :" - -#~ msgid "Open Sample File(s)" -#~ msgstr "Ouvrir un ou des fichiers d'échantillons" - -#~ msgid "ERROR: Couldn't load sample!" -#~ msgstr "ERREUR : Impossible de charger l'échantillon !" - -#~ msgid "Add Sample" -#~ msgstr "Ajouter un échantillon" - -#~ msgid "Rename Sample" -#~ msgstr "Renommer l'échantillon" - -#~ msgid "Delete Sample" -#~ msgstr "Supprimer l'échantillon" - -#~ msgid "16 Bits" -#~ msgstr "16 bits" - -#~ msgid "8 Bits" -#~ msgstr "8 bits" - -#~ msgid "Stereo" -#~ msgstr "Stéréo" - -#~ msgid "Window" -#~ msgstr "Fenêtre" - -#~ msgid "Scaling to %s%%." -#~ msgstr "Mise à l'échelle %s%%." - -#~ msgid "Up" -#~ msgstr "Haut" - -#~ msgid "Down" -#~ msgstr "Bas" - -#~ msgid "Bucket" -#~ msgstr "Seau" - -#~ msgid "Invalid project path, the path must exist!" -#~ msgstr "Chemin de projet invalide, le chemin doit exister !" - -#~ msgid "Invalid project path, project.godot must not exist." -#~ msgstr "Chemin de projet invalide, project.godot ne doit pas exister." - -#~ msgid "Invalid project path, project.godot must exist." -#~ msgstr "Chemin de projet invalide, project.godot doit exister." - -#~ msgid "Project Path (Must Exist):" -#~ msgstr "Chemin du projet (doit exister) :" - -#~ msgid "Create New Resource" -#~ msgstr "Créer une nouvelle ressource" - -#~ msgid "Open Resource" -#~ msgstr "Ouvrir la ressource" - -#~ msgid "Save Resource" -#~ msgstr "Enregistrer la ressource" - -#~ msgid "Resource Tools" -#~ msgstr "Outils des ressources" - -#~ msgid "Edit Groups" -#~ msgstr "Modifier les groupes" - -#~ msgid "GridMap Paint" -#~ msgstr "Peinture de GridMap" - -#~ msgid "Tiles" -#~ msgstr "Tuiles" - -#~ msgid "Areas" -#~ msgstr "Aires" - -#~ msgid "Ctrl+" -#~ msgstr "Ctrl+" - -#~ msgid "Down Wheel)" -#~ msgstr "Roue descendante)" - -#~ msgid "Up Wheel)" -#~ msgstr "Roue ascendante)" - -#~ msgid "Close scene? (Unsaved changes will be lost)" -#~ msgstr "" -#~ "Fermer la scène ? (les modifications non sauvegardées seront perdues)" - -#~ msgid "" -#~ "Open Project Manager? \n" -#~ "(Unsaved changes will be lost)" -#~ msgstr "" -#~ "Ouvrir le gestionnaire de projets ?\n" -#~ "(les modifications non sauvegardées seront perdues)" - -#~ msgid "Close Goto Prev. Scene" -#~ msgstr "Fermer, aller à la scène précédente" - -#~ msgid "Del" -#~ msgstr "Supprimer" - -#~ msgid "just pressed" -#~ msgstr "vient d'être appuyé" - -#, fuzzy -#~ msgid "" -#~ "Couldn't read the certificate file. Are the path and password both " -#~ "correct?" -#~ msgstr "" -#~ "Le fichier certificat n'a pas pu être lu. Le chemin et le mot de passe " -#~ "sont-ils tous deux corrects ?" - -#~ msgid "Error creating the signature object." -#~ msgstr "Erreur en créant la signature de l'objet." - -#~ msgid "Error creating the package signature." -#~ msgstr "Erreur en créant la signature du paquet." - -#~ msgid "" -#~ "No export templates found.\n" -#~ "Download and install export templates." -#~ msgstr "" -#~ "Aucun modèle d'export n'a été trouvé.\n" -#~ "Téléchargez et installez des modèles d'export." - -#~ msgid "Custom debug package not found." -#~ msgstr "Le paquet personnalisé de débogage n'a pas été trouvé." - -#~ msgid "Custom release package not found." -#~ msgstr "Le paquet personnalisé de parution n'a pas été trouvé." - -#~ msgid "Invalid unique name." -#~ msgstr "Nom unique invalide." - -#~ msgid "Invalid product GUID." -#~ msgstr "GUID de produit invalide." - -#~ msgid "Invalid publisher GUID." -#~ msgstr "GUID d'éditeur invalide." - -#~ msgid "Invalid background color." -#~ msgstr "Couleur d'arrière-plan invalide." - -#~ msgid "Invalid Store Logo image dimensions (should be 50x50)." -#~ msgstr "Dimensions de l'image incorrectes (devraient être 50x50)." - -#~ msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -#~ msgstr "" -#~ "Dimensions d'image de logo carré 44x44 invalides (devraient être 44x44)." - -#~ msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -#~ msgstr "" -#~ "Dimensions d'image de logo carré 71x71 invalides (devraient être 71x71)." - -#~ msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -#~ msgstr "" -#~ "Dimensions d'image de logo carré 150x150 invalides (devraient être " -#~ "150x150)." - -#~ msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -#~ msgstr "" -#~ "Dimensions d'image de logo carré 310x310 invalides (devraient être " -#~ "310x310)." - -#~ msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -#~ msgstr "" -#~ "Dimensions d'image de logo large 310x150 invalides (devraient être " -#~ "310x150)." - -#~ msgid "Invalid splash screen image dimensions (should be 620x300)." -#~ msgstr "" -#~ "Dimensions d'image d'écran de démarrage invalides (devraient être " -#~ "620x300)." - -#, fuzzy -#~ msgid "RAW Mode" -#~ msgstr "Mode d'exécution :" - -#~ msgid "Node From Scene" -#~ msgstr "NÅ“ud à partir d'une scène" - -#~ msgid "Import assets to the project." -#~ msgstr "Importer des ressources dans le projet." - -#~ msgid "Export the project to many platforms." -#~ msgstr "Exporter le projet vers diverses plate-formes." - -#~ msgid "Alerts when an external resource has changed." -#~ msgstr "Alerte lorsqu'une ressource externe a été modifiée." - -#~ msgid "Open https://godotengine.org at tutorials section." -#~ msgstr "Ouvre https://godotengine.org dans la section des tutoriels." - -#~ msgid "No scene selected to instance!" -#~ msgstr "Pas de scène sélectionnée à instancier !" - -#~ msgid "Instance at Cursor" -#~ msgstr "Instancier sur le cursuer" - -#~ msgid "Could not instance scene!" -#~ msgstr "Impossible d'instancier la scène !" - -#~ msgid "Use Default Light" -#~ msgstr "Utiliser la lumière par défaut" - -#~ msgid "Use Default sRGB" -#~ msgstr "Utiliser sRGB par défaut" - -#~ msgid "Default Light Normal:" -#~ msgstr "Normale de l'éclairage par défaut :" - -#~ msgid "Ambient Light Color:" -#~ msgstr "Couleur de l'éclairage ambient :" - -#~ msgid "Invalid parent class name" -#~ msgstr "Nom de classe parent invalide" - -#~ msgid "Valid chars:" -#~ msgstr "Caractères valides :" - -#~ msgid "Valid name" -#~ msgstr "Nom valide" - -#~ msgid "Class name is invalid!" -#~ msgstr "Le nom de classe est invalide !" - -#~ msgid "Parent class name is invalid!" -#~ msgstr "Le nom de classe parent est invalide !" - -#~ msgid "Path property must point to a valid Particles2D node to work." -#~ msgstr "" -#~ "La propriété Path doit pointer à un nÅ“ud de type Particles2D valide pour " -#~ "fonctionner." - -#~ msgid "Surface" -#~ msgstr "Surface" - -#~ msgid "" -#~ "A SampleLibrary resource must be created or set in the 'samples' property " -#~ "in order for SamplePlayer to play sound." -#~ msgstr "" -#~ "Une ressource SampleLibrary doit être créée ou définie dans la propriété " -#~ "\"échantillon\" pour que le SamplePlayer puisse jouer un son." - -#~ msgid "" -#~ "A SampleLibrary resource must be created or set in the 'samples' property " -#~ "in order for SpatialSamplePlayer to play sound." -#~ msgstr "" -#~ "Une ressource de type SampleLibrary doit être créée ou définie dans la " -#~ "propriété « samples » afin que le SpatialSamplePlayer joue des sons." - -#~ msgid "Replaced %d Ocurrence(s)." -#~ msgstr "%d occurrence(s) remplacée(s)." - -#~ msgid "Save Translatable Strings" -#~ msgstr "Enregistrer les chaînes traduisibles" - -#~ msgid "Edit Script Options" -#~ msgstr "Modifier les options du script" - -#~ msgid "Error exporting project!" -#~ msgstr "Erreur d'exportation du projet !" - -#~ msgid "Error writing the project PCK!" -#~ msgstr "Erreur d'écriture du PCK du projet !" - -#~ msgid "No exporter for platform '%s' yet." -#~ msgstr "Pas d'exportateur pour la plate-forme « %s » actuellement." - -#, fuzzy -#~ msgid "Create Android keystore" -#~ msgstr "Créer une nouvelle ressource" - -#, fuzzy -#~ msgid "Full name" -#~ msgstr "Nom valide" - -#~ msgid "Organizational unit" -#~ msgstr "Unité d'organisation" - -#, fuzzy -#~ msgid "Organization" -#~ msgstr "Transition" - -#~ msgid "City" -#~ msgstr "Ville" - -#, fuzzy -#~ msgid "State" -#~ msgstr "État :" - -#~ msgid "2 letter country code" -#~ msgstr "Code de pays à 2 lettres" - -#, fuzzy -#~ msgid "Password" -#~ msgstr "Mot de passe :" - -#, fuzzy -#~ msgid "at least 6 characters" -#~ msgstr "Caractères valides :" - -#, fuzzy -#~ msgid "File name" -#~ msgstr "Nouveau nom :" - -#~ msgid "Include" -#~ msgstr "Inclure" - -#~ msgid "Group name can't be empty!" -#~ msgstr "Le nom du groupe ne peut pas être vide !" - -#~ msgid "Invalid character in group name!" -#~ msgstr "Caractère invalide dans le nom du groupe !" - -#~ msgid "Add Image Group" -#~ msgstr "Ajouter un groupe d'images" - -#~ msgid "Delete Image Group" -#~ msgstr "Supprimer le groupe d'images" - -#~ msgid "Project Export Settings" -#~ msgstr "Paramètres d'exportation du projet" - -#~ msgid "Target" -#~ msgstr "Cible" - -#~ msgid "Export to Platform" -#~ msgstr "Exporter vers la plate-forme" - -#~ msgid "Export all files in the project directory." -#~ msgstr "Exporter tous les fichiers dans le répertoire du projet." - -#~ msgid "Convert text scenes to binary on export." -#~ msgstr "" -#~ "Convertir les scènes en format texte au format binaire à l'exportation." - -#~ msgid "Images" -#~ msgstr "Images" - -#~ msgid "Keep Original" -#~ msgstr "Garder les originaux" - -#~ msgid "Compress for Disk (Lossy, WebP)" -#~ msgstr "Compression pour le disque (avec perte, WebP)" - -#~ msgid "Compress for RAM (BC/PVRTC/ETC)" -#~ msgstr "Compression pour la RAM (BC/PVRTC/ETC)" - -#~ msgid "Convert Images (*.png):" -#~ msgstr "Convertir les images (*.png) :" - -#~ msgid "Compress for Disk (Lossy) Quality:" -#~ msgstr "Qualité de la compression pour le disque (avec perte) :" - -#~ msgid "Shrink All Images:" -#~ msgstr "Réduire toutes les images :" - -#~ msgid "Compress Formats:" -#~ msgstr "Compresser les formats :" - -#~ msgid "Groups:" -#~ msgstr "Groupes :" - -#~ msgid "Compress Disk" -#~ msgstr "Compression pour le disque" - -#~ msgid "Compress RAM" -#~ msgstr "Compression pour la RAM" - -#~ msgid "Compress Mode:" -#~ msgstr "Mode de compression :" - -#~ msgid "Lossy Quality:" -#~ msgstr "Qualité de compression avec perte :" - -#~ msgid "Atlas:" -#~ msgstr "Atlas :" - -#~ msgid "Shrink By:" -#~ msgstr "Réduire de :" - -#~ msgid "Preview Atlas" -#~ msgstr "Aperçu de l'atlas" - -#~ msgid "Images:" -#~ msgstr "Images :" - -#~ msgid "Select None" -#~ msgstr "Ne rien sélectionner" - -#~ msgid "Group" -#~ msgstr "Groupe" - -#~ msgid "Samples" -#~ msgstr "Échantillons" - -#~ msgid "Sample Conversion Mode: (.wav files):" -#~ msgstr "Mode de conversion des échantillons (fichiers .wav) :" - -#~ msgid "Compress (RAM - IMA-ADPCM)" -#~ msgstr "Compresser (RAM - IMA-ADPCM)" - -#~ msgid "Sampling Rate Limit (Hz):" -#~ msgstr "Limite de taux d'échantillonage (Hz) :" - -#~ msgid "Trim" -#~ msgstr "Rogner" - -#~ msgid "Trailing Silence:" -#~ msgstr "Silence de fin :" - -#~ msgid "Script Export Mode:" -#~ msgstr "Mode d'exportation des scripts :" - -#~ msgid "Text" -#~ msgstr "Texte" - -#~ msgid "Compiled" -#~ msgstr "Compilé" - -#~ msgid "Encrypted (Provide Key Below)" -#~ msgstr "Chiffré (insérez une clé ci-dessous)" - -#~ msgid "Script Encryption Key (256-bits as hex):" -#~ msgstr "Clé de chiffrement des scripts (256 bits en hexadécimal) :" - -#~ msgid "Export Project PCK" -#~ msgstr "Exporter le PCK du projet" - -#~ msgid "Export..." -#~ msgstr "Exporter…" - -#~ msgid "Project Export" -#~ msgstr "Exportation de projet" - -#~ msgid "BakedLightInstance does not contain a BakedLight resource." -#~ msgstr "La BakedLightInstance ne contient pas de ressource BakedLight." - -#~ msgid "Lighting" -#~ msgstr "Éclairage" - -#~ msgid "Global" -#~ msgstr "Global" - -#~ msgid "" -#~ "This item cannot be made visible because the parent is hidden. Unhide the " -#~ "parent first." -#~ msgstr "" -#~ "Cet objet ne peut être rendu visible car son parent est caché. Affichez " -#~ "le parent d'abord." - -#~ msgid "" -#~ "Paths cannot start with '/', absolute paths must start with 'res://', " -#~ "'user://', or 'local://'" -#~ msgstr "" -#~ "Les chemins ne peuvent pas commencer par '/', les chemins absolus doivent " -#~ "commencer par 'res://', 'user://' ou 'local://'" - -#~ msgid "File exists" -#~ msgstr "Le fichier existe" - -#~ msgid "Valid path" -#~ msgstr "Chemin valide" - -#~ msgid "Cannot go into subdir:" -#~ msgstr "Impossible d'aller dans le sous-répertoire :" - -#~ msgid "Imported Resources" -#~ msgstr "Ressources importées" - -#~ msgid "Top (Num7)" -#~ msgstr "Dessus (Pavé num. 7)" - -#~ msgid "Bottom (Shift+Num7)" -#~ msgstr "Dessous (Maj+Pavé num. 7)" - -#~ msgid "Left (Num3)" -#~ msgstr "Gauche (Pavé num. 3)" - -#~ msgid "Right (Shift+Num3)" -#~ msgstr "Droite (Maj+Pavé num. 3)" - -#~ msgid "Front (Num1)" -#~ msgstr "Devant (Pavé num. 1)" - -#~ msgid "Rear (Shift+Num1)" -#~ msgstr "Arrière (Maj+Pavé num. 1)" - -#~ msgid "Perspective (Num5)" -#~ msgstr "Perspective (Pavé num. 5)" - -#~ msgid "Orthogonal (Num5)" -#~ msgstr "Orthogonale (Pavé num. 5)" - -#~ msgid "Selection (F)" -#~ msgstr "Sélection (F)" - -#~ msgid "Align with view (Ctrl+Shift+F)" -#~ msgstr "Aligner avec la vue (Ctrl+Maj+F)" - -#~ msgid "Enable/Disable interpolation when looping animation." -#~ msgstr "Activer/Désactiver l'interpolation lors de la boucle d'animation." - -#~ msgid "Load Layout" -#~ msgstr "Charger la disposition" - -#~ msgid "Inherit Scene" -#~ msgstr "Hériter la scène" - -#~ msgid "Method In Node:" -#~ msgstr "Méthode dans le nÅ“ud :" - -#~ msgid "Set Params" -#~ msgstr "Définir paramètres" - -#~ msgid "Live Editing" -#~ msgstr "Édition en direct" - -#~ msgid "File Server" -#~ msgstr "Serveur de fichiers" - -#~ msgid "Deploy File Server Clients" -#~ msgstr "Déployer des clients de serveur de fichiers" - -#~ msgid "Group Editor" -#~ msgstr "Éditeur de groupes" - -#~ msgid "Overwrite Existing Scene" -#~ msgstr "Écraser la scène existante" - -#~ msgid "Overwrite Existing, Keep Materials" -#~ msgstr "Écraser l'existant, conserver les matériaux" - -#~ msgid "Keep Existing, Merge with New" -#~ msgstr "Conserver l'existant, fusionner avec les nouveautés" - -#~ msgid "Keep Existing, Ignore New" -#~ msgstr "Conserver l'existant, ignorer les nouveautés" - -#~ msgid "This Time:" -#~ msgstr "Cette fois :" - -#~ msgid "Next Time:" -#~ msgstr "Les prochaines fois :" - -#~ msgid "%d frames" -#~ msgstr "%d images" - -#~ msgid "" -#~ "NOTICE: You are not forced to import textures for 2D projects. Just copy " -#~ "your .jpg or .png files to your project, and change export options later. " -#~ "Atlases can be generated on export too." -#~ msgstr "" -#~ "NOTICE : Vous n'êtes pas obligé d'importer des textures pour des projets " -#~ "en 2D. Copiez simplement vos fichiers .jpg ou .png dans le projet, et " -#~ "modifiez les options d'exportation par la suite. Vous pouvez également " -#~ "générer des atlas à l'exportation." - -#~ msgid "Merging..." -#~ msgstr "Fusion..." diff --git a/editor/translations/he.po b/editor/translations/he.po index ed2657f46b..e23a98390e 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -2,25 +2,26 @@ # Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. # Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) # This file is distributed under the same license as the Godot source code. -# # Daniel <lorddaniel09@gmail.com>, 2018. # Ben Golan <golanben4@gmail.com>, 2017. # Luc Stepniewski <lior@gradstein.info>, 2017. # Yaron Shahrabani <sh.yaron@gmail.com>, 2018. -# +# RaikaRakka <shaiyatta@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-04-18 16:38+0000\n" -"Last-Translator: Daniel <lorddaniel09@gmail.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:40+0100\n" +"Last-Translator: RaikaRakka <shaiyatta@gmail.com>\n" "Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/" "godot/he/>\n" "Language: he\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 3.0-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -267,7 +268,6 @@ msgstr "ליצור %d רצועות חדשות ×•×œ×”×›× ×™×¡ מפתחות?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -545,15 +545,19 @@ msgstr "להחליף הכול" msgid "Selection Only" msgstr "בחירה בלבד" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "להתקרב" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "להתרחק" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "×יפוס התקריב" @@ -564,8 +568,8 @@ msgstr "×זהרות" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "להתקרב" +msgid "Font Size:" +msgstr "מבט קדמי" #: editor/code_editor.cpp msgid "Line:" @@ -727,8 +731,8 @@ msgid "Recent:" msgstr "××—×¨×•× ×™×:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "חיפוש:" @@ -775,8 +779,7 @@ msgid "Resource" msgstr "מש×ב" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "× ×ª×™×‘" @@ -1229,8 +1232,7 @@ msgid "Node Name:" msgstr "×©× ×”×ž×¤×¨×§:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "ש×" @@ -1706,6 +1708,12 @@ msgstr "×œ× × ×™×ª×Ÿ לבצע פעולה זו ×œ×œ× ×©×•×¨×© ×”×¢×¥." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2112,7 +2120,7 @@ msgid "Undo" msgstr "ביטול" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "ביצוע חוזר" @@ -2136,7 +2144,7 @@ msgstr "הגדרות מיז×" msgid "Export" msgstr "ייצו×" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "כלי×" @@ -2556,6 +2564,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2572,8 +2586,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2995,7 +3008,7 @@ msgstr "שכפול…" msgid "Move To..." msgstr "העברה ×ל…" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "פתיחת סקריפט מהירה…" @@ -3137,7 +3150,7 @@ msgstr "הפעולה ‚%s’ כבר קיימת!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "×©× ×©×’×•×™." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3392,14 +3405,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "יצירת מצולע" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "עריכת מצולע" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3407,29 +3420,33 @@ msgid "Insert Point" msgstr "הוספת × ×§×•×“×”" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "עריכת מצולע (הסרת × ×§×•×“×”)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "הסרת מצולע ×•× ×§×•×“×”" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "יצירת מצולע חדש מ×פס" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "מחיקת × ×§×•×“×•×ª" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." msgstr "מחיקת × ×§×•×“×•×ª" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3476,17 +3493,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "מחיקת × ×§×•×“×•×ª" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "מחיקת × ×§×•×“×•×ª" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "הזזת × ×§×•×“×”" @@ -3564,7 +3570,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4112,7 +4117,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4262,21 +4267,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "להתרחק" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "להתרחק" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "להתקרב" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4534,8 +4537,17 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "" +#, fuzzy +msgid "Create Polygon3D" +msgstr "יצירת מצולע" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "עריכת מצולע" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "עריכת מצולע (הסרת × ×§×•×“×”)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4637,35 +4649,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5035,6 +5021,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5062,6 +5052,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5077,11 +5071,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "מחיקת × ×§×•×“×”" @@ -5138,6 +5127,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5149,7 +5142,14 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" +msgstr "×©×™× ×•×™ ×§× ×” מידה של מצולע" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5193,10 +5193,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "התמרה" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "פתיחת עורך דו־ממד" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5220,11 +5230,7 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "יצירת מצולע" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "הזזת × ×§×•×“×”" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5252,20 +5258,20 @@ msgid "Scale Polygon" msgstr "×©×™× ×•×™ ×§× ×” מידה של מצולע" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "יש לבחור פריט הגדרה ×§×•×“× ×›×œ!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5410,19 +5416,23 @@ msgid "Error saving file!" msgstr "שגי××” בשמירה" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "שגי××” בשמירת ערכת העיצוב" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "שגי××” בשמירה" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "שגי××” ×‘×™×™×‘×•× ×¢×¨×›×ª ×”× ×•×©×" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "שגי××” בייבו×" #: editor/plugins/script_editor_plugin.cpp @@ -5445,6 +5455,14 @@ msgid "Import Theme" msgstr "×™×™×‘×•× ×¢×¨×›×ª עיצוב" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "שגי××” בשמירת ערכת העיצוב" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "שגי××” בשמירה" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "שמירת ערכת עיצוב בש×…" @@ -5485,8 +5503,9 @@ msgid "File" msgstr "קובץ" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "" +#, fuzzy +msgid "Open..." +msgstr "פתיחה" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5515,6 +5534,11 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "×™×™×‘×•× ×¢×¨×›×ª עיצוב" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "×¨×¢× ×•×Ÿ ערכת העיצוב" @@ -5523,10 +5547,6 @@ msgid "Save Theme" msgstr "שמירת ערכת העיצוב" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "שמירת ערכת העיצוב בש×" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "סגירת מסמכי×" @@ -5636,6 +5656,10 @@ msgstr "" msgid "Go to Function" msgstr "מעבר ×œ×¤×•× ×§×¦×™×”â€¦" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "× ×™×ª×Ÿ להשמיט מש××‘×™× ×ž×ž×¢×¨×›×ª ×”×§×‘×¦×™× ×‘×œ×‘×“." @@ -5668,10 +5692,6 @@ msgstr "הגדלת ×ות ר××©×•× ×”" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6380,11 +6400,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6627,12 +6652,13 @@ msgid "Clear transform" msgstr "התמרה" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "להסיר ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™× ×ž×”×ž×™×–×? (××™ ×פשר לשחזר)" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6643,13 +6669,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "הדבקת ×ž×©×ª× ×™×" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "מחיקת × ×§×•×“×•×ª" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "יצירת מצולע" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6679,15 +6726,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "מחיקת × ×§×•×“×•×ª" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6705,12 +6762,18 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "This property can't be changed." msgstr "×œ× × ×™×ª×Ÿ לבצע פעולה זו ×œ×œ× ×¡×¦× ×”." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6728,6 +6791,10 @@ msgid "Light" msgstr "ימין" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6766,7 +6833,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "×™×™×¦×•× ×ž×™×–×" #: editor/project_export.cpp @@ -7293,7 +7360,7 @@ msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" -msgstr "" +msgstr "כללי" #: editor/project_settings_editor.cpp msgid "Override For..." @@ -8241,7 +8308,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9090,7 +9157,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9135,7 +9202,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "PathFollow2D עובד רק ×›×שר ×”×•× ×ž×•×’×“×¨ כצ××¦× ×©×œ מפרק Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9225,6 +9294,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "מצב גולמי" @@ -9241,6 +9314,10 @@ msgstr "" msgid "Please Confirm..." msgstr "× × ×œ×מת…" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9297,10 +9374,6 @@ msgstr "גודל הגופן שגוי." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9318,6 +9391,27 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "יצירת מצולע" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "יצירת מצולע חדש מ×פס" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "להתרחק" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "להתקרב" + +#~ msgid "Save Theme As" +#~ msgstr "שמירת ערכת העיצוב בש×" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "להתקרב" + #~ msgid "Class List:" #~ msgstr "רשימת מחלקות:" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index 92f64ab6d1..1902ec7335 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -8,15 +8,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-07 18:27+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:40+0100\n" "Last-Translator: Vikram1323 <vikram1323@gmail.com>\n" "Language-Team: Hindi <https://hosted.weblate.org/projects/godot-engine/godot/" "hi/>\n" "Language: hi\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -257,7 +259,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -527,15 +528,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "बड़ा करो" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "छोटा करो" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "रीसेट आकार" @@ -544,9 +549,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "बड़ा करो" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -716,8 +720,8 @@ msgid "Recent:" msgstr "हाल ही में किया:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp #, fuzzy msgid "Search:" @@ -771,8 +775,7 @@ msgid "Resource" msgstr "संसाधन" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "पथ" @@ -1242,8 +1245,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1706,6 +1708,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2103,7 +2111,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2127,7 +2135,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2539,6 +2547,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2555,8 +2569,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2979,7 +2992,7 @@ msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3106,7 +3119,7 @@ msgstr "" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "गलत फॉणà¥à¤Ÿ का आकार |" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3354,44 +3367,45 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "à¤à¤• नया बनाà¤à¤‚" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3436,16 +3450,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "à¤à¤• नया बनाà¤à¤‚" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3521,7 +3525,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4059,7 +4062,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4207,21 +4210,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "छोटा करो" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "छोटा करो" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "बड़ा करो" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4474,7 +4475,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4576,35 +4586,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4972,6 +4956,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "नोड वकà¥à¤° संपादित करें" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4999,6 +4988,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5014,11 +5007,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5075,6 +5063,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5085,7 +5077,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5127,7 +5125,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5151,12 +5158,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy -msgid "Create Polygon" -msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5184,19 +5186,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5336,20 +5338,24 @@ msgid "Error saving file!" msgstr "लोड हो रहा है तà¥à¤°à¥à¤Ÿà¤¿à¤¯à¤¾à¤!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "लोड हो रहा है तà¥à¤°à¥à¤Ÿà¤¿à¤¯à¤¾à¤!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "लोड होने मे तà¥à¤°à¥à¤Ÿà¤¿:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "लोड होने मे तà¥à¤°à¥à¤Ÿà¤¿:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "लोड होने मे तà¥à¤°à¥à¤Ÿà¤¿:" #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5369,6 +5375,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5409,8 +5423,9 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "" +#, fuzzy +msgid "Open..." +msgstr "खोलो इसे" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5438,15 +5453,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5556,6 +5571,10 @@ msgstr "" msgid "Go to Function" msgstr "कारà¥à¤¯à¥‹à¤‚:" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5588,10 +5607,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6282,11 +6297,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6525,12 +6545,13 @@ msgid "Clear transform" msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ परिणत" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "परियोजना से चयनित फ़ाइलें निकालें? (कोई पूरà¥à¤µà¤µà¤¤ नहीं)" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6541,13 +6562,32 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6577,15 +6617,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "चयनित फ़ाइलें हटाà¤à¤‚?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6603,11 +6653,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6623,6 +6679,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6659,7 +6719,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8110,7 +8170,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8955,7 +9015,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8998,7 +9058,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9088,6 +9150,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9104,6 +9170,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9160,10 +9230,6 @@ msgstr "गलत फॉणà¥à¤Ÿ का आकार |" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9182,6 +9248,18 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Zoom out" +#~ msgstr "छोटा करो" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "बड़ा करो" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "बड़ा करो" + +#, fuzzy #~ msgid "Match case" #~ msgstr "à¤à¤• जैसा:" @@ -9189,9 +9267,6 @@ msgstr "" #~ msgid "Disabled" #~ msgstr "बंद कर दिया गया है" -#~ msgid "Edit Node Curve" -#~ msgstr "नोड वकà¥à¤° संपादित करें" - #~ msgid "Thanks!" #~ msgstr "धनà¥à¤¯à¤µà¤¾à¤¦!" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 5524b9319d..fa58298d97 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -6,18 +6,21 @@ # Nagy Lajos <neutron9707@gmail.com>, 2017. # Sandor Domokos <sandor.domokos@gmail.com>, 2017-2018. # Varga Dániel <danikah.danikah@gmail.com>, 2016-2018. +# Gabor Csordas <gaborcsordas@yahoo.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-06-17 07:39+0000\n" -"Last-Translator: Ãrpád Horváth <horvatha4@googlemail.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:40+0100\n" +"Last-Translator: Varga Dániel <danikah.danikah@gmail.com>\n" "Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/" "godot/hu/>\n" "Language: hu\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.0.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -33,11 +36,11 @@ msgstr "Nincs elég bájt a bájtok dekódolására, vagy hibás formátum." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "Érvénytelen bemenet %1 (nem átadott) a kifejezésben." #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "self nem használható, mert a példány null (nincs átadva)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -133,7 +136,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Bezier Curve Track" -msgstr "" +msgstr "Bezier Görbe Nyomvonal" #: editor/animation_track_editor.cpp msgid "Audio Playback Track" @@ -219,7 +222,7 @@ msgstr "JövÅ‘" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "Legközelebbi" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp @@ -269,7 +272,6 @@ msgstr "Létrehoz %d ÚJ nyomvonalat és beilleszti a kulcsokat?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -546,15 +548,19 @@ msgstr "Mind Lecserélése" msgid "Selection Only" msgstr "Csak Kiválsztás" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "NagyÃtás" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "KicsinyÃtés" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "NagyÃtás VisszaállÃtása" @@ -564,8 +570,8 @@ msgstr "" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "NagyÃtás" +msgid "Font Size:" +msgstr "Körvonal Mérete:" #: editor/code_editor.cpp msgid "Line:" @@ -730,8 +736,8 @@ msgid "Recent:" msgstr "Legutóbbi:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Keresés:" @@ -782,8 +788,7 @@ msgid "Resource" msgstr "Forrás" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Útvonal" @@ -1243,8 +1248,7 @@ msgid "Node Name:" msgstr "Node neve:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Név" @@ -1727,6 +1731,12 @@ msgstr "Ezt a műveletet nem lehet fagyökér nélkül végrehajtani." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2179,7 +2189,7 @@ msgid "Undo" msgstr "Visszavonás" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Mégis" @@ -2203,7 +2213,7 @@ msgstr "Projekt BeállÃtások" msgid "Export" msgstr "Exportálás" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Eszközök" @@ -2642,6 +2652,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2658,8 +2674,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3090,7 +3105,7 @@ msgstr "MegkettÅ‘zés..." msgid "Move To..." msgstr "Ãthelyezés..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Szkript gyors megnyitás..." @@ -3233,7 +3248,7 @@ msgstr "HIBA: Animáció név már létezik!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Érvénytelen név." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3490,14 +3505,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Sokszög Létrehozása" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Sokszög Szerkesztése" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3505,25 +3520,28 @@ msgid "Insert Point" msgstr "Pont Beszúrása" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Sokszög Szerkesztése (Pont EltávolÃtása)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Sokszög és Pont EltávolÃtása" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Új sokszög létrehozása a semmibÅ‘l" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Pontok Törlése" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "MeglévÅ‘ sokszög módosÃtása:\n" "Bal Egérgomb: Pont Mozgatása.\n" @@ -3531,8 +3549,10 @@ msgstr "" "Jobb Egérgomb: Pont Eltörlése." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Pontok Törlése" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "Jobb Egérgomb: Pont Törlése." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3578,17 +3598,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Pontok Törlése" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Jobb Egérgomb: Pont Törlése." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Pont Mozgatása" @@ -3666,7 +3675,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4219,7 +4227,7 @@ msgstr "Mind" msgid "Plugins" msgstr "BÅ‘vÃtmények" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Rendezés:" @@ -4382,21 +4390,19 @@ msgid "Paste Pose" msgstr "Póz Beillesztése" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "KicsinyÃtés" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "KicsinyÃtés" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "NagyÃtás" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Kiválasztó Mód" @@ -4662,8 +4668,17 @@ msgstr "" "Fogd és vidd + Alt: Node tÃpusának megváltoztatása" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Poly3D Létrehozása" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Sokszög Létrehozása" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Sokszög Szerkesztése" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Sokszög Szerkesztése (Pont EltávolÃtása)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4765,37 +4780,9 @@ msgid "Item List Editor" msgstr "Elemlista SzerkesztÅ‘" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Nincs OccluderPolygon2D erÅ‘forrás ezen a Node-on.\n" -"Létrehoz egyet és hozzárendeli a Node-hoz?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Ãrnyékoló Sokszög Létrehozása" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Új sokszög létrehozása a semmibÅ‘l." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "LétezÅ‘ sokszög szerkesztése:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "Bal Egérgomb: Pont Mozgatása." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl + Bal Egérgomb: Szakasz Felosztása." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "Jobb Egérgomb: Pont Törlése." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "A háló üres!" @@ -5167,6 +5154,11 @@ msgid "Add Point to Curve" msgstr "Pont Hozzáadása a Görbéhez" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Görbe Lezárása" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Pont Mozgatása a Görbén" @@ -5194,6 +5186,11 @@ msgid "Click: Add Point" msgstr "Kattintás: Pont Hozzáadása" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Szakasz Felosztása (görbén)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Jobb Kattintás: Pont Törlése" @@ -5209,11 +5206,6 @@ msgstr "Pont Hozzáadása (üres helyre)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Szakasz Felosztása (görbén)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Pont Törlése" @@ -5270,6 +5262,10 @@ msgstr "Ki-VezérlÅ‘ Pont EltávolÃtása" msgid "Remove In-Control Point" msgstr "Be-VezérlÅ‘ Pont EltávolÃtása" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Szakasz Felosztása (görbén)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5282,10 +5278,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Csontok Mutatása" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "UV Térkép Létrehozása" @@ -5327,10 +5329,20 @@ msgid "Transform UV Map" msgstr "UV Térkép Transzformálása" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Sokszög Létrehozása" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "2D UV Sokszög SzerkesztÅ‘" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "2D UV Sokszög SzerkesztÅ‘" @@ -5355,11 +5367,7 @@ msgstr "Csontok Létrehozása" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Sokszög Létrehozása" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Pont Mozgatása" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5387,19 +5395,19 @@ msgid "Scale Polygon" msgstr "Sokszög Skálázása" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5549,19 +5557,23 @@ msgid "Error saving file!" msgstr "Hiba TileSet mentésekor!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "HIba történt a téma mentésekor" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Hiba mentés közben" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Hiba történt a téma importálásakor" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Hiba importáláskor" #: editor/plugins/script_editor_plugin.cpp @@ -5584,6 +5596,14 @@ msgid "Import Theme" msgstr "Téma Importálása" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "HIba történt a téma mentésekor" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Hiba mentés közben" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Téma Mentése Másként..." @@ -5625,8 +5645,8 @@ msgstr "Fájl" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Fájlok Megtekintése" +msgid "Open..." +msgstr "Megnyit" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5655,6 +5675,11 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Téma Importálása" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Téma Újratöltése" @@ -5663,10 +5688,6 @@ msgid "Save Theme" msgstr "Téma Mentése" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Téma Mentése Másként" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Dokumentációs Lapok Bezárása" @@ -5776,6 +5797,10 @@ msgstr "" msgid "Go to Function" msgstr "Ugrás Funkcióra..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Csak a fájlrendszerbÅ‘l eredÅ‘ erÅ‘forrásokat lehet bedobni." @@ -5809,10 +5834,6 @@ msgstr "Szó Eleji Nagybetű" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6518,11 +6539,17 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Fogantyú BeállÃtása" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6663,7 +6690,7 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp msgid "Style" -msgstr "" +msgstr "StÃlus" #: editor/plugins/theme_editor_plugin.cpp msgid "Font" @@ -6671,7 +6698,7 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp msgid "Color" -msgstr "" +msgstr "SzÃn" #: editor/plugins/theme_editor_plugin.cpp msgid "Constant" @@ -6705,7 +6732,7 @@ msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Bucket Fill" -msgstr "" +msgstr "Kitöltés egy szÃnnel" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Erase TileMap" @@ -6765,12 +6792,12 @@ msgid "Clear transform" msgstr "Animáció transzformáció változtatás" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Jelenlegi tétel eltávolÃtása" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6782,13 +6809,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "Animáció Beillesztése" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Jobb Egérgomb: Pont Törlése." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Új sokszög létrehozása a semmibÅ‘l." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6818,15 +6866,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Törli a kiválasztott fájlokat?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Pontok Törlése" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6844,13 +6902,20 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "This property can't be changed." msgstr "Ezt a műveletet nem lehet végrehajtani egy Scene nélkül." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" -msgstr "" +#, fuzzy +msgid "TileSet" +msgstr "TileSet-re..." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" @@ -6865,6 +6930,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "VisualShader" msgstr "Ãrnyaló" @@ -6904,7 +6973,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Projekt Exportálása" #: editor/project_export.cpp @@ -7055,7 +7124,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Import Existing Project" -msgstr "" +msgstr "MeglévÅ‘ Projekt Importálása" #: editor/project_manager.cpp msgid "Import & Edit" @@ -7063,7 +7132,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Create New Project" -msgstr "" +msgstr "Új Projekt Létrehozása" #: editor/project_manager.cpp msgid "Create & Edit" @@ -7229,19 +7298,19 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Device" -msgstr "" +msgstr "Eszköz" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Shift+" -msgstr "" +msgstr "Shift+" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Alt+" -msgstr "" +msgstr "Alt+" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Control+" -msgstr "" +msgstr "Control+" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Press a Key..." @@ -7293,7 +7362,7 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Axis" -msgstr "" +msgstr "Tengely" #: editor/project_settings_editor.cpp msgid "Joypad Button Index:" @@ -7313,19 +7382,19 @@ msgstr "" #: editor/project_settings_editor.cpp msgid "Button" -msgstr "" +msgstr "Gomb" #: editor/project_settings_editor.cpp msgid "Left Button." -msgstr "" +msgstr "Bal Egérgomb." #: editor/project_settings_editor.cpp msgid "Right Button." -msgstr "" +msgstr "Jobb Egérgomb." #: editor/project_settings_editor.cpp msgid "Middle Button." -msgstr "" +msgstr "KözépsÅ‘ Egérgomb." #: editor/project_settings_editor.cpp msgid "Wheel Up." @@ -8376,7 +8445,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9231,7 +9300,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9274,7 +9343,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9369,6 +9440,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Az animációs fa érvénytelen." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9385,6 +9460,10 @@ msgstr "Figyelem!" msgid "Please Confirm..." msgstr "Kérem ErÅ‘sÃtse Meg..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9446,10 +9525,6 @@ msgstr "Érvénytelen betűtÃpus méret." msgid "Input" msgstr "Bemenet Hozzáadása" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9467,6 +9542,53 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Sokszög Létrehozása" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Új sokszög létrehozása a semmibÅ‘l" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "KicsinyÃtés" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "NagyÃtás" + +#~ msgid "Create Poly3D" +#~ msgstr "Poly3D Létrehozása" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Nincs OccluderPolygon2D erÅ‘forrás ezen a Node-on.\n" +#~ "Létrehoz egyet és hozzárendeli a Node-hoz?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "LétezÅ‘ sokszög szerkesztése:" + +#~ msgid "LMB: Move Point." +#~ msgstr "Bal Egérgomb: Pont Mozgatása." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl + Bal Egérgomb: Szakasz Felosztása." + +#~ msgid "RMB: Erase Point." +#~ msgstr "Jobb Egérgomb: Pont Törlése." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Fájlok Megtekintése" + +#~ msgid "Save Theme As" +#~ msgstr "Téma Mentése Másként" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "NagyÃtás" + #~ msgid "Class List:" #~ msgstr "Osztálylista:" diff --git a/editor/translations/id.po b/editor/translations/id.po index 04d72d94d2..2641fa5c42 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -18,15 +18,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-07-15 12:38+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:40+0100\n" "Last-Translator: Romi Kusuma Bakti <romikusumab@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.1-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -277,7 +279,6 @@ msgstr "Buat track BARU %d dan masukkan tombol-tombol?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -554,15 +555,19 @@ msgstr "Ganti Semua" msgid "Selection Only" msgstr "Hanya yang Dipilih" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Perbesar Pandangan" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Perkecil Pandangan" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Kebalikan Semula Pandangan" @@ -572,8 +577,8 @@ msgstr "" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "Perbesar Pandangan" +msgid "Font Size:" +msgstr "Tampilan Depan." #: editor/code_editor.cpp msgid "Line:" @@ -739,8 +744,8 @@ msgid "Recent:" msgstr "Saat ini:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Cari:" @@ -791,8 +796,7 @@ msgid "Resource" msgstr "Resource" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Path" @@ -1256,8 +1260,7 @@ msgid "Node Name:" msgstr "Nama Node:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nama" @@ -1740,6 +1743,12 @@ msgstr "Operasi ini tidak dapat diselesaikan tanpa root pohon." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2183,7 +2192,7 @@ msgid "Undo" msgstr "Batal" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Ulangi" @@ -2207,7 +2216,7 @@ msgstr "Pengaturan Proyek" msgid "Export" msgstr "Ekspor" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Alat" @@ -2645,6 +2654,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2661,8 +2676,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "New Script" msgstr "Scene Baru" @@ -3098,7 +3112,7 @@ msgstr "Gandakan..." msgid "Move To..." msgstr "Pindahkan ke..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Scene Baru" @@ -3241,7 +3255,7 @@ msgstr "KESALAHAN: Nama animasi sudah ada!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Nama tidak sah." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3499,16 +3513,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Poly" +msgid "Create Polygon" msgstr "Buat Bidang" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #, fuzzy -msgid "Edit Poly" +msgid "Edit Polygon" msgstr "Sunting Bidang" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3516,28 +3528,28 @@ msgid "Insert Point" msgstr "Tambah Titik" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Sunting Bidang (Hapus Titik)" #: editor/plugins/abstract_polygon_2d_editor.cpp #, fuzzy -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "Hapus Bidang dan Titik" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create a new polygon from scratch" -msgstr "Buat bidang baru dari awal" +msgid "Create points." +msgstr "Hapus Titik" #: editor/plugins/abstract_polygon_2d_editor.cpp #, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Sunting bidang yang ada:\n" "LMB: Pindahkan Titik.\n" @@ -3545,8 +3557,10 @@ msgstr "" "RMB: Hapus Titik." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Hapus Titik" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "Beri Skala Seleksi" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3591,17 +3605,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Hapus Titik" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Beri Skala Seleksi" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3680,7 +3683,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Tambahkan Node" @@ -4247,7 +4249,7 @@ msgstr "Semua" msgid "Plugins" msgstr "Pengaya" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sortir:" @@ -4409,21 +4411,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Perkecil Pandangan" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Perkecil Pandangan" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Perbesar Pandangan" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4683,8 +4683,18 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Buat Bidang" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +#, fuzzy +msgid "Edit Poly" +msgstr "Sunting Bidang" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Sunting Bidang (Hapus Titik)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4793,36 +4803,9 @@ msgid "Item List Editor" msgstr "Penyunting Daftar Item" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -#, fuzzy -msgid "Edit existing polygon:" -msgstr "Sunting poligon yang ada:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5193,6 +5176,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Sunting Kurva Node" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5220,6 +5208,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5235,11 +5227,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5300,6 +5287,10 @@ msgstr "Hapus Autoload" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5311,7 +5302,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5356,11 +5353,21 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Buat Bidang" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Penyunting UV Poligon 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy msgid "Polygon 2D UV Editor" msgstr "Penyunting UV Poligon 2D" @@ -5383,12 +5390,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Buat Bidang" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Hapus Sinyal" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5415,20 +5418,20 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Pilih Berkas untuk Dipindai" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5575,20 +5578,24 @@ msgid "Error saving file!" msgstr "Error menyimpan TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Error saat menyimpan." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Galat saat memindahkan:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Galat saat mengimpor:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Galat saat mengimpor:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5610,6 +5617,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5652,8 +5667,8 @@ msgstr "Berkas" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "File:" +msgid "Open..." +msgstr "Buka" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5684,6 +5699,11 @@ msgid "Theme" msgstr "Simpan Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Mengimpor scene..." + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Muat Ulang Tema" @@ -5692,10 +5712,6 @@ msgid "Save Theme" msgstr "Simpan Tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Simpan Tema Sebagai" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Tutup Dokumentasi" @@ -5806,6 +5822,10 @@ msgstr "" msgid "Go to Function" msgstr "Tambahkan Fungsi" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5838,10 +5858,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6562,11 +6578,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6815,12 +6836,12 @@ msgstr "Ubah Transformasi Animasi" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Tambahkan Node (Node-node) dari Tree" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Hapus Sinyal" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6832,13 +6853,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Tempelkan Animasi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Beri Skala Seleksi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Buat Bidang" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6868,16 +6910,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Hapus file yang dipilih?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Simpan sumber yang sedang diatur." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Hapus Titik" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Simpan sumber yang sedang diatur." @@ -6896,12 +6949,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Simpan sumber yang sedang diatur." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Operasi ini tidak dapat diselesaikan tanpa scene." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6919,6 +6979,11 @@ msgid "Light" msgstr "Kanan" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Tambahkan Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6960,7 +7025,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Ekspor Projek" #: editor/project_export.cpp @@ -8494,7 +8559,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "Argumen langkah adalah nol!" #: modules/gdscript/gdscript_functions.cpp @@ -9433,7 +9499,7 @@ msgstr "" "ciptakan sebuah resource bentuk untuk itu!" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9486,7 +9552,9 @@ msgstr "" "node Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9585,6 +9653,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9602,6 +9674,10 @@ msgstr "Peringatan!" msgid "Please Confirm..." msgstr "Mohon konfirmasi..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9669,10 +9745,6 @@ msgstr "Ukuran font tidak sah." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9690,6 +9762,37 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "Create Poly" +#~ msgstr "Buat Bidang" + +#, fuzzy +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Buat bidang baru dari awal" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Perkecil Pandangan" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Perbesar Pandangan" + +#, fuzzy +#~ msgid "Edit existing polygon:" +#~ msgstr "Sunting poligon yang ada:" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "File:" + +#~ msgid "Save Theme As" +#~ msgstr "Simpan Tema Sebagai" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Perbesar Pandangan" + #~ msgid "Class List:" #~ msgstr "Daftar Class:" @@ -9769,9 +9872,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "Ubah Trek Anim ke Wrap Mode" -#~ msgid "Edit Node Curve" -#~ msgstr "Sunting Kurva Node" - #~ msgid "Edit Selection Curve" #~ msgstr "Edit Kurva Pilihan" @@ -10043,9 +10143,6 @@ msgstr "" #~ msgid "Texture Options" #~ msgstr "Opsi Tekstur" -#~ msgid "Error importing:" -#~ msgstr "Galat saat mengimpor:" - #~ msgid "Max Texture Size:" #~ msgstr "Ukuran Tekstur Maksimum:" diff --git a/editor/translations/is.po b/editor/translations/is.po index 518e43ac10..cc1a74d971 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -7,15 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-15 19:30+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:40+0100\n" "Last-Translator: Jóhannes G. Þorsteinsson <johannesg@johannesg.com>\n" "Language-Team: Icelandic <https://hosted.weblate.org/projects/godot-engine/" "godot/is/>\n" "Language: is\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -262,7 +264,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -535,15 +536,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -552,7 +557,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -710,8 +715,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -758,8 +763,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1211,8 +1215,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1668,6 +1671,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2065,7 +2074,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2089,7 +2098,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2500,6 +2509,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2516,8 +2531,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2931,7 +2945,7 @@ msgstr "Hreyfimynd Tvöfalda Lykla" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3054,7 +3068,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3300,44 +3314,43 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Breyta Viðbót" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3382,15 +3395,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3466,7 +3470,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4001,7 +4004,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4149,15 +4152,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4413,7 +4416,15 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4515,35 +4526,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4911,6 +4896,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Breyta hnútnum Ferill" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4938,6 +4928,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4953,11 +4947,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5014,6 +5003,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5024,7 +5017,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5065,7 +5064,15 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5089,11 +5096,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5121,19 +5124,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5271,19 +5274,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5303,6 +5306,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5343,7 +5354,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5372,15 +5383,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5487,6 +5498,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5519,10 +5534,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6211,11 +6222,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6454,12 +6470,13 @@ msgid "Clear transform" msgstr "Breyta umbreytingu" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "Fjarlægja val" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6470,13 +6487,31 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6506,15 +6541,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Afrita val" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Afrita val" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6532,11 +6577,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6552,6 +6603,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6588,7 +6643,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8035,7 +8090,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8879,7 +8934,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8922,7 +8977,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9010,6 +9067,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9026,6 +9087,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9082,10 +9147,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" @@ -9127,10 +9188,6 @@ msgstr "" #~ msgstr "Anim track breyta hulum ham" #, fuzzy -#~ msgid "Edit Node Curve" -#~ msgstr "Breyta hnútnum Ferill" - -#, fuzzy #~ msgid "Anim Add Key" #~ msgstr "Anim bæta við lykli" diff --git a/editor/translations/it.po b/editor/translations/it.po index 3a1f0a2dd2..2906fabba7 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-11-16 16:07+0000\n" +"PO-Revision-Date: 2018-12-13 14:40+0100\n" "Last-Translator: Davide Wayan Mores <moresdavidewayan@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" @@ -36,7 +36,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.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -290,7 +290,6 @@ msgstr "Creare %d NUOVE tracce e inserire key?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -568,15 +567,19 @@ msgstr "Rimpiazza Tutti" msgid "Selection Only" msgstr "Solo Selezione" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoom In" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zoom Out" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Resetta Zoom" @@ -587,8 +590,8 @@ msgstr "Avvertimento" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "Zoom(%):" +msgid "Font Size:" +msgstr "Dimensione Font sorgente:" #: editor/code_editor.cpp msgid "Line:" @@ -754,8 +757,8 @@ msgid "Recent:" msgstr "Recenti:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Cerca:" @@ -806,8 +809,7 @@ msgid "Resource" msgstr "Risorsa" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Percorso" @@ -1273,8 +1275,7 @@ msgid "Node Name:" msgstr "Nome Nodo:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nome" @@ -1758,6 +1759,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2207,7 +2214,7 @@ msgid "Undo" msgstr "Annulla" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Redo" @@ -2231,7 +2238,7 @@ msgstr "Impostazioni Progetto" msgid "Export" msgstr "Esporta" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Strumenti" @@ -2672,6 +2679,12 @@ msgstr "Assegna" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2688,8 +2701,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "Scegli una Vista" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Nuovo Script" @@ -3126,7 +3138,7 @@ msgstr "Duplica..." msgid "Move To..." msgstr "Sposta in..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Nuovo Script" @@ -3269,7 +3281,7 @@ msgstr "ERRORE: Il nome dell'animazione esiste già !" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Nome Invalido." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3528,14 +3540,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Crea Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Modifica Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3543,25 +3555,28 @@ msgid "Insert Point" msgstr "Inserisci Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Modifica Poly (Rimuovi Punto)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Rimuovi Poligono e Punto" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Crea un nuovo poligono da zero" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Elimina Punti" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Modifica poligono esistente:\n" "LMB: muovi punto.\n" @@ -3569,8 +3584,10 @@ msgstr "" "RMB: cancella punto." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Elimina Punti" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "RMB: Elimina Punto." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3616,17 +3633,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Elimina Punti" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "RMB: Elimina Punto." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Sposta Punto" @@ -3705,7 +3711,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Aggiungi Nodo" @@ -4259,7 +4264,7 @@ msgstr "Tutti" msgid "Plugins" msgstr "Plugins" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Ordina:" @@ -4421,21 +4426,19 @@ msgid "Paste Pose" msgstr "Incolla Posa" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Zoom Out" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Zoom Reset" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Zoom In" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Modalità di Selezione" @@ -4702,8 +4705,17 @@ msgstr "" "Premi & Trascina + Alt : Cambia tipo del nodo" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Crea Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Crea Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Modifica Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Modifica Poly (Rimuovi Punto)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4810,38 +4822,9 @@ msgid "Item List Editor" msgstr "Editor Lista Elementi" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -#, fuzzy -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Nessuna risorsa OccluderPolygon2D su questo nodo.\n" -"Crearne una ed assegnarla?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Crea Poligono di occlusione" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Crea un nuovo poligono dal nulla." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Modifica poligono esistente:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: Sposta punto." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+LMB: dividi Segmento." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Elimina Punto." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "La mesh è vuota!" @@ -5217,6 +5200,11 @@ msgid "Add Point to Curve" msgstr "Aggiungi Punto a Curva" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Chiudi curva" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Sposta Punto in curva" @@ -5244,6 +5232,11 @@ msgid "Click: Add Point" msgstr "Click: Aggiungi Punto" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Spezza Segmento (in curva)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Click Destro: Elimina Punto" @@ -5259,11 +5252,6 @@ msgstr "Aggiungi Punto (in sapzio vuoto)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Spezza Segmento (in curva)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Elimina Punto" @@ -5320,6 +5308,10 @@ msgstr "Rimuovi Punto Out-Control" msgid "Remove In-Control Point" msgstr "Rimuovi Punto In-Control" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Spezza Segmento (in curva)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5332,10 +5324,19 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Mostra Ossa" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" +"Nessuna texture in questo nodo.\n" +"Imposta una texture per poter modificare la regione." + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Crea UV Map" @@ -5377,10 +5378,20 @@ msgid "Transform UV Map" msgstr "Trasla UV Map" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Tipo Transform" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Polygon 2D UV Editor" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Polygon 2D UV Editor" @@ -5405,11 +5416,7 @@ msgstr "Crea Ossa" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Crea Poly" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Sposta Punto" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5437,20 +5444,20 @@ msgid "Scale Polygon" msgstr "Scala Poligono" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Prima seleziona un oggetto di impostazione!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5600,19 +5607,23 @@ msgid "Error saving file!" msgstr "Errore di salvataggio TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Errore durante il salvataggio del tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Errore di salvataggio" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Errore di importazione tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Errore di importazione" #: editor/plugins/script_editor_plugin.cpp @@ -5635,6 +5646,14 @@ msgid "Import Theme" msgstr "Importa Tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Errore durante il salvataggio del tema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Errore di salvataggio" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Salva Tema Come..." @@ -5677,8 +5696,8 @@ msgstr "File" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Vedi Files" +msgid "Open..." +msgstr "Apri" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5707,6 +5726,11 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importa Tema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Ricarica Tema" @@ -5715,10 +5739,6 @@ msgid "Save Theme" msgstr "Salva Tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Salva Tema Come" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Chiudi Documentazione" @@ -5828,6 +5848,10 @@ msgstr "" msgid "Go to Function" msgstr "Vai a Funzione..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Only resources from filesystem can be dropped." @@ -5862,10 +5886,6 @@ msgstr "Aggiungi maiuscola iniziale" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6581,11 +6601,18 @@ msgid "Set Region Rect" msgstr "Imposta Region Rect" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Imposta Maniglia" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Modalità Snap:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<Nessuno>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6833,12 +6860,12 @@ msgstr "Transform" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Aggiungi Nodo(i) Da Albero" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Rimuovi Punto Percorso" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6850,13 +6877,34 @@ msgid "Merge from Scene" msgstr "Unisci da Scena" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Incolla Animazione" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "RMB: Elimina Punto." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Crea un nuovo poligono dal nulla." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6886,16 +6934,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Eliminare i file selezionati?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Salva la risorsa in modifica." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Elimina Punti" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Salva la risorsa in modifica." @@ -6914,11 +6973,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Salva la risorsa in modifica." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Questa operazione non può essere eseguita senza una scena." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6937,6 +7004,11 @@ msgstr "Destra" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Aggiungi Nodo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Shader" @@ -6978,7 +7050,7 @@ msgstr "Aggiungi..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Preset Esportazione:" #: editor/project_export.cpp @@ -8545,7 +8617,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "step argument è zero!" #: modules/gdscript/gdscript_functions.cpp @@ -9525,7 +9598,7 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "Nulla é visibile perché le mesh non sono state assegnate ai draw pass." #: scene/3d/cpu_particles.cpp @@ -9579,7 +9652,9 @@ msgstr "" "Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9688,6 +9763,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Animation tree invalido." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" @@ -9705,6 +9784,10 @@ msgstr "Attenzione!" msgid "Please Confirm..." msgstr "Per Favore Conferma..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9775,11 +9858,6 @@ msgstr "Dimensione font Invalida." msgid "Input" msgstr "Aggiungi Input" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Nessuno>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9797,6 +9875,57 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Crea Poly" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Crea un nuovo poligono da zero" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Zoom Out" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Zoom In" + +#~ msgid "Create Poly3D" +#~ msgstr "Crea Poly3D" + +#, fuzzy +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Nessuna risorsa OccluderPolygon2D su questo nodo.\n" +#~ "Crearne una ed assegnarla?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Modifica poligono esistente:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: Sposta punto." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+LMB: dividi Segmento." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Elimina Punto." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Vedi Files" + +#~ msgid "Save Theme As" +#~ msgstr "Salva Tema Come" + +#~ msgid "<None>" +#~ msgstr "<Nessuno>" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Zoom(%):" + #~ msgid "Class List:" #~ msgstr "Lista Classi:" @@ -10528,9 +10657,6 @@ msgstr "" #~ msgid "Source Font:" #~ msgstr "Font Sorgente:" -#~ msgid "Source Font Size:" -#~ msgstr "Dimensione Font sorgente:" - #~ msgid "Dest Resource:" #~ msgstr "Risorsa di destin. :" @@ -11374,13 +11500,6 @@ msgstr "" #~ msgid "Scale Region Editor" #~ msgstr "Scala Editor Regioni" -#~ msgid "" -#~ "No texture in this node.\n" -#~ "Set a texture to be able to edit region." -#~ msgstr "" -#~ "Nessuna texture in questo nodo.\n" -#~ "Imposta una texture per poter modificare la regione." - #~ msgid "Inherit Scene" #~ msgstr "Eredita Scena" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index e2db7c16d1..1a7f3d5bfe 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -18,18 +18,21 @@ # sugusan <sugusan.development@gmail.com>, 2018. # Nathan Lovato <nathan.lovato.art@gmail.com>, 2018. # nyanode <akaruooyagi@yahoo.co.jp>, 2018. +# nitenook <admin@alterbaum.net>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-09 09:33+0000\n" -"Last-Translator: nyanode <akaruooyagi@yahoo.co.jp>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" +"Last-Translator: nitenook <admin@alterbaum.net>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" "Language: ja\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.2.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -52,11 +55,11 @@ msgstr "インスタンス㌠null ã®ãŸã‚ã€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" @@ -68,7 +71,7 @@ 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 @@ -194,7 +197,7 @@ msgstr "ã“ã®ãƒˆãƒ©ãƒƒã‚¯ã‚’除去ã™ã‚‹ã€‚" #: editor/animation_track_editor.cpp msgid "Time (s): " -msgstr "時間: " +msgstr "時間 (秒): " #: editor/animation_track_editor.cpp msgid "Continuous" @@ -262,7 +265,6 @@ msgstr "%d æ–°è¦ãƒˆãƒ©ãƒƒã‚¯ã‚’作æˆã—ã€ã‚ーを挿入ã—ã¾ã™ã‹ï¼Ÿ" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -413,12 +415,10 @@ msgid "Delete Selection" msgstr "é¸æŠžç¯„囲を削除" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "次ã®ã‚¹ãƒ†ãƒƒãƒ—ã¸" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "å‰ã®ã‚¹ãƒ†ãƒƒãƒ—ã¸" @@ -542,15 +542,19 @@ msgstr "ã™ã¹ã¦ç½®æ›" msgid "Selection Only" msgstr "é¸æŠžç¯„囲ã®ã¿" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "ズームイン" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "ズームアウト" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "ズームをリセット" @@ -559,8 +563,8 @@ msgid "Warnings:" msgstr "è¦å‘Š:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "ズーム:" +msgid "Font Size:" +msgstr "フォントサイズ:" #: editor/code_editor.cpp msgid "Line:" @@ -579,8 +583,8 @@ msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" -"対象メソッドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ï¼ã€€æœ‰åŠ¹ãªãƒ¡ã‚½ãƒƒãƒ‰ã‚’指定ã™ã‚‹ã‹ã€å¯¾è±¡ãƒŽãƒ¼ãƒ‰ã«ã‚¹ã‚¯" -"リプトを添付ã—ã¦ãã ã•ã„。" +"対象メソッドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ï¼æœ‰åŠ¹ãªãƒ¡ã‚½ãƒƒãƒ‰ã‚’指定ã™ã‚‹ã‹ã€å¯¾è±¡ãƒŽãƒ¼ãƒ‰ã«ã‚¹ã‚¯ãƒª" +"プトを添付ã—ã¦ãã ã•ã„。" #: editor/connections_dialog.cpp msgid "Connect To Node:" @@ -649,7 +653,7 @@ 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'" @@ -673,9 +677,8 @@ msgid "Edit Connection: " msgstr "接続を編集 " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "ã“ã®ä¿¡å·ã‹ã‚‰å…¨ã¦ã®æŽ¥ç¶šã‚’除去ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ" +msgstr "ä¿¡å· %s ã‹ã‚‰å…¨ã¦ã®æŽ¥ç¶šã‚’除去ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -720,8 +723,8 @@ msgid "Recent:" msgstr "最近:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "検索:" @@ -772,8 +775,7 @@ msgid "Resource" msgstr "リソース" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "パス" @@ -829,13 +831,12 @@ msgid "Error loading:" msgstr "èªè¾¼ã¿ã‚¨ãƒ©ãƒ¼:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "ä¾å˜é–¢ä¿‚ãŒç¢ºèªã§ããšã€ã‚·ãƒ¼ãƒ³ã‚’èªè¾¼ã‚ã¾ã›ã‚“:" +msgstr "ä¾å˜é–¢ä¿‚ãŒè¦‹ã¤ã‹ã‚‰ãªã„ãŸã‚ã€ã‚·ãƒ¼ãƒ³ã‚’èªè¾¼ã‚ã¾ã›ã‚“:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" -msgstr "ã¨ã‚‚ã‹ãé–‹ã" +msgstr "ã¨ã«ã‹ãé–‹ã" #: editor/dependency_editor.cpp msgid "Which action should be taken?" @@ -1117,7 +1118,7 @@ msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’é–‹ã" #: editor/editor_audio_buses.cpp msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "'res://default_bus_layout.tres' ファイルãŒã‚ã‚Šã¾ã›ã‚“ï¼" +msgstr "'res://default_bus_layout.tres' ファイルãŒã‚ã‚Šã¾ã›ã‚“。" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1231,8 +1232,7 @@ msgid "Node Name:" msgstr "ノードå:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "åå‰" @@ -1310,22 +1310,19 @@ msgid "File Exists, Overwrite?" msgstr "ファイルãŒæ—¢ã«å˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "ã™ã¹ã¦é¸æŠž" +msgstr "ã“ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã‚’é¸æŠž" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" msgstr "パスをコピー" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã§é–‹ã" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" msgstr "ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã§è¡¨ç¤º" @@ -1510,14 +1507,12 @@ msgid "Constants:" msgstr "定数:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "説明" +msgstr "クラスã®èª¬æ˜Ž" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "説明:" +msgstr "クラスã®èª¬æ˜Žï¼š" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1651,7 +1646,7 @@ msgstr "出力をクリア" #: editor/editor_node.cpp msgid "Project export failed with error code %d." -msgstr "エラーコード %d ã«ã‚ˆã‚Šã€ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚" +msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãŒã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ %d ã§å¤±æ•—ã—ã¾ã—ãŸã€‚" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" @@ -1681,8 +1676,7 @@ 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' ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。ファイルãŒç§»å‹•ã¾ãŸã¯å‰Šé™¤ã•ã‚ŒãŸå¯èƒ½æ€§ãŒã‚ã‚Šã¾" -"ã™ã€‚" +"'%s' ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“。ファイルãŒç§»å‹•ã¾ãŸã¯å‰Šé™¤ã•ã‚ŒãŸå¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚" #: editor/editor_node.cpp msgid "Error while parsing '%s'." @@ -1718,6 +1712,12 @@ msgstr "ã“ã®æ“作ã¯ã€ãƒ„リー㮠root ãªã—ã§ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“。 #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1726,7 +1726,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "é–‹ã„ã¦ã„るシーンを上書ãã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1980,7 +1980,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Unable to load addon script from path: '%s'." -msgstr "パス 'ï¼…s' ã‹ã‚‰ã‚¢ãƒ‰ã‚ªãƒ³ã‚¹ã‚¯ãƒªãƒ—トをèªè¾¼ã‚ã¾ã›ã‚“。" +msgstr "パス '%s' ã‹ã‚‰ã‚¢ãƒ‰ã‚ªãƒ³ã‚¹ã‚¯ãƒªãƒ—トをèªè¾¼ã‚ã¾ã›ã‚“。" #: editor/editor_node.cpp #, fuzzy @@ -2009,7 +2009,7 @@ 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" +"シーン '%s' ã¯è‡ªå‹•çš„ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã•ã‚ŒãŸã®ã§ã€å¤‰æ›´ã§ãã¾ã›ã‚“。\n" "変更ã™ã‚‹ãŸã‚ã«ã¯ã€æ–°ãŸã«ç¶™æ‰¿ã•ã‚ŒãŸã‚·ãƒ¼ãƒ³ã‚’作æˆã—ã¦ãã ã•ã„。" #: editor/editor_node.cpp @@ -2062,7 +2062,7 @@ msgstr "シーンタブを切替ãˆ" #: editor/editor_node.cpp msgid "%d more files or folders" -msgstr "ï¼…d 以上ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¨ãƒ•ã‚©ãƒ«ãƒ€" +msgstr "%d 以上ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¨ãƒ•ã‚©ãƒ«ãƒ€" #: editor/editor_node.cpp msgid "%d more folders" @@ -2078,11 +2078,11 @@ msgstr "ドックã®ä½ç½®" #: editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "よã見知らãšãƒ¢ãƒ¼ãƒ‰" +msgstr "集ä¸ãƒ¢ãƒ¼ãƒ‰" #: editor/editor_node.cpp msgid "Toggle distraction-free mode." -msgstr "よã見知らãšãƒ¢ãƒ¼ãƒ‰ã‚’切替ãˆã‚‹ã€‚" +msgstr "集ä¸ãƒ¢ãƒ¼ãƒ‰ã‚’切替ãˆã‚‹ã€‚" #: editor/editor_node.cpp msgid "Add a new scene." @@ -2156,12 +2156,12 @@ 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/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" -msgstr "リドゥ" +msgstr "ã‚„ã‚Šç›´ã™" #: editor/editor_node.cpp msgid "Revert Scene" @@ -2183,7 +2183,7 @@ msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã®è¨å®š" msgid "Export" msgstr "エクスãƒãƒ¼ãƒˆ" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ツール" @@ -2612,6 +2612,12 @@ msgstr "アサイン.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2628,8 +2634,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "ビューãƒãƒ¼ãƒˆã‚’é¸ã¶" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト" @@ -2653,7 +2658,7 @@ msgstr "ユニーク化" #: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Paste" -msgstr "貼付ã‘" +msgstr "貼り付ã‘" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Convert To %s" @@ -2848,7 +2853,7 @@ msgid "" "found at '%s'." msgstr "" "テンプレートã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ å•é¡Œã®ãƒ†ãƒ³ãƒ—レートã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–㯠" -"'ï¼…s' ã«ã‚ã‚Šã¾ã™ã€‚" +"'%s' ã«ã‚ã‚Šã¾ã™ã€‚" #: editor/export_template_manager.cpp msgid "Error requesting url: " @@ -2898,7 +2903,7 @@ msgstr "接続エラー" #: editor/export_template_manager.cpp msgid "SSL Handshake Error" -msgstr "SS ãƒãƒ³ãƒ‰ã‚·ã‚§ã‚¤ã‚¯ã‚¨ãƒ©ãƒ¼" +msgstr "SSL ãƒãƒ³ãƒ‰ã‚·ã‚§ã‚¤ã‚¯ã‚¨ãƒ©ãƒ¼" #: editor/export_template_manager.cpp msgid "Current Version:" @@ -3033,9 +3038,8 @@ msgid "Add to favorites" msgstr "ãŠæ°—ã«å…¥ã‚Š:" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "グループã‹ã‚‰é™¤åŽ»" +msgstr "ãŠæ°—ã«å…¥ã‚Šã‹ã‚‰å‰Šé™¤" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3057,7 +3061,7 @@ msgstr "複製..." msgid "Move To..." msgstr "移動..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト..." @@ -3189,7 +3193,8 @@ msgid "Group name already exists." msgstr "グループåãŒæ—¢ã«ã‚ã‚Šã¾ã™ã€‚" #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "無効ãªã‚°ãƒ«ãƒ¼ãƒ—åã§ã™ã€‚" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3437,14 +3442,14 @@ msgid "Activate now?" msgstr "ã„ã¾ã‚¢ã‚¯ãƒ†ã‚£ãƒ–化ã—ã¾ã™ã‹ï¼Ÿ" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "ãƒãƒªã‚´ãƒ³ã‚’作æˆ" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "ãƒãƒªã‚´ãƒ³ã‚’生æˆ" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "ãƒãƒªã‚´ãƒ³ã‚’編集" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3452,25 +3457,27 @@ msgid "Insert Point" msgstr "ãƒã‚¤ãƒ³ãƒˆæŒ¿å…¥" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "ãƒãƒªã‚´ãƒ³ã‚’編集(点を除去)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "ãƒãƒªã‚´ãƒ³ã¨ãƒã‚¤ãƒ³ãƒˆã‚’除去" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "æ–°è¦ã«ãƒãƒªã‚´ãƒ³ã‚’作æˆ" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "点を作æˆã™ã‚‹ã€‚" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "æ—¢å˜ã®ãƒãƒªã‚´ãƒ³ã‚’編集:\n" "左クリック: 点を移動。\n" @@ -3478,8 +3485,9 @@ msgstr "" "å³ã‚¯ãƒªãƒƒã‚¯: 点を消ã™ã€‚" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "点を削除" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "点を消ã™ã€‚" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3526,15 +3534,6 @@ msgstr "点をé¸æŠžã—ã¦ç§»å‹•ã—ã€å³ã‚¯ãƒªãƒƒã‚¯ã§ç‚¹ã‚’作æˆã—ã¾ã™ã€‚ #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "点を作æˆã™ã‚‹ã€‚" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "点を消ã™ã€‚" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "点" @@ -3613,7 +3612,6 @@ msgstr "" "å¾—ã§ãã¾ã›ã‚“。" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "ãƒŽãƒ¼ãƒ‰ã‚’è¿½åŠ .." @@ -3863,7 +3861,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 "" @@ -4153,7 +4151,7 @@ msgstr "ã™ã¹ã¦" msgid "Plugins" msgstr "プラグイン" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "並ã¹æ›¿ãˆ:" @@ -4310,21 +4308,19 @@ msgid "Paste Pose" msgstr "ãƒãƒ¼ã‚ºã‚’貼り付ã‘ã‚‹" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "ズームアウト" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "ズームをリセット" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "ズームイン" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "é¸æŠžãƒ¢ãƒ¼ãƒ‰" @@ -4341,7 +4337,7 @@ msgstr "Alt+ドラッグ:移動" #, fuzzy msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." msgstr "" -"ï½–ã‚ーを押ã™ã¨ãƒ”ボットã®å¤‰æ›´ã€'Shift+v' ã§ãƒ”ボットをドラッグ(移動ä¸ã§ã‚‚)" +"vã‚ーを押ã™ã¨ãƒ”ボットã®å¤‰æ›´ã€'Shift+v' ã§ãƒ”ボットをドラッグ(移動ä¸ã§ã‚‚)" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -4626,8 +4622,17 @@ msgstr "" "ドラッグ&ドãƒãƒƒãƒ— + Alt : ノードã®ã‚¿ã‚¤ãƒ—を変更ã™ã‚‹" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "3Dãƒãƒªã‚´ãƒ³ã‚’生æˆã™ã‚‹" +#, fuzzy +msgid "Create Polygon3D" +msgstr "ãƒãƒªã‚´ãƒ³ã‚’生æˆ" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "ãƒãƒªã‚´ãƒ³ã‚’編集" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "ãƒãƒªã‚´ãƒ³ã‚’編集(点を除去)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp #, fuzzy @@ -4635,9 +4640,8 @@ msgid "Set Handle" msgstr "ãƒãƒ³ãƒ‰ãƒ«ã‚’è¨å®šã™ã‚‹" #: editor/plugins/cpu_particles_editor_plugin.cpp -#, fuzzy msgid "CPUParticles" -msgstr "é ‚ç‚¹" +msgstr "CPUパーティクル" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -4694,7 +4698,7 @@ msgstr "ç‚¹ã‚’è¿½åŠ " #: editor/plugins/curve_editor_plugin.cpp msgid "Remove point" -msgstr "é¸æŠžã—ã¦ã„ã‚‹ãƒã‚¤ãƒ³ãƒˆï¼ç‚¹ã‚’削除" +msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’除去" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy @@ -4740,40 +4744,10 @@ msgid "Item List Editor" msgstr "アイテムリストã®ã‚¨ãƒ‡ã‚£ã‚¿" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"ã“ã®ãƒŽãƒ¼ãƒ‰ã«OccluderPolygon2DリソースãŒã‚ã‚Šã¾ã›ã‚“。\n" -"作æˆã—ã¦ã€å‰²ã‚Šå½“ã¦ã¾ã™ã‹ ?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #, fuzzy msgid "Create Occluder Polygon" msgstr "オクルージョンを生ã˜ã‚‹ãƒãƒªã‚´ãƒ³ã‚’生æˆ" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -#, fuzzy -msgid "Create a new polygon from scratch." -msgstr "æ–°è¦ã«ãƒãƒªã‚´ãƒ³ã‚’生æˆã™ã‚‹" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "æ—¢å˜ã®ãƒãƒªã‚´ãƒ³ã‚’編集:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: 点を移動ã™ã‚‹ã€‚" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -#, fuzzy -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+マウス左ボタン: セグメントを分割" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "å³ã‚¯ãƒªãƒƒã‚¯: 点を消ã™ã€‚" - #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy msgid "Mesh is empty!" @@ -5083,9 +5057,8 @@ msgstr "発光(Emission)マスクをクリア" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Convert to CPUParticles" -msgstr "大文å—ã«å¤‰æ›" +msgstr "CPUパーティクルã«å¤‰æ›" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -5206,6 +5179,11 @@ msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’曲線ã«è¿½åŠ " #: editor/plugins/path_2d_editor_plugin.cpp #, fuzzy +msgid "Split Curve" +msgstr "曲線を閉ã˜ã‚‹" + +#: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy msgid "Move Point in Curve" msgstr "曲線ã®ãƒã‚¤ãƒ³ãƒˆã‚’移動" @@ -5236,6 +5214,11 @@ msgid "Click: Add Point" msgstr "クリック: ç‚¹ã‚’è¿½åŠ " #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "分割ã™ã‚‹(曲線を)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "å³ã‚¯ãƒªãƒƒã‚¯: 点を削除" @@ -5251,12 +5234,6 @@ msgstr "点を空ãスペースã«è¿½åŠ " #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -#, fuzzy -msgid "Split Segment (in curve)" -msgstr "分割ã™ã‚‹(曲線を)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "点を削除" @@ -5318,6 +5295,11 @@ msgstr "曲線ã®Out-ãƒãƒ³ãƒ‰ãƒ«ã‚’除去" msgid "Remove In-Control Point" msgstr "曲線ã®In-ãƒãƒ³ãƒ‰ãƒ«ã‚’除去" +#: editor/plugins/path_editor_plugin.cpp +#, fuzzy +msgid "Split Segment (in curve)" +msgstr "分割ã™ã‚‹(曲線を)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5330,10 +5312,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "ボーンを表示ã™ã‚‹" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "UVマップを生æˆ" @@ -5374,17 +5362,27 @@ msgid "Transform UV Map" msgstr "UVマップをトランスフォーム" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "トランスフォーム" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "ãƒãƒªã‚´ãƒ³ï¼’Dã®UVエディタ" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy msgid "Polygon 2D UV Editor" msgstr "ãƒãƒªã‚´ãƒ³ï¼’Dã®UVエディタ" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV" -msgstr "" +msgstr "UV" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy @@ -5403,12 +5401,7 @@ msgstr "ボーンを生æˆ" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "ãƒãƒªã‚´ãƒ³ã‚’生æˆ" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy -msgid "Move Point" +msgid "Move Points" msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’移動" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5442,25 +5435,25 @@ msgid "Scale Polygon" msgstr "ãƒãƒªã‚´ãƒ³ã®ç¸®å°ºã‚’変更" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "è¨å®šé …目をè¨å®šã—ã¦ãã ã•ã„!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Radius:" -msgstr "" +msgstr "åŠå¾„:" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy @@ -5526,20 +5519,17 @@ msgid "ERROR: Couldn't load resource!" msgstr "エラー:リソースをèªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ!" #: editor/plugins/resource_preloader_editor_plugin.cpp -#, fuzzy msgid "Add Resource" msgstr "ãƒªã‚½ãƒ¼ã‚¹ã‚’è¿½åŠ " #: editor/plugins/resource_preloader_editor_plugin.cpp -#, fuzzy msgid "Rename Resource" -msgstr "リソースã®åå‰ã‚’変ãˆã‚‹" +msgstr "リソースåを変更" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp -#, fuzzy msgid "Delete Resource" -msgstr "リソースを消去ã™ã‚‹" +msgstr "リソースを削除" #: editor/plugins/resource_preloader_editor_plugin.cpp #, fuzzy @@ -5547,9 +5537,8 @@ msgid "Resource clipboard is empty!" msgstr "リソースã®ã‚¯ãƒªãƒƒãƒ—ボードã¯ç©ºã§ã™!" #: editor/plugins/resource_preloader_editor_plugin.cpp -#, fuzzy msgid "Paste Resource" -msgstr "リソースを張り付ã‘ã‚‹" +msgstr "リソースã®å¼µã‚Šä»˜ã‘" #: editor/plugins/resource_preloader_editor_plugin.cpp #: editor/scene_tree_editor.cpp @@ -5593,11 +5582,8 @@ msgid "Clear Recent Files" msgstr "最近開ã„ãŸãƒ•ã‚¡ã‚¤ãƒ«ã®è¨˜éŒ²ã‚’クリア" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Close and save changes?" -msgstr "" -"変更をä¿å˜ã—ã¦é–‰ã˜ã¾ã™ã‹?\n" -"\"" +msgstr "変更をä¿å˜ã—ã¦é–‰ã˜ã¾ã™ã‹?" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5621,20 +5607,22 @@ msgstr "タイルセットã®ä¿å˜ã‚¨ãƒ©ãƒ¼!" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "テーマをä¿å˜ã™ã‚‹é€”ä¸ã§ã®ã‚¨ãƒ©ãƒ¼" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "ä¿å˜ã‚¨ãƒ©ãƒ¼" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "Error importing theme" +msgid "Error importing theme." msgstr "テーマをインãƒãƒ¼ãƒˆä¸ã®ã‚¨ãƒ©ãƒ¼" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "インãƒãƒ¼ãƒˆã®ã‚¨ãƒ©ãƒ¼" #: editor/plugins/script_editor_plugin.cpp @@ -5657,6 +5645,15 @@ msgid "Import Theme" msgstr "テーマã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Error while saving theme" +msgstr "テーマをä¿å˜ã™ã‚‹é€”ä¸ã§ã®ã‚¨ãƒ©ãƒ¼" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "ä¿å˜ã‚¨ãƒ©ãƒ¼" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "テーマをåå‰ã‚’ã¤ã‘ã¦ä¿å˜..." @@ -5700,8 +5697,8 @@ msgstr "ファイル" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "ビューファイル:" +msgid "Open..." +msgstr "é–‹ã" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5732,6 +5729,11 @@ msgstr "テーマ" #: editor/plugins/script_editor_plugin.cpp #, fuzzy +msgid "Import Theme..." +msgstr "テーマã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ" + +#: editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Reload Theme" msgstr "テーマをå†èªè¾¼" @@ -5740,10 +5742,6 @@ msgid "Save Theme" msgstr "テーマをä¿å˜" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "テーマã«åå‰ã‚’付ã‘ã¦ä¿å˜" - -#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Close Docs" msgstr "é–‰ã˜ã‚‹" @@ -5813,7 +5811,7 @@ msgstr "ç›´å‰ã®ã€Œç·¨é›†ã—ãŸæ–‡æ›¸ã€ã¸ç§»å‹•." #: editor/plugins/script_editor_plugin.cpp msgid "Go to next edited document." -msgstr "次ã®ã®ã€Œç·¨é›†ã—ãŸæ–‡æ›¸ã€ã¸ç§»å‹•." +msgstr "次ã®ã€Œç·¨é›†ã—ãŸæ–‡æ›¸ã€ã¸ç§»å‹•." #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5860,6 +5858,10 @@ msgstr "" msgid "Go to Function" msgstr "関数~ã«ç§»å‹•..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "ファイルシステムã®ãƒªã‚½ãƒ¼ã‚¹ã®ã¿ãƒ‰ãƒãƒƒãƒ—ã§ãã¾ã™." @@ -5893,10 +5895,6 @@ msgstr "å…ˆé を大文å—ã«" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6116,7 +6114,7 @@ msgstr "æç”»ã•ã‚ŒãŸã‚ªãƒ–ジェクト" #: editor/plugins/spatial_editor_plugin.cpp msgid "Material Changes" -msgstr "ç´ æã®å¤‰æ›´" +msgstr "マテリアルã®å¤‰æ›´" #: editor/plugins/spatial_editor_plugin.cpp msgid "Shader Changes" @@ -6128,7 +6126,7 @@ msgstr "サーフェースã®å¤‰æ›´" #: editor/plugins/spatial_editor_plugin.cpp msgid "Draw Calls" -msgstr "ドãƒãƒ¼ã‚³ãƒ¼ãƒ«ï¼ˆDaw call)" +msgstr "ドãƒãƒ¼ã‚³ãƒ¼ãƒ«" #: editor/plugins/spatial_editor_plugin.cpp msgid "Vertices" @@ -6653,12 +6651,18 @@ msgid "Set Region Rect" msgstr "テクスãƒãƒ£ã€€ãƒªãƒ¼ã‚¸ãƒ§ãƒ³" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "ãƒãƒ³ãƒ‰ãƒ«ã‚’è¨å®šã™ã‚‹" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Snapモード:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "None" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6915,12 +6919,12 @@ msgstr "トランスフォーム" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "シーンã‹ã‚‰ã®ãƒŽãƒ¼ãƒ‰" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "パスã®ãƒã‚¤ãƒ³ãƒˆã‚’除去" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6932,13 +6936,34 @@ msgid "Merge from Scene" msgstr "シーンã‹ã‚‰ãƒžãƒ¼ã‚¸" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "アニメーションを貼付ã‘" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "点を消ã™ã€‚" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "æ–°è¦ã«ãƒãƒªã‚´ãƒ³ã‚’生æˆã™ã‚‹" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6970,16 +6995,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "é¸æŠžã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "ç¾åœ¨ç·¨é›†ä¸ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ä¿å˜ã™ã‚‹" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "点を削除" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "ç¾åœ¨ç·¨é›†ä¸ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ä¿å˜ã™ã‚‹" @@ -6998,12 +7034,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "ç¾åœ¨ç·¨é›†ä¸ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ä¿å˜ã™ã‚‹" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "ã“ã®å‡¦ç†ã«ã¯ã‚·ãƒ¼ãƒ³ãŒå¿…è¦ã§ã™." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "タイルセット..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7023,6 +7066,11 @@ msgstr "å³å´é¢" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "ãƒŽãƒ¼ãƒ‰ã‚’è¿½åŠ .." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "シェーダー" @@ -7066,8 +7114,8 @@ msgstr "è¿½åŠ ..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ" +msgid "Export Path" +msgstr "エクスãƒãƒ¼ãƒˆãƒ‘ス:" #: editor/project_export.cpp msgid "Resources" @@ -7145,9 +7193,8 @@ msgid "Export mode?" msgstr "エクスãƒãƒ¼ãƒˆã®ãƒ¢ãƒ¼ãƒ‰:" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "エクスãƒãƒ¼ãƒˆ" +msgstr "ã™ã¹ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ" #: editor/project_export.cpp #, fuzzy @@ -7165,18 +7212,18 @@ msgid "The path does not exist." msgstr "ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“." #: editor/project_manager.cpp -#, fuzzy msgid "Invalid '.zip' project file, does not contain a 'project.godot' file." -msgstr "'project.godot'ãŒãªã„フォルダをé¸æŠžã—ã¦ãã ã•ã„." +msgstr "" +"無効㪠'.zip' プãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã§ã™ã€‚'project.godot' ファイルãŒå«ã¾ã‚Œã¦ã„" +"ã¾ã›ã‚“。" #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "空ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„。" #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a 'project.godot' or '.zip' file." -msgstr "'project.godot' ファイルをé¸æŠžã—ã¦ãã ã•ã„." +msgstr "'project.godot' ã‚‚ã—ã㯠'.zip' ファイルをé¸æŠžã—ã¦ãã ã•ã„." #: editor/project_manager.cpp msgid "Directory already contains a Godot project." @@ -7187,9 +7234,8 @@ msgid "Imported Project" msgstr "インãƒãƒ¼ãƒˆã•ã‚ŒãŸãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆ" #: editor/project_manager.cpp -#, fuzzy msgid "Invalid Project Name." -msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆå:" +msgstr "無効ãªãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆåã§ã™ã€‚" #: editor/project_manager.cpp #, fuzzy @@ -7261,9 +7307,8 @@ msgid "Install Project:" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’インストール:" #: editor/project_manager.cpp -#, fuzzy msgid "Install & Edit" -msgstr "インストール" +msgstr "インストールã—ã¦ç·¨é›†" #: editor/project_manager.cpp msgid "Project Name:" @@ -7284,7 +7329,7 @@ msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆãƒ‘ス:" #: editor/project_manager.cpp msgid "Browse" -msgstr "å‚照…" +msgstr "å‚ç…§" #: editor/project_manager.cpp msgid "Unnamed Project" @@ -7383,9 +7428,8 @@ msgstr "" "アセットライブラリã§å…¬å¼ã®ã‚µãƒ³ãƒ—ルプãƒã‚¸ã‚§ã‚¯ãƒˆã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã‹ï¼Ÿ" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Key " -msgstr "ã‚ー.. " +msgstr "ã‚ー " #: editor/project_settings_editor.cpp #, fuzzy @@ -7426,9 +7470,8 @@ msgid "Add Input Action Event" msgstr "å…¥åŠ›ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ™ãƒ³ãƒˆã‚’è¿½åŠ " #: editor/project_settings_editor.cpp -#, fuzzy msgid "All Devices" -msgstr "デãƒã‚¤ã‚¹" +msgstr "ã™ã¹ã¦ã®ãƒ‡ãƒã‚¤ã‚¹" #: editor/project_settings_editor.cpp msgid "Device" @@ -7578,6 +7621,8 @@ msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'." msgstr "" +"無効ãªã‚¢ã‚¯ã‚·ãƒ§ãƒ³åã§ã™ã€‚空もã—ãã¯'/', ':', '=', '\\' ã‚„ '\"'ã‚’å«ã‚ã‚‹ã“ã¨ã¯ã§" +"ãã¾ã›ã‚“。" #: editor/project_settings_editor.cpp #, fuzzy @@ -7729,14 +7774,12 @@ msgid "Show only selected locales" msgstr "é¸æŠžã—ãŸãƒã‚±ãƒ¼ãƒ«ã®ã¿è¡¨ç¤º" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Filter mode:" -msgstr "フィルター" +msgstr "フィルターモード:" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Locales:" -msgstr "ãƒã‚±ãƒ¼ãƒ«" +msgstr "ãƒã‚±ãƒ¼ãƒ«:" #: editor/project_settings_editor.cpp msgid "AutoLoad" @@ -7840,9 +7883,8 @@ msgid "Substitute" msgstr "" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node name" -msgstr "ノードã®åå‰:" +msgstr "ノードå" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" @@ -7854,9 +7896,8 @@ msgid "Node type" msgstr "ノードタイプを探ã™" #: editor/rename_dialog.cpp -#, fuzzy msgid "Current scene name" -msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³" +msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³å" #: editor/rename_dialog.cpp #, fuzzy @@ -7882,9 +7923,8 @@ msgid "Initial value for the counter" msgstr "" #: editor/rename_dialog.cpp -#, fuzzy msgid "Step" -msgstr "ステップ:" +msgstr "ステップ" #: editor/rename_dialog.cpp msgid "Amount by which counter is incremented for each node" @@ -7906,9 +7946,8 @@ msgid "Regular Expressions" msgstr "å¼ã‚’変更" #: editor/rename_dialog.cpp -#, fuzzy msgid "Post-Process" -msgstr "後処ç†ã‚¹ã‚¯ãƒªãƒ—ト:" +msgstr "ãƒã‚¹ãƒˆãƒ—ãƒã‚»ã‚¹" #: editor/rename_dialog.cpp msgid "Keep" @@ -7937,9 +7976,8 @@ msgid "To Uppercase" msgstr "大文å—" #: editor/rename_dialog.cpp -#, fuzzy msgid "Reset" -msgstr "ズームをリセット" +msgstr "リセット" #: editor/rename_dialog.cpp msgid "Error" @@ -8082,19 +8120,16 @@ msgid "Create Root Node:" msgstr "ノードを生æˆ" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "2D Scene" -msgstr "シーン" +msgstr "2D シーン" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "3D Scene" -msgstr "シーン" +msgstr "3D シーン" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "User Interface" -msgstr "継承をクリアã™ã‚‹" +msgstr "ユーザーインターフェース" #: editor/scene_tree_dock.cpp #, fuzzy @@ -8111,9 +8146,8 @@ msgid "Can't operate on nodes the current scene inherits from!" msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ãŒç¶™æ‰¿ã™ã‚‹ãƒŽãƒ¼ãƒ‰ã‚’処ç†ã§ãã¾ã›ã‚“!" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Attach Script" -msgstr "スクリプトを付与" +msgstr "スクリプトをアタッãƒ" #: editor/scene_tree_dock.cpp msgid "Remove Node(s)" @@ -8137,9 +8171,8 @@ msgid "Error duplicating scene to save it." msgstr "ä¿å˜ã®ãŸã‚シーンを複製ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿ." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Sub-Resources" -msgstr "サブリソース:" +msgstr "サブリソース" #: editor/scene_tree_dock.cpp #, fuzzy @@ -8165,14 +8198,12 @@ msgid "Change Type" msgstr "åž‹(type)を変更" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "フォルダを作æˆ" +msgstr "スクリプトを拡張" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make Scene Root" -msgstr "有æ„義ã«!" +msgstr "ルートシーンを作æˆ" #: editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -8189,9 +8220,8 @@ msgid "Copy Node Path" msgstr "ノードã®ãƒ‘スをコピー" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Delete (No Confirm)" -msgstr "確èªã—ã¦ãã ã•ã„。" +msgstr "削除 (確èªãªã—)" #: editor/scene_tree_dock.cpp msgid "Add/Create a New Node" @@ -8217,9 +8247,8 @@ msgid "Clear a script for the selected node." msgstr "é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã®ã‚¹ã‚¯ãƒªãƒ—トをクリア" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Remote" -msgstr "削除" +msgstr "リモート" #: editor/scene_tree_dock.cpp #, fuzzy @@ -8269,18 +8298,16 @@ msgstr "" "クリックã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ‰ãƒƒã‚¯ã‚’表示ã—ã¦ãã ã•ã„." #: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -#, fuzzy msgid "Open Script" -msgstr "フォルダを作æˆ" +msgstr "スクリプトを開ã" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Node is locked.\n" "Click to unlock it." msgstr "" -"ノードã¯ãƒãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã™.\n" -"クリックã—ã¦ãƒãƒƒã‚¯ã‚’外ã—ã¦ãã ã•ã„" +"ノードã¯ãƒãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã™ã€‚\n" +"クリックã—ã¦ãƒãƒƒã‚¯ã‚’外ã—ã¦ãã ã•ã„。" #: editor/scene_tree_editor.cpp #, fuzzy @@ -8324,14 +8351,12 @@ msgid "Select a Node" msgstr "ノードをé¸æŠž" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error loading template '%s'" -msgstr "イメージèªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼:" +msgstr "テンプレート %s èªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error - Could not create script in filesystem." -msgstr "フォルダを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" +msgstr "エラー - ファイルシステムã«ã‚¹ã‚¯ãƒªãƒ—トを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: editor/script_create_dialog.cpp #, fuzzy @@ -8352,9 +8377,8 @@ msgid "Path is empty" msgstr "パスãŒã‚ã‚Šã¾ã›ã‚“" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "ä¿å˜ã™ã‚‹ãƒ‘スãŒã‚ã‚Šã¾ã›ã‚“!" +msgstr "ファイルåãŒç©ºã§ã™" #: editor/script_create_dialog.cpp #, fuzzy @@ -8384,9 +8408,8 @@ msgid "Wrong extension chosen" msgstr "æ‹¡å¼µåãŒèª¤ã£ã¦ã„ã¾ã™" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid Path" -msgstr "無効ãªãƒ•ã‚©ãƒ³ãƒˆ サイズã§ã™ã€‚" +msgstr "無効ãªãƒ‘ス" #: editor/script_create_dialog.cpp msgid "Invalid class name" @@ -8411,16 +8434,14 @@ msgid "Built-in script (into scene file)" msgstr "組ã¿è¾¼ã¿ã‚¹ã‚¯ãƒªãƒ—ト(シーンファイルã®ï¼‰" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Create new script file" -msgstr "フォルダを作æˆ" +msgstr "æ–°è¦ã‚¹ã‚¯ãƒªãƒ—トファイルを作æˆ" #: editor/script_create_dialog.cpp msgid "Load existing script file" msgstr "æ—¢å˜ã®ã‚¹ã‚¯ãƒªãƒ—トファイルをèªã¿è¾¼ã‚€" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Language" msgstr "言語" @@ -8433,9 +8454,8 @@ msgid "Class Name" msgstr "クラスå" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Template" -msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除" +msgstr "テンプレート" #: editor/script_create_dialog.cpp msgid "Built-in Script" @@ -8447,18 +8467,16 @@ msgid "Attach Node Script" msgstr "ノードã«ã‚¹ã‚¯ãƒªãƒ—トを添付ã™ã‚‹" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Remote " -msgstr "削除" +msgstr "リモート " #: editor/script_editor_debugger.cpp msgid "Bytes:" msgstr "ãƒã‚¤ãƒˆ:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "スタックフレーム" +msgstr "スタックトレース" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8473,9 +8491,8 @@ msgid "Child Process Connected" msgstr "åプãƒã‚»ã‚¹æŽ¥ç¶š" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Copy Error" -msgstr "èªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼" +msgstr "コピーエラー" #: editor/script_editor_debugger.cpp #, fuzzy @@ -8670,9 +8687,8 @@ msgid "Platform:" msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Platform" -msgstr "プラットフォームã¸ã‚³ãƒ”ー..." +msgstr "プラットフォーム" #: modules/gdnative/gdnative_library_editor_plugin.cpp #, fuzzy @@ -8689,14 +8705,12 @@ msgid "GDNativeLibrary" msgstr "メッシュライブラリ..." #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Library" -msgstr "メッシュライブラリ..." +msgstr "ライブラリ" #: modules/gdnative/gdnative_library_singleton_editor.cpp -#, fuzzy msgid "Status" -msgstr "ステータス:" +msgstr "ステータス" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Libraries: " @@ -8707,7 +8721,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "ステップ引数ã¯ã‚¼ãƒã§ã™ï¼" #: modules/gdscript/gdscript_functions.cpp @@ -8907,51 +8922,44 @@ msgid "Failed to create solution." msgstr "アウトラインを生æˆã§ãã¾ã›ã‚“ã§ã—ãŸ!" #: modules/mono/editor/godotsharp_editor.cpp -#, fuzzy msgid "Failed to save solution." -msgstr "リソースèªã¿è¾¼ã¿å¤±æ•—" +msgstr "ソリューションã®ä¿å˜ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: modules/mono/editor/godotsharp_editor.cpp -#, fuzzy msgid "Done" -msgstr "完了!" +msgstr "完了" #: modules/mono/editor/godotsharp_editor.cpp -#, fuzzy msgid "Failed to create C# project." -msgstr "リソースèªã¿è¾¼ã¿å¤±æ•—" +msgstr "C#プãƒã‚¸ã‚§ã‚¯ãƒˆã®ç”Ÿæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚" #: modules/mono/editor/godotsharp_editor.cpp msgid "Mono" -msgstr "モノラル音声" +msgstr "Mono" #: modules/mono/editor/godotsharp_editor.cpp msgid "About C# support" msgstr "" #: modules/mono/editor/godotsharp_editor.cpp -#, fuzzy msgid "Create C# solution" -msgstr "アウトラインを生æˆ" +msgstr "C#ソリューションを生æˆ" #: modules/mono/editor/mono_bottom_panel.cpp msgid "Builds" msgstr "ビルド" #: modules/mono/editor/mono_bottom_panel.cpp -#, fuzzy msgid "Build Project" -msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆ" +msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’ビルド" #: modules/mono/editor/mono_bottom_panel.cpp -#, fuzzy msgid "Warnings" msgstr "è¦å‘Š" #: modules/mono/editor/mono_bottom_panel.cpp -#, fuzzy msgid "View log" -msgstr "ビューファイル:" +msgstr "ãƒã‚°ã‚’表示" #: modules/mono/mono_gd/gd_mono_utils.cpp msgid "End of inner exception stack trace" @@ -9101,14 +9109,12 @@ msgid "Name already in use by another func/var/signal:" msgstr "ä»–ã®é–¢æ•°/変数/シグナルã«ã‚ˆã‚Šæ—¢ã«ä½¿ã‚ã‚Œã¦ã„ã‚‹åå‰ã§ã™:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Rename Function" -msgstr "関数を作æˆ" +msgstr "関数åを変更" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Rename Variable" -msgstr "変数ã®åå‰ã‚’変ãˆã‚‹" +msgstr "変数åを変更" #: modules/visual_script/visual_script_editor.cpp msgid "Rename Signal" @@ -9119,24 +9125,20 @@ msgid "Add Function" msgstr "é–¢æ•°ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Variable" -msgstr "å¤‰æ•°ã‚’åŠ ãˆã‚‹" +msgstr "å¤‰æ•°ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Signal" -msgstr "signalã‚’åŠ ãˆã‚‹" +msgstr "ä¿¡å·ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Change Expression" msgstr "å¼ã‚’変更" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Add Node" -msgstr "ãƒŽãƒ¼ãƒ‰ã‚’åŠ ãˆã‚‹" +msgstr "ãƒŽãƒ¼ãƒ‰ã‚’è¿½åŠ " #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -9205,9 +9207,8 @@ msgid "Change Base Type" msgstr "åž‹(type)を変更" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Move Node(s)" -msgstr "ノードを除去" +msgstr "ノードを移動" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -9244,9 +9245,8 @@ msgid "Can't copy the function node." msgstr "'..'を処ç†ã§ãã¾ã›ã‚“" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Clipboard is empty!" -msgstr "リソースã®ã‚¯ãƒªãƒƒãƒ—ボードã¯ç©ºã§ã™!" +msgstr "クリップボードã¯ç©ºã§ã™!" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -9254,9 +9254,8 @@ msgid "Paste VisualScript Nodes" msgstr "ノードを貼り付ã‘:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Function" -msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除" +msgstr "関数を除去" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -9269,9 +9268,8 @@ msgid "Editing Variable:" msgstr "変数を編集ä¸:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Remove Signal" -msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除" +msgstr "ä¿¡å·ã‚’除去" #: modules/visual_script/visual_script_editor.cpp #, fuzzy @@ -9297,12 +9295,10 @@ msgid "Select or create a function to edit graph" msgstr "グラフを編集ã™ã‚‹é–¢æ•°ã‚’ã€é¸æŠžã™ã‚‹ã‹ç”Ÿæˆã™ã‚‹" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Signal Arguments:" msgstr "シグナルã®å¼•æ•°ã‚’編集:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Variable:" msgstr "変数を編集:" @@ -9315,7 +9311,6 @@ msgid "Find Node Type" msgstr "ノードタイプを探ã™" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Copy Nodes" msgstr "ノードをコピー" @@ -9328,9 +9323,8 @@ msgid "Paste Nodes" msgstr "ノードを貼り付ã‘:" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Member" -msgstr "メンãƒãƒ¼:" +msgstr "メンãƒãƒ¼ã‚’編集" #: modules/visual_script/visual_script_flow_control.cpp #, fuzzy @@ -9368,14 +9362,12 @@ msgid "Invalid index property name '%s' in node %s." msgstr "ノード%sã®ä¸æ£ãªã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®ãƒ—ãƒãƒ‘ティå'%s' ." #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid ": Invalid argument of type: " -msgstr ":ä¸æ£ãªå¼•æ•°ã§ã™.引数ã®åž‹=: " +msgstr ":無効ãªå¼•æ•° 引数ã®åž‹: " #: modules/visual_script/visual_script_nodes.cpp -#, fuzzy msgid ": Invalid arguments: " -msgstr ":ä¸æ£ãªå¼•æ•°: " +msgstr ": 無効ãªå¼•æ•°: " #: modules/visual_script/visual_script_nodes.cpp #, fuzzy @@ -9415,7 +9407,6 @@ msgid "Set %s" msgstr "" #: platform/javascript/export/export.cpp -#, fuzzy msgid "Run in Browser" msgstr "ブラウザã§å®Ÿè¡Œ" @@ -9425,9 +9416,8 @@ msgid "Run exported HTML in the system's default browser." msgstr "エクスãƒãƒ¼ãƒˆã—ãŸHTMLファイルを既定ã®ãƒ–ラウザã§å®Ÿè¡Œ." #: platform/javascript/export/export.cpp -#, fuzzy msgid "Could not write file:" -msgstr "ファイルã«æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“ã§ã—ãŸ:\n" +msgstr "ファイルを書ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:" #: platform/javascript/export/export.cpp #, fuzzy @@ -9710,7 +9700,7 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "æ画パスã®ãŸã‚ã®ãƒ¡ãƒƒã‚·ãƒ¥ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“ã®ã§è¦‹ãˆã¾ã›ã‚“" #: scene/3d/cpu_particles.cpp @@ -9763,7 +9753,9 @@ msgstr "" "PathFollow2D ã¯ã€Path2D ノードã®åã¨ã—ã¦è¨å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã®ã¿å‹•ä½œã—ã¾ã™ã€‚" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9793,10 +9785,13 @@ msgstr "" "セット) ã”ã¨ã«è¨±å¯ã•ã‚Œã¾ã™ã€‚" #: scene/3d/scenario_fx.cpp +#, fuzzy msgid "" "This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set " "this environment's Background Mode to Canvas (for 2D scenes)." msgstr "" +"ã“ã®WorldEnvironmentã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸã€‚ã‚«ãƒ¡ãƒ©ã‚’è¿½åŠ ã™ã‚‹ã‹(3Dシーンã®å ´åˆ)ã€ã“" +"ã®Environmentã® Backgroundモード ã‚’ Canvas ã«è¨å®šã—ã¾ã™(2Dシーンã®å ´åˆ)。" #: scene/3d/soft_body.cpp msgid "This body will be ignored until you set a mesh" @@ -9828,18 +9823,16 @@ msgid "On BlendTree node '%s', animation not found: '%s'" msgstr "" #: scene/animation/animation_blend_tree.cpp -#, fuzzy msgid "Animation not found: '%s'" -msgstr "アニメーションツール" +msgstr "見ã¤ã‹ã‚‰ãªã„アニメーション: '%s'" #: scene/animation/animation_tree.cpp msgid "In node '%s', invalid animation: '%s'." msgstr "" #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Invalid animation: '%s'." -msgstr "エラー:アニメーションã®åå‰ãŒä¸æ£ã§ã™!" +msgstr "無効ãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³: '%s'。" #: scene/animation/animation_tree.cpp #, fuzzy @@ -9864,6 +9857,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "アニメーションツリーã«å•é¡ŒãŒã‚ã‚Šã¾ã™." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" @@ -9882,6 +9879,10 @@ msgstr "è¦å‘Š!" msgid "Please Confirm..." msgstr "確èª" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9907,7 +9908,6 @@ msgstr "" "イズを手動ã§è¨å®šã—ã¦ãã ã•ã„。" #: scene/gui/tree.cpp -#, fuzzy msgid "(Other)" msgstr "(ãã®ä»–)" @@ -9949,19 +9949,12 @@ msgid "Invalid font size." msgstr "無効ãªãƒ•ã‚©ãƒ³ãƒˆ サイズã§ã™ã€‚" #: scene/resources/visual_shader.cpp -#, fuzzy msgid "Input" -msgstr "å…¥åŠ›ã‚’è¿½åŠ " - -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<None>" +msgstr "入力" #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid source for shader." -msgstr "ä¸æ£ãªã‚½ãƒ¼ã‚¹!" +msgstr "無効ãªã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ã®ã‚½ãƒ¼ã‚¹ã§ã™ã€‚" #: servers/visual/shader_language.cpp msgid "Assignment to function." @@ -9975,6 +9968,56 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "ãƒãƒªã‚´ãƒ³ã‚’作æˆ" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "æ–°è¦ã«ãƒãƒªã‚´ãƒ³ã‚’作æˆ" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "ズームアウト" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "ズームイン" + +#~ msgid "Create Poly3D" +#~ msgstr "3Dãƒãƒªã‚´ãƒ³ã‚’生æˆã™ã‚‹" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "ã“ã®ãƒŽãƒ¼ãƒ‰ã«OccluderPolygon2DリソースãŒã‚ã‚Šã¾ã›ã‚“。\n" +#~ "作æˆã—ã¦ã€å‰²ã‚Šå½“ã¦ã¾ã™ã‹ ?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "æ—¢å˜ã®ãƒãƒªã‚´ãƒ³ã‚’編集:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: 点を移動ã™ã‚‹ã€‚" + +#, fuzzy +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+マウス左ボタン: セグメントを分割" + +#~ msgid "RMB: Erase Point." +#~ msgstr "å³ã‚¯ãƒªãƒƒã‚¯: 点を消ã™ã€‚" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "ビューファイル:" + +#~ msgid "Save Theme As" +#~ msgstr "テーマã«åå‰ã‚’付ã‘ã¦ä¿å˜" + +#~ msgid "<None>" +#~ msgstr "<None>" + +#~ msgid "Zoom:" +#~ msgstr "ズーム:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "\" ã‹ã‚‰å…¨ã¦ã®æŽ¥ç¶šã‚’除去ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹" @@ -10756,10 +10799,6 @@ msgstr "" #~ msgstr "ソース フォント:" #, fuzzy -#~ msgid "Source Font Size:" -#~ msgstr "ソース フォントサイズ:" - -#, fuzzy #~ msgid "Dest Resource:" #~ msgstr "é€ã‚Šå…ˆã®ãƒªã‚½ãƒ¼ã‚¹:" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 7e13731d6a..980c858552 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -7,15 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-08-16 16:36+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" "Last-Translator: George Dzavashvili <dzavashviligeorge@gmail.com>\n" "Language-Team: Georgian <https://hosted.weblate.org/projects/godot-engine/" "godot/ka/>\n" "Language: ka\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -258,7 +260,6 @@ msgstr "áƒáƒ®áƒáƒšáƒ˜ %d თრექების შექმნრდრრ#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -532,15 +533,19 @@ msgstr "ყველáƒáƒ¡ ჩáƒáƒœáƒáƒªáƒ•áƒšáƒ”ბáƒ" msgid "Selection Only" msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ მხáƒáƒšáƒáƒ“" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "ზუმის გáƒáƒ–რდáƒ" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "ზუმის დáƒáƒžáƒáƒ¢áƒáƒ áƒáƒ•áƒ”ბáƒ" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "ზუმის სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ–ე დáƒáƒ§áƒ”ნებáƒ" @@ -549,9 +554,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "ზუმის გáƒáƒ–რდáƒ" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -714,8 +718,8 @@ msgid "Recent:" msgstr "ბáƒáƒšáƒ:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "ძებნáƒ:" @@ -766,8 +770,7 @@ msgid "Resource" msgstr "რესურსი" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "გზáƒ" @@ -1226,8 +1229,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1693,6 +1695,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2090,7 +2098,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2114,7 +2122,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2526,6 +2534,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2542,8 +2556,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2959,7 +2972,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3088,8 +3101,9 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." -msgstr "" +#, fuzzy +msgid "Invalid group name." +msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ." #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" @@ -3334,44 +3348,45 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "შექმნáƒ" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "შექმნáƒ" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "შექმნáƒ" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3416,16 +3431,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "შექმნáƒ" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3502,7 +3507,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4040,7 +4044,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4188,21 +4192,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "ზუმის დáƒáƒžáƒáƒ¢áƒáƒ áƒáƒ•áƒ”ბáƒ" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "ზუმის დáƒáƒžáƒáƒ¢áƒáƒ áƒáƒ•áƒ”ბáƒ" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "ზუმის გáƒáƒ–რდáƒ" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4458,7 +4460,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "შექმნáƒ" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4560,35 +4571,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4956,6 +4941,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "კვáƒáƒœáƒ«áƒ˜áƒ¡ მრუდის რედáƒáƒ¥áƒ¢áƒ˜áƒ ებáƒ" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4983,6 +4973,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4998,11 +4992,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5059,6 +5048,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5069,7 +5062,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5111,7 +5110,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "შექმნáƒ" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5135,12 +5143,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy -msgid "Create Polygon" -msgstr "შექმნáƒ" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5168,19 +5171,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5319,20 +5322,24 @@ msgid "Error saving file!" msgstr "ჩáƒáƒ¢áƒ•áƒ˜áƒ თვის შეცდáƒáƒ›áƒ”ბი!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "ჩáƒáƒ¢áƒ•áƒ˜áƒ თვის შეცდáƒáƒ›áƒ”ბი!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "ჩáƒáƒ¢áƒ•áƒ˜áƒ თვის შეცდáƒáƒ›áƒ:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "შეცდáƒáƒ›áƒ ფáƒáƒœáƒ¢áƒ˜áƒ¡ ჩáƒáƒ¢áƒ•áƒ˜áƒ თვისáƒáƒ¡." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "ჩáƒáƒ¢áƒ•áƒ˜áƒ თვის შეცდáƒáƒ›áƒ:" #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5352,6 +5359,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5392,8 +5407,9 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "" +#, fuzzy +msgid "Open..." +msgstr "გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ˜" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5421,15 +5437,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5539,6 +5555,10 @@ msgstr "" msgid "Go to Function" msgstr "ფუნქციის შექმნáƒ" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5571,10 +5591,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6268,11 +6284,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6511,12 +6532,13 @@ msgid "Clear transform" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ დáƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ ცვლილებáƒ" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ თრექის წáƒáƒ¨áƒšáƒ." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6527,13 +6549,32 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "შექმნáƒ" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6563,15 +6604,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "წáƒáƒ•áƒ¨áƒáƒšáƒáƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ”ბი?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "შექმნáƒ" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6589,11 +6640,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6609,6 +6666,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6645,7 +6706,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8094,7 +8155,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8940,7 +9001,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8983,7 +9044,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9075,6 +9138,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9091,6 +9158,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9147,10 +9218,6 @@ msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9169,6 +9236,18 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Zoom out" +#~ msgstr "ზუმის დáƒáƒžáƒáƒ¢áƒáƒ áƒáƒ•áƒ”ბáƒ" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "ზუმის გáƒáƒ–რდáƒ" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "ზუმის გáƒáƒ–რდáƒ" + +#, fuzzy #~ msgid "Whole words" #~ msgstr "მთლიáƒáƒœáƒ˜ სიტყვები" @@ -9200,9 +9279,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის გáƒáƒ“áƒáƒ¢áƒáƒœáƒ˜áƒ¡ რეჟიმის ცვლილებáƒ" -#~ msgid "Edit Node Curve" -#~ msgstr "კვáƒáƒœáƒ«áƒ˜áƒ¡ მრუდის რედáƒáƒ¥áƒ¢áƒ˜áƒ ებáƒ" - #~ msgid "Anim Add Key" #~ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 31c64514ca..40dd160409 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: 2018-11-16 16:07+0000\n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" "Last-Translator: ì†¡íƒœì„ <xotjq237@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" @@ -25,7 +25,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -259,7 +259,6 @@ msgstr "%dê°œì˜ ìƒˆ íŠ¸ëž™ì„ ìƒì„±í•˜ê³ 키를 ì‚½ìž…í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -406,12 +405,10 @@ msgid "Delete Selection" msgstr "ì„ íƒ ì‚ì œ" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "ë‹¤ìŒ ìŠ¤í…으로 ì´ë™" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "ì´ì „ 스í…으로 ì´ë™" @@ -535,15 +532,19 @@ msgstr "ì „ì²´ 바꾸기" msgid "Selection Only" msgstr "ì„ íƒ ì˜ì—만" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "확대" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "축소" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "줌 리셋" @@ -552,8 +553,9 @@ msgid "Warnings:" msgstr "ê²½ê³ :" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "확대:" +#, fuzzy +msgid "Font Size:" +msgstr "소스 í°íŠ¸ í¬ê¸°:" #: editor/code_editor.cpp msgid "Line:" @@ -666,9 +668,8 @@ msgid "Edit Connection: " msgstr "ì—°ê²° 편집 " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "ì´ ì‹œê·¸ë„ì—ì„œ ëª¨ë“ ì—°ê²°ì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" +msgstr "\"%s\" 시그ë„ì—ì„œ ëª¨ë“ ì—°ê²°ì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -713,8 +714,8 @@ msgid "Recent:" msgstr "최근:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "검색:" @@ -765,8 +766,7 @@ msgid "Resource" msgstr "리소스" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "경로" @@ -822,9 +822,8 @@ msgid "Error loading:" msgstr "불러오기 중 ì—러:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "ì¢…ì† ê´€ê³„ë¥¼ ì°¾ì„ ìˆ˜ 없어 씬를 불러올 수 없습니다:" +msgstr "ì¢…ì† ê´€ê³„ë¥¼ ì°¾ì„ ìˆ˜ 없어 ì”¬ì„ ë¶ˆëŸ¬ì˜¬ 수 없습니다:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1226,8 +1225,7 @@ msgid "Node Name:" msgstr "노드 ì´ë¦„:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "ì´ë¦„" @@ -1305,7 +1303,6 @@ msgid "File Exists, Overwrite?" msgstr "파ì¼ì´ 존재합니다. ë®ì–´ì“°ì‹œê² 습니까?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "ì´ í´ë” ì„ íƒ" @@ -1314,15 +1311,13 @@ msgid "Copy Path" msgstr "경로 복사" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "íŒŒì¼ ë§¤ë‹ˆì €ì—ì„œ 보기" +msgstr "íŒŒì¼ íƒìƒ‰ê¸°ì—ì„œ 열기" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "íŒŒì¼ ë§¤ë‹ˆì €ì—ì„œ 보기" +msgstr "íŒŒì¼ íƒìƒ‰ê¸°ì—ì„œ 보기" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1465,19 +1460,16 @@ msgid "Methods" msgstr "메서드" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "메서드" +msgstr "메서드:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "ì†ì„±" +msgstr "테마 ì†ì„±" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "ì†ì„±:" +msgstr "테마 ì†ì„±:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1504,14 +1496,12 @@ msgid "Constants:" msgstr "ìƒìˆ˜:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "설명" +msgstr "í´ëž˜ìŠ¤ 설명" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "설명:" +msgstr "í´ëž˜ìŠ¤ 설명:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1528,12 +1518,10 @@ msgstr "" "니다." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "ì†ì„± 설명:" +msgstr "ì†ì„± 설명" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" msgstr "ì†ì„± 설명:" @@ -1546,12 +1534,10 @@ msgstr "" "기여하여[/url][/color] ë” ë‚˜ì•„ì§€ê²Œ ë„와주세요!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "메서드 설명:" +msgstr "메서드 설명" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" msgstr "메서드 설명:" @@ -1569,49 +1555,40 @@ msgid "Search Help" msgstr "ë„ì›€ë§ ê²€ìƒ‰" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Normal 표시" +msgstr "ëª¨ë‘ í‘œì‹œ" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "í´ëž˜ìŠ¤(Class)" +msgstr "í´ëž˜ìŠ¤ë§Œ" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "메서드" +msgstr "메서드만" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "시그ë„(Signal)" +msgstr "시그ë„만" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "ìƒìˆ˜(Constant)" +msgstr "ìƒìˆ˜ë§Œ" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "ì†ì„±" +msgstr "ì†ì„±ë§Œ" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "ì†ì„±" +msgstr "테마 ì†ì„±ë§Œ" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "멤버" +msgstr "멤버 타입" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "í´ëž˜ìŠ¤:" +msgstr "í´ëž˜ìŠ¤" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1710,6 +1687,12 @@ msgstr "ì´ ìž‘ì—…ì€ íŠ¸ë¦¬ 루트 ì—†ì´ëŠ” 불가합니다." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1718,7 +1701,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "ì—´ë ¤ìžˆëŠ” ì”¬ì„ ë®ì–´ 쓸 수 없습니다!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1968,13 +1951,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"해당 경로ì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' 스í¬ë¦½íŠ¸ê°€ tool 모드" -"ê°€ 아닙니다." +"해당 경로ì—ì„œ ì• ë“œì˜¨ 스í¬ë¦½íŠ¸ë¥¼ 불러올 수 없습니다: '%s' ì½”ë“œì— ì˜¤ë¥˜ê°€ 있는 " +"것 같습니다, êµ¬ë¬¸ì„ í™•ì¸í•´ ë³´ì‹ì‹œì˜¤." #: editor/editor_node.cpp msgid "" @@ -2028,7 +2010,6 @@ 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 "íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ 보기" @@ -2113,7 +2094,6 @@ msgid "Save Scene" msgstr "씬 ì €ìž¥" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "ëª¨ë“ ì”¬ ì €ìž¥" @@ -2143,7 +2123,7 @@ msgid "Undo" msgstr "ë˜ëŒë¦¬ê¸°" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "다시 실행" @@ -2167,7 +2147,7 @@ msgstr "프로ì 트 ì„¤ì •" msgid "Export" msgstr "내보내기" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ë„구" @@ -2598,9 +2578,17 @@ msgstr "ì§€ì •í•˜ê¸°.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"파ì¼ë¡œ ì €ìž¥ëœ ë¦¬ì†ŒìŠ¤ì—ì„œ ViewportTexture를 만들 수 없습니다.\n" +"리소스가 ì”¬ì— ì†í•´ 있어야 합니다." #: editor/editor_properties.cpp msgid "" @@ -2609,13 +2597,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"리소스가 ì”¬ì— ë¡œì»¬ë¡œ ì„¤ì •ë˜ì§€ 않았기 ë•Œë¬¸ì— ViewportTexture를 만들 수 없습니" +"다.\n" +"ë¦¬ì†ŒìŠ¤ì˜ 'local to scene' ì†ì„±ì„ 켜ì‹ì‹œì˜¤ (ê·¸ë¦¬ê³ ëª¨ë“ ë¦¬ì†ŒìŠ¤ë¥¼ 노드가 í¬í•¨í•˜" +"ê³ ìžˆì–´ì•¼ 합니다)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "ë·°í¬íŠ¸ ì„ íƒ" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "새 스í¬ë¦½íŠ¸" @@ -2923,9 +2914,8 @@ msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "file_type_cache.cch를 열수 없어서, íŒŒì¼ íƒ€ìž… ìºì‰¬ë¥¼ ì €ìž¥í•˜ì§€ 않습니다!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "ì¦ê²¨ì°¾ê¸°:" +msgstr "ì¦ê²¨ì°¾ê¸°" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3009,14 +2999,12 @@ msgid "Instance" msgstr "ì¸ìŠ¤í„´ìŠ¤" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "ì¦ê²¨ì°¾ê¸°:" +msgstr "ì¦ê²¨ì°¾ê¸°ë¡œ 추가" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "그룹ì—ì„œ ì œê±°" +msgstr "ì¦ê²¨ì°¾ê¸°ì—ì„œ ì œê±°" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3038,7 +3026,7 @@ msgstr "ë³µì œ..." msgid "Move To..." msgstr "ì´ë™..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "새 스í¬ë¦½íŠ¸..." @@ -3047,12 +3035,10 @@ msgid "New Resource..." msgstr "새 리소스..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" msgstr "ëª¨ë‘ í™•ìž¥" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" msgstr "ëª¨ë‘ ì ‘ê¸°" @@ -3076,9 +3062,8 @@ msgid "Re-Scan Filesystem" msgstr "íŒŒì¼ ì‹œìŠ¤í…œ 재검사" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "모드 í† ê¸€" +msgstr "ë¶„í• ëª¨ë“œ í† ê¸€" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3113,24 +3098,20 @@ msgid "Create Script" msgstr "스í¬ë¦½íŠ¸ 만들기" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "파ì¼ì—ì„œ 찾기" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "찾기: " +msgstr "찾기:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "í´ë”: " +msgstr "í´ë”:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "í•„í„°" +msgstr "í•„í„°:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3170,7 +3151,8 @@ msgid "Group name already exists." msgstr "그룹 ì´ë¦„ì´ ì´ë¯¸ 존재합니다." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ê·¸ë£¹ ì´ë¦„." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3308,12 +3290,10 @@ msgid "Failed to load resource." msgstr "리소스 불러오기 실패." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "ëª¨ë“ ì†ì„± 펼치기" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "ëª¨ë“ ì†ì„± ì ‘ê¸°" @@ -3419,14 +3399,13 @@ msgid "Activate now?" msgstr "지금 ì‹¤í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "í´ë¦¬ê³¤ 만들기" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "í´ë¦¬ê³¤ 편집" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3434,25 +3413,27 @@ msgid "Insert Point" msgstr "í¬ì¸íŠ¸ 삽입" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "í´ë¦¬ê³¤ 편집 (ì ì‚ì œ)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "í´ë¦¬ê³¤ê³¼ í¬ì¸íŠ¸ ì‚ì œ" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "처ìŒë¶€í„° 새로운 í´ë¦¬ê³¤ 만들기" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "í¬ì¸íŠ¸ 만들기." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "기존 í´ë¦¬ê³¤ 편집:\n" "좌í´ë¦: í¬ì¸íŠ¸ ì´ë™.\n" @@ -3460,8 +3441,9 @@ msgstr "" "ìš°í´ë¦: í¬ì¸íŠ¸ 지우기." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "í¬ì¸íŠ¸ ì‚ì œ" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "í¬ì¸íŠ¸ 지우기." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3508,15 +3490,6 @@ msgstr "í¬ì¸íŠ¸ë¥¼ ì„ íƒí•˜ê³ ì´ë™í•©ë‹ˆë‹¤, ìš°í´ë¦ìœ¼ë¡œ í¬ì¸íŠ¸ë¥¼ #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "í¬ì¸íŠ¸ 만들기." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "í¬ì¸íŠ¸ 지우기." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "í¬ì¸íŠ¸" @@ -3595,7 +3568,6 @@ msgstr "" "ì„ ê²€ìƒ‰í• ìˆ˜ 없습니다." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "노드 추가.." @@ -4132,7 +4104,7 @@ msgstr "모ë‘" msgid "Plugins" msgstr "플러그ì¸" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "ì •ë ¬:" @@ -4261,9 +4233,8 @@ msgid "Resize CanvasItem" msgstr "CanvasItem í¬ê¸° ì¡°ì ˆ" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "CanvasItem íšŒì „" +msgstr "CanvasItem 규모" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4286,18 +4257,19 @@ msgid "Paste Pose" msgstr "í¬ì¦ˆ 붙여넣기" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "축소" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "배율 초기화" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "확대" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "ì„ íƒ ëª¨ë“œ" @@ -4326,9 +4298,8 @@ msgid "Rotate Mode" msgstr "íšŒì „ 모드" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "í¬ê¸° ì¡°ì ˆ 모드 (R)" +msgstr "규모 모드" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4427,9 +4398,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "오브ì íŠ¸ì˜ ìžì‹ë…¸ë“œê°€ ì„ íƒë 수 있ë„ë¡ ë³µì›í•©ë‹ˆë‹¤." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "ìŠ¤ì¼ˆë ˆí†¤" +msgstr "ìŠ¤ì¼ˆë ˆí†¤ ì„¤ì •" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4483,7 +4453,7 @@ msgstr "ë·°í¬íŠ¸ 보기" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "그룹과 ìž ê¸ˆ ì•„ì´ì½˜ ë³´ì´ê¸°" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4556,8 +4526,17 @@ msgstr "" "드래그 & ë“œë¡ + Alt : 노드 타입 변경" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "í´ë¦¬ê³¤3D 만들기" +#, fuzzy +msgid "Create Polygon3D" +msgstr "í´ë¦¬ê³¤ 만들기" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "í´ë¦¬ê³¤ 편집" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "í´ë¦¬ê³¤ 편집 (ì ì‚ì œ)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4658,37 +4637,9 @@ msgid "Item List Editor" msgstr "í•ëª© ëª©ë¡ ì—디터" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"ì´ ë…¸ë“œì— OccluderPolygon2D 리소스가 없습니다.\n" -"새로 만들어서 ì§€ì •í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Occluder í´ë¦¬ê³¤ 만들기" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "처ìŒë¶€í„° 새로운 í´ë¦¬ê³¤ 만들기." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "기존 í´ë¦¬ê³¤ 편집:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "좌í´ë¦: í¬ì¸íŠ¸ ì´ë™." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+좌í´ë¦: ì„ ë¶„ ë¶„í• ." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "ìš°í´ë¦: í¬ì¸íŠ¸ ì‚ì œ." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "메쉬가 비었습니다!" @@ -4924,9 +4875,8 @@ msgid "Create Navigation Polygon" msgstr "네비게ì´ì…˜ í´ë¦¬ê³¤ 만들기" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "가시성 ì§ì‚¬ê°í˜•ì„ 만들기" +msgstr "가시성 ì§ì‚¬ê°í˜• 만들기" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" @@ -5057,6 +5007,11 @@ msgid "Add Point to Curve" msgstr "ì»¤ë¸Œì— í¬ì¸íŠ¸ 추가" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "커브 닫기" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "ì»¤ë¸Œì˜ í¬ì¸íŠ¸ ì´ë™" @@ -5084,6 +5039,11 @@ msgid "Click: Add Point" msgstr "í´ë¦: í¬ì¸íŠ¸ 추가" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "ì„ ë¶„ ë¶„í• (커브)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "ìš°í´ë¦: í¬ì¸íŠ¸ ì‚ì œ" @@ -5099,11 +5059,6 @@ msgstr "í¬ì¸íŠ¸ 추가 (빈 공간)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "ì„ ë¶„ ë¶„í• (커브)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "í¬ì¸íŠ¸ ì‚ì œ" @@ -5160,6 +5115,10 @@ msgstr "아웃-컨트롤 í¬ì¸íŠ¸ ì‚ì œ" msgid "Remove In-Control Point" msgstr "ì¸-컨트롤 í¬ì¸íŠ¸ ì‚ì œ" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "ì„ ë¶„ ë¶„í• (커브)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "ê´€ì ˆ ì´ë™" @@ -5170,10 +5129,20 @@ msgid "" msgstr "Polygon2Dì˜ ìŠ¤ì¼ˆë ˆí†¤ ì†ì„±ì´ Skeleton2D 노드를 í–¥í•˜ê³ ìžˆì§€ ì•ŠìŒ" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "본 ë™ê¸°í™”" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" +"ì´ ë…¸ë“œì— í…스ì³ê°€ 없습니다.\n" +"구ì—ì„ íŽ¸ì§‘í•˜ê¸° 위해서는 í…스ì³ë¥¼ ì§€ì •í•´ì•¼í•©ë‹ˆë‹¤." + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "UV 맵 만들기" @@ -5210,10 +5179,21 @@ msgid "Transform UV Map" msgstr "UV 맵 변형" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "변형 타입" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "본 가중치 페ì¸íŠ¸" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "í´ë¦¬ê³¤ 2D UV ì—디터" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "í´ë¦¬ê³¤ 2D UV ì—디터" @@ -5234,11 +5214,8 @@ msgid "Bones" msgstr "본" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "í´ë¦¬ê³¤ 만들기" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "í¬ì¸íŠ¸ ì´ë™" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5266,19 +5243,23 @@ msgid "Scale Polygon" msgstr "í´ë¦¬ê³¤ í¬ê¸° ì¡°ì ˆ" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "ë‘ í¬ì¸íŠ¸ë¥¼ 연결하여 ë¶„í• " #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "지울 ë¶„í• ì„ ì„ íƒ" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "ì§€ì •í•œ ê°•ë„ë¡œ 가중치를 페ì¸íŠ¸" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "ì§€ì •í•œ ê°•ë„ë¡œ 가중치를 페ì¸íŠ¸ 취소" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5404,9 +5385,8 @@ msgid "Error writing TextFile:" msgstr "í…스트 íŒŒì¼ ì“°ê¸° ì—러:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." -msgstr "ì—러로 파ì¼ì„ 불러올 수 ì—†ìŒ." +msgstr "ì—러: 파ì¼ì„ 불러올 수 ì—†ìŒ." #: editor/plugins/script_editor_plugin.cpp msgid "Error could not load file." @@ -5417,19 +5397,23 @@ msgid "Error saving file!" msgstr "íŒŒì¼ ì €ìž¥ 중 ì—러!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "테마 ì €ìž¥ 중 ì—러" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "ì €ìž¥ 중 ì—러" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "테마 ê°€ì ¸ì˜¤ëŠ” 중 ì—러" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "ê°€ì ¸ì˜¤ëŠ” 중 ì—러" #: editor/plugins/script_editor_plugin.cpp @@ -5449,6 +5433,14 @@ msgid "Import Theme" msgstr "테마 ê°€ì ¸ì˜¤ê¸°" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "테마 ì €ìž¥ 중 ì—러" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "ì €ìž¥ 중 ì—러" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "테마 다른 ì´ë¦„으로 ì €ìž¥..." @@ -5489,8 +5481,9 @@ msgid "File" msgstr "파ì¼" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "새 í…스트 파ì¼" +#, fuzzy +msgid "Open..." +msgstr "열기" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5505,7 +5498,6 @@ msgid "Copy Script Path" msgstr "스í¬ë¦½íŠ¸ 경로 복사" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "ì´ì „ ížˆìŠ¤í† ë¦¬" @@ -5519,6 +5511,11 @@ msgid "Theme" msgstr "테마" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "테마 ê°€ì ¸ì˜¤ê¸°" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "테마 다시 불러오기" @@ -5527,10 +5524,6 @@ msgid "Save Theme" msgstr "테마 ì €ìž¥" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "테마 다른 ì´ë¦„으로 ì €ìž¥" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "문서 닫기" @@ -5577,9 +5570,8 @@ msgid "Keep Debugger Open" msgstr "디버거 í•ìƒ 열어놓기" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" -msgstr "외부 ì—디터와 디버그" +msgstr "외부 ì—디터로 디버깅" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" @@ -5622,7 +5614,6 @@ msgid "Debugger" msgstr "디버거" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" msgstr "검색 ê²°ê³¼" @@ -5635,9 +5626,12 @@ msgid "(ignore)" msgstr "(무시함)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "함수로 ì´ë™..." +msgstr "함수로 ì´ë™" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "표준" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5671,10 +5665,6 @@ msgstr "대문ìžë¡œ 시작" msgid "Syntax Highlighter" msgstr "구문 ê°•ì¡°" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "표준" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5726,12 +5716,10 @@ msgid "Trim Trailing Whitespace" msgstr "후행 공백 ë¬¸ìž ì œê±°" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" -msgstr "들여쓰기를 스페ì´ìŠ¤ë¡œ 변환" +msgstr "들여쓰기를 공백으로 변환" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "들여쓰기를 íƒìœ¼ë¡œ 변환" @@ -5749,12 +5737,10 @@ msgid "Remove All Breakpoints" msgstr "중단ì ëª¨ë‘ ì‚ì œ" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "ë‹¤ìŒ ì¤‘ë‹¨ì 으로 ì´ë™" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" msgstr "ì´ì „ 중단ì 으로 ì´ë™" @@ -5763,17 +5749,14 @@ msgid "Find Previous" msgstr "ì´ì „ 찾기" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "파ì¼ì—ì„œ 찾기..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "함수로 ì´ë™..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "ë¼ì¸ìœ¼ë¡œ ì´ë™..." @@ -5872,7 +5855,7 @@ msgstr "피치" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "ìš”" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6039,9 +6022,8 @@ msgid "Freelook Speed Modifier" msgstr "ìžìœ ì‹œì ì†ë„ 변화" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "ë·° íšŒì „ ìž ê¸ˆ" +msgstr "ë·° íšŒì „ ìž ê¹€" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6375,12 +6357,18 @@ msgid "Set Region Rect" msgstr "ì˜ì— ì„¤ì •" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "핸들 ì„¤ì •" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "스냅 모드:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<ì—†ìŒ>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "ì—†ìŒ" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6543,9 +6531,8 @@ msgid "Fix Invalid Tiles" msgstr "ìž˜ëª»ëœ íƒ€ì¼ ìˆ˜ì •" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "ì„ íƒ í•ëª© 화면 ì¤‘ì•™ì— í‘œì‹œ" +msgstr "ì„ íƒ ìž˜ë¼ë‚´ê¸°" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6592,39 +6579,37 @@ msgid "Pick Tile" msgstr "íƒ€ì¼ ì„ íƒ" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "ì„ íƒ ì´ë™" +msgstr "ì„ íƒ ë³µì‚¬" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "íšŒì „ 모드" +msgstr "왼쪽으로 íšŒì „" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "오른쪽으로 ì´ë™" +msgstr "오른쪽으로 íšŒì „" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "가로로 뒤집기" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "세로로 뒤집기" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "변형" +msgstr "변형 지우기" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "타ì¼ì…‹ì— í…ìŠ¤ì³ ì¶”ê°€" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "현재 í…스ì³ë¥¼ 타ì¼ì…‹ì—ì„œ ì œê±°" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6636,21 +6621,40 @@ msgid "Merge from Scene" msgstr "씬으로부터 병합하기" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"ì‚¬ìš©í• ì„œë¸Œ 타ì¼ì„ ì•„ì´ì½˜ìœ¼ë¡œ ì„¤ì •í•˜ì„¸ìš”, íš¨ë ¥ì—†ëŠ” ìžë™íƒ€ì¼ ë°”ì¸ë”©ì—ë„ ì‚¬ìš©ë©" -"니다." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "íƒ€ì¼ ì´ë¦„ ë³´ì´ê¸° (Alt 키를 누르세요)" +#, fuzzy +msgid "Paste bitmask." +msgstr "ì• ë‹ˆë©”ì´ì…˜ 붙여넣기" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "í¬ì¸íŠ¸ 지우기." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "처ìŒë¶€í„° 새로운 í´ë¦¬ê³¤ 만들기." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "íƒ€ì¼ ì´ë¦„ ë³´ì´ê¸° (Alt 키를 누르세요)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" -msgstr "ì„ íƒí•œ í…스ì³ì™€ ëª¨ë“ íƒ€ì¼ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" +msgstr "ì„ íƒí•œ í…스ì³ì™€ ê·¸ê²ƒì„ ì‚¬ìš©í•˜ëŠ” ëª¨ë“ íƒ€ì¼ì„ ì‚ì œí•˜ê² ìŠµë‹ˆê¹Œ?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." @@ -6665,9 +6669,8 @@ msgid "Merge from scene?" msgstr "씬으로부터 ë³‘í•©í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " %s 파ì¼ì´ ì´ë¯¸ 목ë¡ì— 존재하여 추가ë˜ì§€ 않습니다." +msgstr "%s 파ì¼ì´ ì´ë¯¸ 목ë¡ì— 존재하여 추가ë˜ì§€ 않습니다." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6678,21 +6681,32 @@ msgstr "" "다른 타ì¼ì„ íŽ¸ì§‘í•˜ë ¤ë©´ í´ë¦." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "ì„ íƒëœ 파ì¼ë“¤ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"좌í´ë¦: 비트 켜기 ì„¤ì •.\n" -"ìš°í´ë¦: 비트 ë„기 ì„¤ì •.\n" +"현재 íŽ¸ì§‘ëœ ì„œë¸Œ íƒ€ì¼ ì„ íƒ.\n" "다른 타ì¼ì„ íŽ¸ì§‘í•˜ë ¤ë©´ í´ë¦." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "í¬ì¸íŠ¸ ì‚ì œ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"현재 íŽ¸ì§‘ëœ ì„œë¸Œ íƒ€ì¼ ì„ íƒ.\n" +"좌í´ë¦: 비트 켜기 ì„¤ì •.\n" +"ìš°í´ë¦: 비트 ë„기 ì„¤ì •.\n" "다른 타ì¼ì„ íŽ¸ì§‘í•˜ë ¤ë©´ í´ë¦." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6714,11 +6728,21 @@ msgstr "" "다른 타ì¼ì„ íŽ¸ì§‘í•˜ë ¤ë©´ í´ë¦." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"서브 타ì¼ì„ ì„ íƒí•´ ìš°ì„ ìˆœìœ„ë¥¼ 바꿈.\n" +"다른 타ì¼ì„ íŽ¸ì§‘í•˜ë ¤ë©´ í´ë¦." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "ì´ ì†ì„±ì„ 바꿀 수 없습니다." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "íƒ€ì¼ ì…‹" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6734,6 +6758,11 @@ msgid "Light" msgstr "ë¹›" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "노드 추가.." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "비주얼 ì…°ì´ë”" @@ -6755,12 +6784,11 @@ msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ì—†ê±°ë‚˜ ì†ìƒë¨:" #: editor/project_export.cpp msgid "Release" -msgstr "" +msgstr "ë°°í¬" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "%s 내보내기" +msgstr "ëª¨ë‘ ë‚´ë³´ë‚´ê¸°" #: editor/project_export.cpp msgid "Presets" @@ -6772,8 +6800,8 @@ msgstr "추가..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "프리셋 내보내기:" +msgid "Export Path" +msgstr "경로 내보내기:" #: editor/project_export.cpp msgid "Resources" @@ -6834,14 +6862,12 @@ msgid "Export PCK/Zip" msgstr "PCK/Zip 내보내기" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "내보내기 모드:" +msgstr "내보내기 모드?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "내보내기" +msgstr "ëª¨ë‘ ë‚´ë³´ë‚´ê¸°" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7526,16 +7552,14 @@ msgid "Step" msgstr "단계" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" -msgstr "ì¹´ìš´í„°ê°€ ê° ë…¸ë“œì—ì„œ ì¦ê°€í•˜ëŠ” ì–‘" +msgstr "ê° ë…¸ë“œì— ëŒ€í•´ ì¹´ìš´í„°ê°€ ì¦ê°€í•˜ëŠ” ì–‘" #: editor/rename_dialog.cpp msgid "Padding" msgstr "패딩(Padding)" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." @@ -7682,6 +7706,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"\"editable_instance\"를 비활설화 하면 ë…¸ë“œì˜ ëª¨ë“ ì†ì„±ì´ 기본 값으로 ë˜ëŒì•„ê°‘" +"니다." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7755,9 +7781,8 @@ msgid "Clear Inheritance" msgstr "ìƒì† 지우기" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Godot 온ë¼ì¸ 문서 열기" +msgstr "문서 열기" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7772,9 +7797,8 @@ msgid "Change Type" msgstr "타입 변경" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "스í¬ë¦½íŠ¸ 열기" +msgstr "스í¬ë¦½íŠ¸ 확장" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -7936,9 +7960,8 @@ msgid "Path is empty" msgstr "경로가 비어 있ìŒ" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "스프ë¼ì´íŠ¸ê°€ 비었습니다!" +msgstr "íŒŒì¼ ì´ë¦„ì´ ë¹„ì—ˆìŠµë‹ˆë‹¤" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8029,9 +8052,8 @@ msgid "Bytes:" msgstr "ë°”ì´íŠ¸:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "ìŠ¤íƒ í”„ë ˆìž„" +msgstr "ìŠ¤íƒ ì¶”ì " #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8258,7 +8280,8 @@ msgid "GDNative" msgstr "GD네ì´í‹°ë¸Œ" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "ìŠ¤í… ì¸ìˆ˜ê°€ ì œë¡œìž…ë‹ˆë‹¤!" #: modules/gdscript/gdscript_functions.cpp @@ -8481,7 +8504,7 @@ msgstr "내부 예외 ìŠ¤íƒ ì¶”ì ì˜ ë" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "NavMesh ë² ì´í¬" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8867,12 +8890,11 @@ msgstr "비주얼 스í¬ë¦½íŠ¸ 검색" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Get %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Set " +msgstr "Set %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -8970,6 +8992,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"CPUParticles2D ì• ë‹ˆë©”ì´ì…˜ì„ ì‚¬ìš©í•˜ë ¤ë©´ \"Particles Animation\"ì´ í™œì„±í™”ëœ " +"CanvasItemMaterialì´ í•„ìš”í•©ë‹ˆë‹¤." #: scene/2d/light_2d.cpp msgid "" @@ -9022,6 +9046,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Particles2D ì• ë‹ˆë©”ì´ì…˜ì„ ì‚¬ìš©í•˜ë ¤ë©´ \"Particles Animation\"ì´ í™œì„±í™”ëœ " +"CanvasItemMaterialì´ í•„ìš”í•©ë‹ˆë‹¤." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9161,14 +9187,16 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "ë©”ì‹œë“¤ì„ íŒ¨ìŠ¤ë¥¼ 그리ë„ë¡ í• ë‹¹í•˜ì§€ 않았으므로 ë³´ì´ì§€ 않습니다." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "ì§€ì •ëœ ë©”ì‹œê°€ 없으므로 ì•„ë¬´ê²ƒë„ ë³´ì´ì§€ 않습니다." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"CPUParticles ì• ë‹ˆë©”ì´ì…˜ì„ ì‚¬ìš©í•˜ë ¤ë©´ \"Billboard Particles\"ì´ í™œì„±í™”ëœ " +"SpatialMaterialì´ í•„ìš”í•©ë‹ˆë‹¤." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9198,20 +9226,23 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"Particles ì• ë‹ˆë©”ì´ì…˜ì„ ì‚¬ìš©í•˜ë ¤ë©´ \"Billboard Particles\"ì´ í™œì„±í™”ëœ " +"SpatialMaterialì´ í•„ìš”í•©ë‹ˆë‹¤." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D는 Path2D ë…¸ë“œì˜ ìžì‹ë…¸ë“œë¡œ ìžˆì„ ë•Œë§Œ ë™ìž‘합니다." +msgstr "PathFollow는 Path ë…¸ë“œì˜ ìžì‹ìœ¼ë¡œ ìžˆì„ ë•Œë§Œ ë™ìž‘합니다." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D는 Path2D ë…¸ë“œì˜ ìžì‹ë…¸ë“œë¡œ ìžˆì„ ë•Œë§Œ ë™ìž‘합니다." +msgstr "OrientedPathFollow는 Path ë…¸ë“œì˜ ìžì‹ìœ¼ë¡œ ìžˆì„ ë•Œë§Œ ë™ìž‘합니다." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." -msgstr "" +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." +msgstr "OrientedPathFollow는 부모 Pathì—ì„œ 벡터를 활성화해야 합니다." #: scene/3d/physics_body.cpp msgid "" @@ -9249,7 +9280,6 @@ msgid "This body will be ignored until you set a mesh" msgstr "ì´ ë°”ë””ëŠ” 메시를 ì„¤ì •í• ë•Œ 까지 무시ë©ë‹ˆë‹¤" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" @@ -9313,6 +9343,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "AnimationPlayer 루트가 ìœ íš¨í•œ 노드가 아닙니다." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw 모드" @@ -9329,6 +9363,10 @@ msgstr "ê²½ê³ !" msgid "Please Confirm..." msgstr "확ì¸í•´ì£¼ì„¸ìš”..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9340,7 +9378,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "exp_editì´ ì°¸ì´ë¼ë©´ min_value는 반드시 > 0 ì´ì–´ì•¼ 합니다." #: scene/gui/scroll_container.cpp msgid "" @@ -9396,10 +9434,6 @@ msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í°íŠ¸ í¬ê¸°." msgid "Input" msgstr "ìž…ë ¥" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "ì—†ìŒ" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "ì…°ì´ë”ì— ìœ íš¨í•˜ì§€ ì•Šì€ ì†ŒìŠ¤." @@ -9416,6 +9450,59 @@ msgstr "ê· ì¼í•˜ê²Œ 배치함." msgid "Varyings can only be assigned in vertex function." msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다." +#~ msgid "Create Poly" +#~ msgstr "í´ë¦¬ê³¤ 만들기" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "처ìŒë¶€í„° 새로운 í´ë¦¬ê³¤ 만들기" + +#~ msgid "Zoom out" +#~ msgstr "축소" + +#~ msgid "Zoom in" +#~ msgstr "확대" + +#~ msgid "Create Poly3D" +#~ msgstr "í´ë¦¬ê³¤3D 만들기" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "ì´ ë…¸ë“œì— OccluderPolygon2D 리소스가 없습니다.\n" +#~ "새로 만들어서 ì§€ì •í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "기존 í´ë¦¬ê³¤ 편집:" + +#~ msgid "LMB: Move Point." +#~ msgstr "좌í´ë¦: í¬ì¸íŠ¸ ì´ë™." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+좌í´ë¦: ì„ ë¶„ ë¶„í• ." + +#~ msgid "RMB: Erase Point." +#~ msgstr "ìš°í´ë¦: í¬ì¸íŠ¸ ì‚ì œ." + +#~ msgid "New TextFile" +#~ msgstr "새 í…스트 파ì¼" + +#~ msgid "Save Theme As" +#~ msgstr "테마 다른 ì´ë¦„으로 ì €ìž¥" + +#~ msgid "<None>" +#~ msgstr "<ì—†ìŒ>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "ì‚¬ìš©í• ì„œë¸Œ 타ì¼ì„ ì•„ì´ì½˜ìœ¼ë¡œ ì„¤ì •í•˜ì„¸ìš”, íš¨ë ¥ì—†ëŠ” ìžë™íƒ€ì¼ ë°”ì¸ë”©ì—ë„ ì‚¬" +#~ "ìš©ë©ë‹ˆë‹¤." + +#~ msgid "Zoom:" +#~ msgstr "확대:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "\" ì—ì„œ ëª¨ë“ ì—°ê²°ì„ ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ" @@ -10115,9 +10202,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Source Font:" #~ msgstr "소스 í°íŠ¸:" -#~ msgid "Source Font Size:" -#~ msgstr "소스 í°íŠ¸ í¬ê¸°:" - #~ msgid "Dest Resource:" #~ msgstr "리소스 경로:" @@ -10911,13 +10995,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Scale Region Editor" #~ msgstr "ìŠ¤ì¼€ì¼ êµ¬ì— íŽ¸ì§‘ê¸°" -#~ msgid "" -#~ "No texture in this node.\n" -#~ "Set a texture to be able to edit region." -#~ msgstr "" -#~ "ì´ ë…¸ë“œì— í…스ì³ê°€ 없습니다.\n" -#~ "구ì—ì„ íŽ¸ì§‘í•˜ê¸° 위해서는 í…스ì³ë¥¼ ì§€ì •í•´ì•¼í•©ë‹ˆë‹¤." - #~ msgid "Inherit Scene" #~ msgstr "ìƒì† 씬" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 3926aea3e4..4bb1a5b724 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -7,16 +7,18 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-06-12 09:40+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" "Last-Translator: Kornelijus <kornelijus.github@gmail.com>\n" "Language-Team: Lithuanian <https://hosted.weblate.org/projects/godot-engine/" "godot/lt/>\n" "Language: lt\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 0 : n%10>=2 && (n%100<10 || n" "%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3;\n" -"X-Generator: Weblate 3.0.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -258,7 +260,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -530,15 +531,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Priartinti" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Nutolinti" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Atstatyti PriartinimÄ…" @@ -547,9 +552,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "Priartinti" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -713,8 +717,8 @@ msgid "Recent:" msgstr "Naujausi:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -761,8 +765,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1214,8 +1217,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1680,6 +1682,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2077,7 +2085,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2101,7 +2109,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2516,6 +2524,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2532,8 +2546,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2958,7 +2971,7 @@ msgstr "Duplikuoti" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3084,7 +3097,7 @@ msgstr "" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Netinkamas Å¡rifto dydis." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3333,44 +3346,45 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Keisti Poligono SkalÄ™" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Priedai" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Sukurti" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3415,16 +3429,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Sukurti" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3501,7 +3505,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4047,7 +4050,7 @@ msgstr "Visi" msgid "Plugins" msgstr "Priedai" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4195,21 +4198,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Nutolinti" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Nutolinti" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Priartinti" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4463,7 +4464,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4565,35 +4575,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4961,6 +4945,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4988,6 +4976,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5003,11 +4995,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5064,6 +5051,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5074,7 +5065,14 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5117,10 +5115,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Atidaryti 2D Editorių" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5141,12 +5149,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy -msgid "Create Polygon" -msgstr "Keisti Poligono SkalÄ™" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5174,19 +5177,19 @@ msgid "Scale Polygon" msgstr "Keisti Poligono SkalÄ™" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5326,20 +5329,24 @@ msgid "Error saving file!" msgstr "Ä®vyko klaida kraunant Å¡riftÄ…." #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Ä®vyko klaida kraunant Å¡riftÄ…." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Ä®vyko klaida kraunant Å¡riftÄ…." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Ä®vyko klaida kraunant Å¡riftÄ…." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Ä®vyko klaida kraunant Å¡riftÄ…." #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5360,6 +5367,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5400,8 +5415,9 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "" +#, fuzzy +msgid "Open..." +msgstr "Atidaryti" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5429,15 +5445,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "Importuoti Animacijas..." #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5545,6 +5562,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5577,10 +5598,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6273,11 +6290,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6516,12 +6538,13 @@ msgid "Clear transform" msgstr "Animacija: Pakeisti TransformacijÄ…" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "Panaikinti pasirinkimÄ…" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6532,13 +6555,32 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6568,15 +6610,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Panaikinti pasirinkimÄ…" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6594,11 +6646,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6614,6 +6672,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6650,8 +6712,9 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" -msgstr "" +#, fuzzy +msgid "Export Path" +msgstr "Importuoti iÅ¡ Nodo:" #: editor/project_export.cpp msgid "Resources" @@ -8108,7 +8171,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8955,7 +9018,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9000,7 +9063,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9093,6 +9158,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9109,6 +9178,10 @@ msgstr "Ä®spÄ—jimas!" msgid "Please Confirm..." msgstr "PraÅ¡ome Patvirtinti..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9165,10 +9238,6 @@ msgstr "Netinkamas Å¡rifto dydis." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9186,6 +9255,18 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Nutolinti" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Priartinti" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Priartinti" + #~ msgid "Disabled" #~ msgstr "IÅ¡jungta" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index ff10ecd88c..972bdda952 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -3,19 +3,22 @@ # Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) # This file is distributed under the same license as the Godot source code. # Gustavs Porietis (pg829-) <porietisgustavs@gmail.com>, 2018. +# Martch Zagorski <martchzagorski@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-11 13:29+0000\n" -"Last-Translator: Gustavs Porietis (pg829-) <porietisgustavs@gmail.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" +"Last-Translator: Martch Zagorski <martchzagorski@gmail.com>\n" "Language-Team: Latvian <https://hosted.weblate.org/projects/godot-engine/" "godot/lv/>\n" "Language: lv\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " "19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" -"X-Generator: Weblate 3.2.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -30,7 +33,7 @@ msgstr "Nepietiekams skaits baitu lai dekodÄ“tu baitus vai nepareizs formÄts." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "NederÄ«ga ievade %i (nav padota) izteikumÄ" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -38,19 +41,19 @@ msgstr "" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "NederÄ«gi operatoru %s, %s un %s operandi." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "NederÄ«gs %s tipa indekss bÄzes tipam %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "NederÄ«gs nosaukts indekss '%s' bÄzes tipam %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "Nepareizs arguments lai konstruÄ“tu '%s'" +msgstr "NderÄ«gs arguments, lai izveidotu '%s'" #: core/math/expression.cpp msgid "On call to '%s':" @@ -141,11 +144,11 @@ msgstr "Pievienot celiņu" #: editor/animation_track_editor.cpp msgid "Animation Length Time (seconds)" -msgstr "AnimÄcijas garums (sekundÄ“s)." +msgstr "AnimÄcijas Garums (sekundes)" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "AnimÄcijas cikls." +msgstr "AnimÄciju Cilpa" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -250,7 +253,6 @@ msgstr "Izveidot %d JAUNU celiņu un ievietot atslÄ“gievietni?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -525,15 +527,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "PietuvinÄt" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "AttÄlinÄt" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "AtiestatÄ«t tÄlummaiņu" @@ -542,8 +548,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "PietuvinÄt:" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -702,8 +708,8 @@ msgid "Recent:" msgstr "Nesenie:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "MeklÄ“t:" @@ -750,8 +756,7 @@ msgid "Resource" msgstr "Resurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -919,7 +924,7 @@ msgstr "Bronzas Donors" #: editor/editor_about.cpp msgid "Donors" -msgstr "Donors" +msgstr "ZiedotÄji" #: editor/editor_about.cpp msgid "License" @@ -1216,8 +1221,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nosaukums" @@ -1681,6 +1685,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2079,7 +2089,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2103,7 +2113,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2515,6 +2525,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2531,8 +2547,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2947,7 +2962,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3076,7 +3091,7 @@ msgstr "" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "NederÄ«gs nosaukums." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3322,44 +3337,45 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Izveidot" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Izveidot" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Izveidot" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3405,16 +3421,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Izveidot" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3491,7 +3497,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4028,7 +4033,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4176,21 +4181,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "AttÄlinÄt" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "AttÄlinÄt" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "PietuvinÄt" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4444,7 +4447,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Izveidot" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4546,35 +4558,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4942,6 +4928,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4969,6 +4959,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4984,11 +4978,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5045,6 +5034,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5055,7 +5048,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5097,7 +5096,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Izveidot" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5121,12 +5129,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy -msgid "Create Polygon" -msgstr "Izveidot" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5154,19 +5157,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5305,20 +5308,24 @@ msgid "Error saving file!" msgstr "Kļūmes lÄdÄ“jot!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Kļūmes lÄdÄ“jot!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Kļūme lÄdÄ“jot:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Kļūda lÄdÄ“jot fontu." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Kļūme lÄdÄ“jot:" #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5339,6 +5346,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5379,8 +5394,9 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "" +#, fuzzy +msgid "Open..." +msgstr "AtvÄ“rt" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5408,15 +5424,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5526,6 +5542,10 @@ msgstr "" msgid "Go to Function" msgstr "Izveidot Funkciju" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5558,10 +5578,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6255,11 +6271,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6498,12 +6519,13 @@ msgid "Clear transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "Noņemt IzvÄ“lÄ“to" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6514,13 +6536,33 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "IelÄ«mÄ“t celiņus" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Izveidot" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6550,15 +6592,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "IzdzÄ“st izvÄ“lÄ“tos failus?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Izveidot" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6576,11 +6628,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6596,6 +6654,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6632,7 +6694,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8080,7 +8142,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8924,7 +8986,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8967,7 +9029,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9058,6 +9122,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9074,6 +9142,10 @@ msgstr "BrÄ«dinÄjums!" msgid "Please Confirm..." msgstr "LÅ«dzu Apstipriniet..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9130,10 +9202,6 @@ msgstr "NederÄ«gs fonta izmÄ“rs." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9151,6 +9219,17 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "AttÄlinÄt" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "PietuvinÄt" + +#~ msgid "Zoom:" +#~ msgstr "PietuvinÄt:" + #~ msgid "Disabled" #~ msgstr "AtspÄ“jots" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 0f15ac029c..2a5c1b959f 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-08-28 18:40+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" "Last-Translator: christy james <jkuttu@gmail.com>\n" "Language-Team: Malayalam <https://hosted.weblate.org/projects/godot-engine/" "godot/ml/>\n" "Language: ml\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -247,7 +249,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -515,15 +516,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -532,7 +537,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -690,8 +695,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -738,8 +743,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1191,8 +1195,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1647,6 +1650,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2043,7 +2052,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2067,7 +2076,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2478,6 +2487,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2494,8 +2509,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2908,7 +2922,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3031,7 +3045,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3277,14 +3291,12 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +msgid "Edit Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3292,29 +3304,29 @@ msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3359,15 +3371,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3443,7 +3446,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -3975,7 +3977,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4123,15 +4125,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4387,7 +4389,15 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4489,35 +4499,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4885,6 +4869,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4912,6 +4900,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4927,11 +4919,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -4988,6 +4975,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -4998,7 +4989,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5038,7 +5035,15 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5062,11 +5067,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5094,19 +5095,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5244,19 +5245,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5276,6 +5277,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5316,7 +5325,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5345,15 +5354,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5460,6 +5469,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5492,10 +5505,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6184,11 +6193,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6424,11 +6438,11 @@ msgid "Clear transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6440,13 +6454,31 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6476,15 +6508,23 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete selected Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6502,11 +6542,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6522,6 +6568,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6558,7 +6608,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8001,7 +8051,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8843,7 +8893,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8886,7 +8936,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -8974,6 +9026,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -8990,6 +9046,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9046,10 +9106,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index 07b812a5dc..1ba233dfb1 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-07-29 03:39+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" "Last-Translator: Nafis Ibrahim <thepreciousnafis@gmail.com>\n" "Language-Team: Malay <https://hosted.weblate.org/projects/godot-engine/godot/" "ms/>\n" "Language: ms\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.1.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -255,7 +257,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -524,15 +525,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -541,7 +546,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -699,8 +704,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -747,8 +752,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1200,8 +1204,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1656,6 +1659,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2052,7 +2061,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2076,7 +2085,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2487,6 +2496,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2503,8 +2518,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2917,7 +2931,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3040,7 +3054,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3286,14 +3300,12 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +msgid "Edit Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3301,29 +3313,29 @@ msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3368,15 +3380,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3452,7 +3455,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -3986,7 +3988,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4134,15 +4136,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4398,7 +4400,15 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4500,35 +4510,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4896,6 +4880,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4923,6 +4911,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4938,11 +4930,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -4999,6 +4986,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5009,7 +5000,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5049,7 +5046,15 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5073,11 +5078,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5105,19 +5106,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5255,19 +5256,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5287,6 +5288,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5327,7 +5336,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5356,15 +5365,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5471,6 +5480,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5503,10 +5516,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6195,11 +6204,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6438,11 +6452,11 @@ msgid "Clear transform" msgstr "Anim Ubah Penukaran" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6454,13 +6468,31 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6490,15 +6522,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Semua Pilihan" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Semua Pilihan" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6516,11 +6558,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6536,6 +6584,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6572,7 +6624,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8017,7 +8069,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8861,7 +8913,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8904,7 +8956,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -8992,6 +9046,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9008,6 +9066,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9064,10 +9126,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 6f08cbbc12..c26538ce3a 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -15,15 +15,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-15 21:32+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Language-Team: Norwegian BokmÃ¥l <https://hosted.weblate.org/projects/godot-" -"engine/godot/nb/>\n" +"engine/godot/nb_NO/>\n" "Language: nb\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -56,8 +58,9 @@ msgid "Invalid index of type %s for base type %s" msgstr "Ugyldig indeks egenskap navn '%s' i node %s." #: core/math/expression.cpp +#, fuzzy msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "Ugyldig navngitt indeks \"%s\" for grunntypen %s" #: core/math/expression.cpp #, fuzzy @@ -272,7 +275,6 @@ msgstr "Lag %d NYE spor og sett inn nøkler?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -549,15 +551,19 @@ msgstr "Erstatt Alle" msgid "Selection Only" msgstr "Kun Valgte" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoom Inn" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zoom Ut" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Nullstill Zoom" @@ -567,8 +573,8 @@ msgstr "" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "Zoom Inn" +msgid "Font Size:" +msgstr "Frontvisning" #: editor/code_editor.cpp msgid "Line:" @@ -734,8 +740,8 @@ msgid "Recent:" msgstr "Nylige:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Søk:" @@ -786,8 +792,7 @@ msgid "Resource" msgstr "Ressurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Søkesti" @@ -1252,8 +1257,7 @@ msgid "Node Name:" msgstr "Nodenavn:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Navn" @@ -1736,6 +1740,12 @@ msgstr "Denne operasjonen kan ikke gjennomføres uten en trerot." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2175,7 +2185,7 @@ msgid "Undo" msgstr "Angre" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Gjenta" @@ -2200,7 +2210,7 @@ msgstr "Prosjektinnstillinger" msgid "Export" msgstr "Eksporter" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Verktøy" @@ -2651,6 +2661,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2667,8 +2683,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3118,7 +3133,7 @@ msgstr "Duplisér" msgid "Move To..." msgstr "Flytt Til..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "HurtigÃ¥pne Skript..." @@ -3262,7 +3277,7 @@ msgstr "ERROR: Animasjonsnavnet finnes allerede!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Ugyldig navn." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3523,14 +3538,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Lag Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Rediger Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3538,25 +3553,28 @@ msgid "Insert Point" msgstr "Sett inn Punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Rediger Poly (Fjern Punkt)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Fjern Poly Og Punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Lag en ny polygon fra bunnen" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Slett punkter" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Endre eksisterende polygon:\n" "Venstreklikk: Flytt Punkt.\n" @@ -3564,8 +3582,10 @@ msgstr "" "Høyreklikk: Fjern Punkt." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Slett punkter" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "Høyreklikk: Slett Punkt." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3611,17 +3631,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Slett punkter" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Høyreklikk: Slett Punkt." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Flytt Punkt" @@ -3700,7 +3709,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4266,7 +4274,7 @@ msgstr "Alle" msgid "Plugins" msgstr "Plugins" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sorter:" @@ -4420,21 +4428,19 @@ msgid "Paste Pose" msgstr "Lim Inn Pose" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Zoom Ut" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Zoom Ut" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Zoom Inn" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Velg Modus" @@ -4705,8 +4711,17 @@ msgstr "" "Dra & Slipp + Alft: Endre nodetype" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Lag Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Lag Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Rediger Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Rediger Poly (Fjern Punkt)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp #, fuzzy @@ -4811,35 +4826,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Lag en ny polygon fra bunnen." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Rediger eksisterende polygon:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "Venstreklikk: Flytt Punkt." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+Venstreklikk: Splitt Segment." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "Høyreklikk: Slett Punkt." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5210,6 +5199,11 @@ msgid "Add Point to Curve" msgstr "Legg til Punkt pÃ¥ Kurve" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Lukk Kurve" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Flytt Punkt pÃ¥ Kurve" @@ -5237,6 +5231,11 @@ msgid "Click: Add Point" msgstr "Klikk: Legg til Punkt" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Split Segment (i kurve)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Høyreklikk: Fjern Punkt" @@ -5252,11 +5251,6 @@ msgstr "Legg til Punkt (i tomt rom)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Split Segment (i kurve)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Fjern Punkt" @@ -5317,6 +5311,10 @@ msgstr "Fjern Funksjon" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Split Segment (i kurve)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5329,10 +5327,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Vis Ben" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "" @@ -5374,10 +5378,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Lag Poly" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Ã…pne 2D Editor" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5402,11 +5416,7 @@ msgstr "Lag Ben" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Lag Poly" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Flytt Punkt" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5434,20 +5444,20 @@ msgid "Scale Polygon" msgstr "Skaler Polygon" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Velg en Mappe Ã¥ Skanne" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5601,19 +5611,23 @@ msgid "Error saving file!" msgstr "Error ved lagring av TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Error ved lasting av tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Error ved lagring" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Error ved importering av tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Error ved importering" #: editor/plugins/script_editor_plugin.cpp @@ -5636,6 +5650,14 @@ msgid "Import Theme" msgstr "Importer Tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Error ved lasting av tema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Error ved lagring" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Lagre Tema Som..." @@ -5677,8 +5699,8 @@ msgstr "Fil" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Vis Filer" +msgid "Open..." +msgstr "Ã…pne" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5707,6 +5729,11 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importer Tema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Gjeninnlast drakt" @@ -5715,10 +5742,6 @@ msgid "Save Theme" msgstr "Lagre drakt" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Lagre drakt som" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Lukk Dokumentasjon" @@ -5826,6 +5849,10 @@ msgstr "" msgid "Go to Function" msgstr "Fjern Funksjon" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5858,10 +5885,6 @@ msgstr "Store bokstaver" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6576,11 +6599,17 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Sett Handle" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6828,12 +6857,12 @@ msgstr "Anim Forandre Omforming" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Legg til node(r) fra tre" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Fjern Kurvepunkt" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6845,13 +6874,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Lim inn Animasjon" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Høyreklikk: Slett Punkt." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Lag en ny polygon fra bunnen." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6881,16 +6931,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Slett valgte filer?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Velg Gjeldende Mappe" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Slett punkter" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Velg Gjeldende Mappe" @@ -6909,12 +6970,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Velg Gjeldende Mappe" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Denne operasjonen kan ikke gjøres uten en scene." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6931,6 +6999,10 @@ msgid "Light" msgstr "Høyre" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6969,7 +7041,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Eksporter Prosjekt" #: editor/project_export.cpp @@ -8463,7 +8535,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9344,7 +9416,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9387,7 +9459,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9480,6 +9554,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Animasjonstre er ugyldig." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9496,6 +9574,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9553,10 +9635,6 @@ msgstr "Ugyldig fontstørrelse." msgid "Input" msgstr "Legg til Input" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9574,6 +9652,46 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Lag Poly" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Lag en ny polygon fra bunnen" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Zoom Ut" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Zoom Inn" + +#~ msgid "Create Poly3D" +#~ msgstr "Lag Poly3D" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Rediger eksisterende polygon:" + +#~ msgid "LMB: Move Point." +#~ msgstr "Venstreklikk: Flytt Punkt." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+Venstreklikk: Splitt Segment." + +#~ msgid "RMB: Erase Point." +#~ msgstr "Høyreklikk: Slett Punkt." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Vis Filer" + +#~ msgid "Save Theme As" +#~ msgstr "Lagre drakt som" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Zoom Inn" + #~ msgid "Class List:" #~ msgstr "Klasseliste:" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index ba5a4db2dc..652fe9231f 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -24,18 +24,22 @@ # Wout Standaert <wout@blobkat.com>, 2017. # Zatherz <zatherz@linux.pl>, 2017. # Tahar Meijs <tntmeijs@gmail.com>, 2018. +# Laurent Windels <laurentwindels@yahoo.com>, 2018. +# rxadmin <r.van.eeghem@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-09-24 22:24+0000\n" -"Last-Translator: frank <frankvprive@gmail.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:41+0100\n" +"Last-Translator: rxadmin <r.van.eeghem@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" "Language: nl\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -270,7 +274,6 @@ msgstr "Maak %d NIEUWE tracks aan en keys invoeren?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -309,10 +312,14 @@ msgid "" "-AudioStreamPlayer2D\n" "-AudioStreamPlayer3D" msgstr "" +"Audio tracks kunnen enkel verwijzen naar nodes van het type:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "" +msgstr "Animatie tracks kunnen enkel verwijzen naar AnimatiePlayer nodes." #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." @@ -320,33 +327,31 @@ msgstr "Een animatiespeler kan zichzelf niet animeren, alleen andere spelers." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "Niet mogelijk om een nieuwe track toe te voegen zonder een root" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." -msgstr "" +msgstr "Track path is niet geldig, dus kan geen key toevoegen." #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "Track is niet van het type Spatial, kan geen key invoegen" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." -msgstr "" +msgstr "Track path is niet geldig, dus kan geen methode key toevoegen." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Method not found in object: " -msgstr "VariableGet niet gevonden in script: " +msgstr "Methode niet gevonden in object " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" msgstr "Anim Verplaats Keys" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Clipboard is empty" -msgstr "Bronnen klembord is leeg!" +msgstr "Klembord is leeg" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" @@ -356,14 +361,16 @@ msgstr "Anim Schaal Keys" msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "" +"Deze optie is nu niet mogelijk bij Bezier bewerken omdat slechts een spoor " +"aanwezig is." #: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." -msgstr "" +msgstr "Toon alleen sporen die horen bij de geselecteerde node in de boom." #: editor/animation_track_editor.cpp msgid "Group tracks by node or display them as plain list." -msgstr "" +msgstr "Sporen weergeven op basis van nodes of als lijst." #: editor/animation_track_editor.cpp #, fuzzy @@ -371,9 +378,8 @@ msgid "Snap (s): " msgstr "Stap(pen):" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation step value." -msgstr "Animatie boom is geldig." +msgstr "Animatie stap waarde." #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -385,19 +391,16 @@ msgid "Edit" msgstr "Bewerken" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation properties." -msgstr "AnimatieBoom" +msgstr "Animatie eigenschappen." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Copy Tracks" -msgstr "Kopieer Parameters" +msgstr "Kopieer sporen" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Paste Tracks" -msgstr "Plak Parameters" +msgstr "Plak sporen" #: editor/animation_track_editor.cpp msgid "Scale Selection" @@ -416,9 +419,8 @@ msgid "Duplicate Transposed" msgstr "Dupliceer Getransponeerde" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Delete Selection" -msgstr "Geselecteerde Verwijderen" +msgstr "Verwijder Selectie" #: editor/animation_track_editor.cpp #, fuzzy @@ -440,11 +442,11 @@ msgstr "Animatie Opschonen" #: editor/animation_track_editor.cpp msgid "Pick the node that will be animated:" -msgstr "" +msgstr "Kies de node die geanimeerd zal worden:" #: editor/animation_track_editor.cpp msgid "Use Bezier Curves" -msgstr "" +msgstr "Gebruik Bezier Curves" #: editor/animation_track_editor.cpp msgid "Anim. Optimizer" @@ -452,11 +454,11 @@ msgstr "Anim. Optimalisator" #: editor/animation_track_editor.cpp msgid "Max. Linear Error:" -msgstr "Max. Lineair Error:" +msgstr "Max. Lineaire Fout:" #: editor/animation_track_editor.cpp msgid "Max. Angular Error:" -msgstr "Max. Hoekig Error:" +msgstr "Max. Fout in hoek:" #: editor/animation_track_editor.cpp msgid "Max Optimizable Angle:" @@ -468,11 +470,11 @@ msgstr "Optimaliseren" #: editor/animation_track_editor.cpp msgid "Remove invalid keys" -msgstr "Verwijder ongeldige keys" +msgstr "Verwijder ongeldige sleutels" #: editor/animation_track_editor.cpp msgid "Remove unresolved and empty tracks" -msgstr "Verwijder onopgeloste en lege tracks" +msgstr "Verwijder onopgeloste en lege sporen" #: editor/animation_track_editor.cpp msgid "Clean-up all animations" @@ -492,7 +494,7 @@ msgstr "Schaal Ratio:" #: editor/animation_track_editor.cpp msgid "Select tracks to copy:" -msgstr "" +msgstr "Selecteer sporen om te kopieren:" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -504,7 +506,7 @@ msgstr "Kopiëren" #: editor/array_property_edit.cpp msgid "Resize Array" -msgstr "Array van Grootte Veranderen" +msgstr "Array Grootte Wijzigen" #: editor/array_property_edit.cpp msgid "Change Array Value Type" @@ -524,7 +526,7 @@ msgstr "Regelnummer:" #: editor/code_editor.cpp editor/editor_help.cpp msgid "No Matches" -msgstr "Geen Matches" +msgstr "Geen Overeenkomsten" #: editor/code_editor.cpp msgid "Replaced %d occurrence(s)." @@ -550,26 +552,30 @@ msgstr "Alle Vervangen" msgid "Selection Only" msgstr "Alleen Selectie" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Inzoomen" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Uitzoomen" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" -msgstr "Reset Zoom" +msgstr "Initialiseer Zoom" #: editor/code_editor.cpp msgid "Warnings:" -msgstr "" +msgstr "Waarschuwingen:" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "Inzoomen" +msgid "Font Size:" +msgstr "Vooraanzicht" #: editor/code_editor.cpp msgid "Line:" @@ -581,15 +587,15 @@ msgstr "Kolom:" #: editor/connections_dialog.cpp msgid "Method in target Node must be specified!" -msgstr "Methode in target Node moet gespecificeerd worden!" +msgstr "Methode in doel Node moet gespecificeerd worden!" #: editor/connections_dialog.cpp msgid "" "Target method not found! Specify a valid method or attach a script to target " "Node." msgstr "" -"Target methode niet gevonden! Specificeer een geldige methode of koppel een " -"script aan de target Node." +"Doel methode niet gevonden! Specificeer een geldige methode of koppel een " +"script aan de doel Node." #: editor/connections_dialog.cpp msgid "Connect To Node:" @@ -675,19 +681,17 @@ msgid "Disconnect" msgstr "Losmaken" #: editor/connections_dialog.cpp -#, fuzzy msgid "Connect Signal: " -msgstr "Signaal aan het Verbinden:" +msgstr "Verbind met Signaal: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Edit Connection: " -msgstr "Verbindingsfout" +msgstr "Verbinding bewerken: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Weet je zeker dat je meerdere projecten wilt uitvoeren?" +msgstr "" +"Weet je zeker dat je alle verbindingen met signaal \"%s\" wilt verwijderen?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -696,6 +700,7 @@ msgstr "Signalen" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from this signal?" msgstr "" +"Weet je zeker dat je alle verbindingen naar dit signaal wilt verwijderen?" #: editor/connections_dialog.cpp #, fuzzy @@ -708,9 +713,8 @@ msgid "Edit..." msgstr "Bewerken" #: editor/connections_dialog.cpp -#, fuzzy msgid "Go To Method" -msgstr "Methodes" +msgstr "Ga Naar Methode" #: editor/create_dialog.cpp msgid "Change %s Type" @@ -723,7 +727,7 @@ msgstr "Wijzig" #: editor/create_dialog.cpp msgid "Create New %s" -msgstr "Maake Nieuwe %s" +msgstr "Maak Nieuwe %s" #: editor/create_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp @@ -735,8 +739,8 @@ msgid "Recent:" msgstr "Recente:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Zoeken:" @@ -767,7 +771,7 @@ msgid "" "Changes will not take effect unless reloaded." msgstr "" "Scene '%s' wordt op dit moment gewijzigd.\n" -"Wijzigingen hebben geen effect tenzij ze herladen worden." +"Wijzigingen hebben geen effect tenzij de scene herladen worden." #: editor/dependency_editor.cpp msgid "" @@ -784,11 +788,10 @@ msgstr "Afhankelijkheden" #: editor/dependency_editor.cpp msgid "Resource" -msgstr "Resource" +msgstr "Bron" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Pad" @@ -798,7 +801,7 @@ msgstr "Afhankelijkheden:" #: editor/dependency_editor.cpp msgid "Fix Broken" -msgstr "Gebroken Repareren" +msgstr "Repareer defecten" #: editor/dependency_editor.cpp msgid "Dependency Editor" @@ -1253,8 +1256,7 @@ msgid "Node Name:" msgstr "Node Naam:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Naam" @@ -1737,6 +1739,12 @@ msgstr "Deze operatie kan niet gedaan worden zonder boomwortel." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2183,7 +2191,7 @@ msgid "Undo" msgstr "Ongedaan Maken" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Opnieuw" @@ -2207,7 +2215,7 @@ msgstr "Projectinstellingen" msgid "Export" msgstr "Exporteren" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Gereedschappen" @@ -2646,6 +2654,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2662,8 +2676,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "Kies een Aanzicht portaal" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3098,7 +3111,7 @@ msgstr "Dupliceren..." msgid "Move To..." msgstr "Verplaats Naar..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Open Script Snel..." @@ -3243,7 +3256,7 @@ msgstr "FOUTMELDING: Animatie naam bestaat al!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Ongeldige naam." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3501,14 +3514,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Creëer Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Bewerk Poly" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3516,25 +3529,28 @@ msgid "Insert Point" msgstr "Punt Toevoegen" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Bewerk Poly (Verwijder punt)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Verwijder Poly en punt" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Begin een nieuwe polygoon" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Verwijder punten" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Bewerk bestaande polygoon:\n" "LMK: Verplaats punt.\n" @@ -3542,8 +3558,10 @@ msgstr "" "RMK: Wis punt." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Verwijder punten" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "RMB: Verwijder Punt." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3589,17 +3607,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Verwijder punten" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "RMB: Verwijder Punt." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Beweeg Punt" @@ -3677,7 +3684,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Node Toevoegen" @@ -4230,7 +4236,7 @@ msgstr "Alle" msgid "Plugins" msgstr "Plugins" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sorteren:" @@ -4391,21 +4397,19 @@ msgid "Paste Pose" msgstr "Plak Houding" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Uitzoomen" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Uitzoomen" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Inzoomen" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Selecteer Modus" @@ -4675,8 +4679,17 @@ msgstr "" "Sleep & laat los + Alt : Verander node type" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Maak Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Creëer Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Bewerk Poly" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Bewerk Poly (Verwijder punt)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4779,37 +4792,9 @@ msgid "Item List Editor" msgstr "Item Lijst Editor" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Geen OccluderPolygon2D resource op deze node.\n" -"Creëer en wijs één toe?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Creëer Occluder Polygon" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Creëer een compleet nieuwe polygon." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Wijzig bestaande polygon:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: Verplaats Punt." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+LMB: Splits Segment." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Verwijder Punt." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh is leeg!" @@ -5188,6 +5173,11 @@ msgid "Add Point to Curve" msgstr "Voeg Punt toe aan Curve" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Sluit Curve" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Verplaats Punt in Curve" @@ -5215,6 +5205,11 @@ msgid "Click: Add Point" msgstr "Klik: Voeg Punt Toe" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Splits Segment (in curve)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Rechter Klik: Verwijder Punt" @@ -5230,11 +5225,6 @@ msgstr "Voeg Punt Toe (in lege ruimte)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Splits Segment (in curve)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Verwijder Punt" @@ -5291,6 +5281,10 @@ msgstr "Verwijder Uit-Controle Punt" msgid "Remove In-Control Point" msgstr "Verwijder In-Controle Punt" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Splits Segment (in curve)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5303,10 +5297,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Laat Botten Zien" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Creëer UV Map" @@ -5348,10 +5348,20 @@ msgid "Transform UV Map" msgstr "Transformeer UV Map" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Transformatie Type" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Polygon 2D UV Editor" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Polygon 2D UV Editor" @@ -5376,11 +5386,7 @@ msgstr "Maak Botten" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Creëer Poly" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Beweeg Punt" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5408,20 +5414,20 @@ msgid "Scale Polygon" msgstr "Schaal Polygon" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Selecteer een map om te scannen" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5571,19 +5577,23 @@ msgid "Error saving file!" msgstr "Error bij het opslaan van TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Fout bij het opslaan van het thema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Fout bij het opslaan" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Fout bij import van thema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Fout bij importeren" #: editor/plugins/script_editor_plugin.cpp @@ -5606,6 +5616,14 @@ msgid "Import Theme" msgstr "Importeer Thema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Fout bij het opslaan van het thema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Fout bij het opslaan" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Thema Opslaan Als..." @@ -5647,8 +5665,8 @@ msgstr "Bestand" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Bekijk Bestanden" +msgid "Open..." +msgstr "Openen" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5677,6 +5695,11 @@ msgid "Theme" msgstr "Thema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importeer Thema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Herlaad Thema" @@ -5685,10 +5708,6 @@ msgid "Save Theme" msgstr "Thema Opslaan" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Thema Opslaan Als" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Sluit Docs" @@ -5798,6 +5817,10 @@ msgstr "" msgid "Go to Function" msgstr "Ga Naar Functie..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Alleen bronnen uit bestandssysteem kunnen gedropt worden." @@ -5831,10 +5854,6 @@ msgstr "Maak Hoofdletters" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6551,11 +6570,18 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Stel Handgreep In" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Snap Modus:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<Geen>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6802,12 +6828,12 @@ msgstr "Transformatie" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Voeg Node(s) Toe Uit Tree" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Verwijder Signaal" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6819,13 +6845,34 @@ msgid "Merge from Scene" msgstr "Vervoeg vanuit Scene" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Plak Animatie" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "RMB: Verwijder Punt." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Creëer een compleet nieuwe polygon." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6855,11 +6902,9 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" +#, fuzzy +msgid "Delete selected Rect." +msgstr "Verwijder geselecteerde bestanden?" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6869,6 +6914,19 @@ msgid "" msgstr "Selecteer zojuist bewerkte sub-tegel." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Verwijder punten" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "Selecteer een sub-tegel om zijn prioriteit te veranderen." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6884,12 +6942,19 @@ msgstr "Selecteer een sub-tegel om zijn prioriteit te veranderen." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Selecteer een sub-tegel om zijn prioriteit te veranderen." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Deze operatie kan niet uitgevoerd worden zonder scene." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6909,6 +6974,11 @@ msgstr "Rechts" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Node Toevoegen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Shader" @@ -6948,7 +7018,7 @@ msgstr "Toevoegen..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Project Exporteren" #: editor/project_export.cpp @@ -7105,9 +7175,8 @@ msgid "Import Existing Project" msgstr "Importeer bestaand project" #: editor/project_manager.cpp -#, fuzzy msgid "Import & Edit" -msgstr "Importeren" +msgstr "Importeer & Bewerk" #: editor/project_manager.cpp msgid "Create New Project" @@ -7123,9 +7192,8 @@ msgid "Install Project:" msgstr "Installeer project:" #: editor/project_manager.cpp -#, fuzzy msgid "Install & Edit" -msgstr "Installeer" +msgstr "Installeer & Bewerk" #: editor/project_manager.cpp msgid "Project Name:" @@ -7141,9 +7209,8 @@ msgid "Project Path:" msgstr "Projectpad:" #: editor/project_manager.cpp -#, fuzzy msgid "Project Installation Path:" -msgstr "Projectpad:" +msgstr "Project Installatie Path:" #: editor/project_manager.cpp msgid "Browse" @@ -7154,9 +7221,8 @@ msgid "Unnamed Project" msgstr "Naamloos Project" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project" -msgstr "Verbind..." +msgstr "Kan project niet openen" #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -8074,7 +8140,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Toggle Visibility" -msgstr "" +msgstr "Toggle Zichtbaarheid" #: editor/scene_tree_editor.cpp msgid "" @@ -8088,7 +8154,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Rename Node" -msgstr "" +msgstr "Hernoem Node" #: editor/scene_tree_editor.cpp msgid "Scene Tree (Nodes):" @@ -8100,73 +8166,67 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Select a Node" -msgstr "" +msgstr "Selecteer een Node" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error loading template '%s'" -msgstr "Error bij het laden van lettertype." +msgstr "Error bij het laden van sjabloon '%s'" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Error - Could not create script in filesystem." -msgstr "Map kon niet gemaakt worden." +msgstr "Fout - Kon geen script aanmaken in bestandssysteem." #: editor/script_create_dialog.cpp msgid "Error loading script from %s" -msgstr "" +msgstr "Fout bij het laden script van %s" #: editor/script_create_dialog.cpp msgid "N/A" -msgstr "" +msgstr "Niet van toepassing" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Open Script/Choose Location" -msgstr "Open Script Bewerker" +msgstr "Open Script/Kies Locatie" #: editor/script_create_dialog.cpp msgid "Path is empty" -msgstr "" +msgstr "Path is leeg" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Mesh is leeg!" +msgstr "Bestandsnaam is leeg" #: editor/script_create_dialog.cpp msgid "Path is not local" -msgstr "" +msgstr "Path is niet lokaal" #: editor/script_create_dialog.cpp msgid "Invalid base path" -msgstr "" +msgstr "Ongeldig basis path" #: editor/script_create_dialog.cpp msgid "Directory of the same name exists" -msgstr "" +msgstr "Directory met dezelfde naam bestaat al" #: editor/script_create_dialog.cpp -#, fuzzy msgid "File exists, will be reused" -msgstr "Bestand Bestaat, Overschrijven?" +msgstr "Bestand Bestaat, zal herbruikt worden" #: editor/script_create_dialog.cpp msgid "Invalid extension" -msgstr "" +msgstr "Ongeldige extensie" #: editor/script_create_dialog.cpp msgid "Wrong extension chosen" -msgstr "" +msgstr "Verkeerde extensie gekozen" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Invalid Path" -msgstr "Ongeldig Pad." +msgstr "Ongeldig Path" #: editor/script_create_dialog.cpp msgid "Invalid class name" -msgstr "" +msgstr "Ongeldige klassenaam" #: editor/script_create_dialog.cpp #, fuzzy @@ -8175,47 +8235,43 @@ msgstr "Ongeldige index eigenschap naam." #: editor/script_create_dialog.cpp msgid "Script valid" -msgstr "" +msgstr "Script geldig" #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" -msgstr "" +msgstr "Toegestaan: a-z, A-Z, 0-9 en _" #: editor/script_create_dialog.cpp msgid "Built-in script (into scene file)" -msgstr "" +msgstr "Ingebouwd script (in scene bestand)" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Create new script file" -msgstr "Subscriptie Maken" +msgstr "Maak nieuw script bestand" #: editor/script_create_dialog.cpp msgid "Load existing script file" -msgstr "" +msgstr "Laad bestaand script" #: editor/script_create_dialog.cpp msgid "Language" -msgstr "" +msgstr "Taal" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Inherits" -msgstr "Erft:" +msgstr "Erft" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Class Name" -msgstr "Klasse:" +msgstr "Klasse Naam" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Template" -msgstr "Verwijder Selectie" +msgstr "Sjabloon" #: editor/script_create_dialog.cpp msgid "Built-in Script" -msgstr "" +msgstr "Ingebouwd Script" #: editor/script_create_dialog.cpp msgid "Attach Node Script" @@ -8240,24 +8296,23 @@ msgstr "" #: editor/script_editor_debugger.cpp modules/mono/editor/mono_bottom_panel.cpp msgid "Errors" -msgstr "" +msgstr "Fouten" #: editor/script_editor_debugger.cpp msgid "Child Process Connected" msgstr "" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Copy Error" -msgstr "Laadfouten" +msgstr "Kopieer Fout" #: editor/script_editor_debugger.cpp msgid "Inspect Previous Instance" -msgstr "" +msgstr "Inspecteer vorige instantie" #: editor/script_editor_debugger.cpp msgid "Inspect Next Instance" -msgstr "" +msgstr "Inspecteer Volgende Instantie" #: editor/script_editor_debugger.cpp msgid "Stack Frames" @@ -8285,7 +8340,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Total:" -msgstr "" +msgstr "Totaal:" #: editor/script_editor_debugger.cpp msgid "Video Mem" @@ -8297,7 +8352,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Type" -msgstr "" +msgstr "Type" #: editor/script_editor_debugger.cpp msgid "Format" @@ -8305,7 +8360,7 @@ msgstr "" #: editor/script_editor_debugger.cpp msgid "Usage" -msgstr "" +msgstr "Gebruik" #: editor/script_editor_debugger.cpp msgid "Misc" @@ -8329,7 +8384,7 @@ msgstr "" #: editor/settings_config_dialog.cpp msgid "Shortcuts" -msgstr "" +msgstr "Snelkoppelingen" #: editor/settings_config_dialog.cpp msgid "Binding" @@ -8345,7 +8400,7 @@ msgstr "" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" -msgstr "" +msgstr "Wijzig Camera FOV" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera Size" @@ -8365,7 +8420,7 @@ msgstr "" #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp msgid "Change Sphere Shape Radius" -msgstr "" +msgstr "Wijzig Sphere Vorm Straal" #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp msgid "Change Box Shape Extents" @@ -8373,11 +8428,11 @@ msgstr "" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Radius" -msgstr "" +msgstr "Wijzig Capsule Vorm Straal" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Height" -msgstr "" +msgstr "Wijzig Capsule Vorm Hoogte" #: editor/spatial_editor_gizmos.cpp msgid "Change Cylinder Shape Radius" @@ -8389,43 +8444,39 @@ msgstr "" #: editor/spatial_editor_gizmos.cpp msgid "Change Ray Shape Length" -msgstr "" +msgstr "Wijzig Ray Vorm Lengte" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Radius" -msgstr "Wijzig Meng Tijd" +msgstr "Wijzig Cylinder Straal" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Height" -msgstr "Wijzig Meng Tijd" +msgstr "Wijzig Cylinder Hoogte" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Torus Inner Radius" -msgstr "Wijzig Ankers en Marges" +msgstr "Wijzig Torus Binnenste Straal" #: modules/csg/csg_gizmos.cpp msgid "Change Torus Outer Radius" -msgstr "" +msgstr "Wijzig Torus Buitenste Straal" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Select the dynamic library for this entry" -msgstr "" +msgstr "Selecteer de dynamische bibliotheek voor deze ingave" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Select dependencies of the library for this entry" -msgstr "" +msgstr "Selecteer afhankelijkheden van de bibliotheek voor deze ingave" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Remove current entry" -msgstr "Verwijder Signaal" +msgstr "Verwijder huidige ingave" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Double click to create a new entry" -msgstr "" +msgstr "Dubbelklikken om een nieuwe ingave te creëren" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Platform:" @@ -8445,26 +8496,27 @@ msgstr "" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "GDNativeLibrary" -msgstr "" +msgstr "GDInheemsBibliotheek" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" -msgstr "" +msgstr "Bibliotheek" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Status" -msgstr "" +msgstr "Status" #: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Libraries: " -msgstr "" +msgstr "Bibliotheken: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "" +msgstr "GDInheems" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "step argument is nul!" #: modules/gdscript/gdscript_functions.cpp @@ -8565,27 +8617,27 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Edit X Axis" -msgstr "" +msgstr "Bewerk X As" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Edit Y Axis" -msgstr "" +msgstr "Bewerk Y As" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Edit Z Axis" -msgstr "" +msgstr "Bewerk Z As" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Rotate X" -msgstr "" +msgstr "Cursor Roteer X" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Rotate Y" -msgstr "" +msgstr "Cursor Roteer Y" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Rotate Z" -msgstr "" +msgstr "Cursor Roteer Z" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Back Rotate X" @@ -9403,7 +9455,7 @@ msgstr "" "alsjeblieft een vorm resource voor deze!" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9452,7 +9504,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "PathFollow2D werkt alleen wanneer het een kind van een Path2D node is." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9551,6 +9605,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Animatie boom is ongeldig." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw-modus" @@ -9567,6 +9625,10 @@ msgstr "Alarm!" msgid "Please Confirm..." msgstr "Bevestig Alsjeblieft..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9634,11 +9696,6 @@ msgstr "Ongeldige lettertype grootte." msgid "Input" msgstr "Voeg invoer toe" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Geen>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9656,6 +9713,56 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Creëer Poly" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Begin een nieuwe polygoon" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Uitzoomen" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Inzoomen" + +#~ msgid "Create Poly3D" +#~ msgstr "Maak Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Geen OccluderPolygon2D resource op deze node.\n" +#~ "Creëer en wijs één toe?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Wijzig bestaande polygon:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: Verplaats Punt." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+LMB: Splits Segment." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Verwijder Punt." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Bekijk Bestanden" + +#~ msgid "Save Theme As" +#~ msgstr "Thema Opslaan Als" + +#~ msgid "<None>" +#~ msgstr "<Geen>" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Inzoomen" + #~ msgid "Class List:" #~ msgstr "Klasse Lijst:" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index a068bc8123..80bd81afb3 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -30,16 +30,18 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-10 20:07+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" "Language: pl\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"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.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -274,7 +276,6 @@ msgstr "Utworzyć %d NOWYCH Å›cieżek i wstawić klucze?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -347,7 +348,6 @@ msgid "Method not found in object: " msgstr "Metoda nie znaleziona w obiekcie: " #: editor/animation_track_editor.cpp -#, fuzzy msgid "Anim Move Keys" msgstr "Przemieść klucze animacji" @@ -423,12 +423,10 @@ msgid "Delete Selection" msgstr "UsuÅ„ zaznaczone" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "Przejdź do nastÄ™pnego kroku" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "Przejdź do poprzedniego kroku" @@ -552,15 +550,19 @@ msgstr "ZastÄ…p wszystkie" msgid "Selection Only" msgstr "Tylko zaznaczenie" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Przybliż" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Oddal" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Wyzeruj przybliżenie" @@ -569,8 +571,8 @@ msgid "Warnings:" msgstr "Ostrzeżenia:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "PowiÄ™kszenie:" +msgid "Font Size:" +msgstr "Rozmiar czcionki:" #: editor/code_editor.cpp msgid "Line:" @@ -683,9 +685,8 @@ msgid "Edit Connection: " msgstr "Edytuj poÅ‚Ä…czenie: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Na pewno chcesz usunąć wszystkie poÅ‚Ä…czenia z tego sygnaÅ‚u?" +msgstr "Na pewno chcesz usunąć wszystkie poÅ‚Ä…czenia z sygnaÅ‚u \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -730,8 +731,8 @@ msgid "Recent:" msgstr "Ostatnie:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Szukaj:" @@ -782,8 +783,7 @@ msgid "Resource" msgstr "Zasoby" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Åšcieżka" @@ -839,9 +839,8 @@ msgid "Error loading:" msgstr "BÅ‚Ä…d Å‚adowania:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "Scena nie zostaÅ‚a wczytana z powodu brakujÄ…cych zależnoÅ›ci:" +msgstr "Wczytywanie nieudane z powodu brakujÄ…cych zależnoÅ›ci:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1244,8 +1243,7 @@ msgid "Node Name:" msgstr "Nazwa wÄ™zÅ‚a:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nazwa" @@ -1323,24 +1321,21 @@ msgid "File Exists, Overwrite?" msgstr "Plik istnieje, nadpisać?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "Wybierz ten Folder" +msgstr "Wybierz ten folder" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" -msgstr "Skopiuj ÅšcieżkÄ™" +msgstr "Skopiuj Å›cieżkÄ™" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "Otwórz w menadżerze plików" +msgstr "Otwórz w menedżerze plików" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "Pokaż w menadżerze plików" +msgstr "Pokaż w menedżerze plików" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1483,19 +1478,16 @@ msgid "Methods" msgstr "Metody" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Metody" +msgstr "Metody:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "WÅ‚aÅ›ciwoÅ›ci" +msgstr "WÅ‚aÅ›ciwoÅ›ci motywu" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "WÅ‚aÅ›ciwoÅ›ci:" +msgstr "WÅ‚aÅ›ciwoÅ›ci motywu:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1522,14 +1514,12 @@ msgid "Constants:" msgstr "StaÅ‚e:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Opis" +msgstr "Opis klasy" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Opis:" +msgstr "Opis klasy:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1546,14 +1536,12 @@ msgstr "" "jakiÅ›[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Opis wÅ‚aÅ›ciwoÅ›ci:" +msgstr "Opisy wÅ‚aÅ›ciwoÅ›ci" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "Opis wÅ‚aÅ›ciwoÅ›ci:" +msgstr "Opisy wÅ‚aÅ›ciwoÅ›ci:" #: editor/editor_help.cpp msgid "" @@ -1564,14 +1552,12 @@ msgstr "" "$url]wysyÅ‚ajÄ…c jÄ…[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Opis metody:" +msgstr "Opisy metod" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Opis metody:" +msgstr "Opisy metod:" #: editor/editor_help.cpp msgid "" @@ -1587,49 +1573,40 @@ msgid "Search Help" msgstr "Wyszukaj w Pomocy" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Widok normalny" +msgstr "Pokaż wszystko" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Klasy" +msgstr "Tylko klasy" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Metody" +msgstr "Tylko metody" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "SygnaÅ‚y" +msgstr "Tylko sygnaÅ‚y" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "StaÅ‚e" +msgstr "Tylko staÅ‚e" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "WÅ‚aÅ›ciwoÅ›ci" +msgstr "Tylko wÅ‚aÅ›ciwoÅ›ci" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "WÅ‚aÅ›ciwoÅ›ci" +msgstr "Tylko wÅ‚aÅ›ciwoÅ›ci motywu" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "CzÅ‚onkowie" +msgstr "Typ czÅ‚onka" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Klasa:" +msgstr "Klasa" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1728,6 +1705,12 @@ msgstr "Ta operacja nie może zostać wykonana bez sceny." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1736,7 +1719,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Nie można nadpisać sceny, która wciąż jest otwarta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1992,13 +1975,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Nie można zaÅ‚adować skryptu dodatku z Å›cieżki: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"Nie można zaÅ‚adować skryptu dodatku z Å›cieżki: '%s' Skrypt nie jest w trybie " -"narzÄ™dzia (tool)." +"Nie można zaÅ‚adować skryptu dodatku ze Å›cieżki: '%s' W kodzie znajduje siÄ™ " +"bÅ‚Ä…d, sprawdź skÅ‚adniÄ™." #: editor/editor_node.cpp msgid "" @@ -2054,7 +2036,6 @@ msgstr "DomyÅ›lny" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" msgstr "Pokaż w systemie plików" @@ -2139,7 +2120,6 @@ msgid "Save Scene" msgstr "Zapisz scenÄ™" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Zapisz wszystkie sceny" @@ -2169,7 +2149,7 @@ msgid "Undo" msgstr "Cofnij" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Ponów" @@ -2193,7 +2173,7 @@ msgstr "Ustawienia projektu" msgid "Export" msgstr "Eksport" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "NarzÄ™dzia" @@ -2620,9 +2600,17 @@ msgstr "Przypisz..." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Nie można utworzyć ViewportTexture na zasobach zapisanych jako plik.\n" +"Zasób musi należeć do sceny." #: editor/editor_properties.cpp msgid "" @@ -2631,13 +2619,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Nie można utworzyć ViewportTexture na tym zasobie, ponieważ nie jest " +"ustawiony jako lokalny dla sceny.\n" +"WÅ‚Ä…cz mu wÅ‚aÅ›ciwość \"lokalny dla sceny\" (i wszystkim zasobom, które go " +"zawierajÄ…, aż do wÄ™zÅ‚a)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Wybierz Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Nowy skrypt" @@ -2948,9 +2939,8 @@ msgstr "" "typu plików nie bÄ™dzie zapisana!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Ulubione:" +msgstr "Ulubione" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3035,14 +3025,12 @@ msgid "Instance" msgstr "Instancja" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Ulubione:" +msgstr "Dodaj do ulubionych" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "UsuÅ„ z Grupy" +msgstr "UsuÅ„ z ulubionych" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3062,9 +3050,9 @@ msgstr "Duplikuj..." #: editor/filesystem_dock.cpp msgid "Move To..." -msgstr "PrzenieÅ› Do..." +msgstr "PrzenieÅ› do..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Nowy skrypt..." @@ -3073,14 +3061,12 @@ msgid "New Resource..." msgstr "Nowy zasób..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" -msgstr "RozwiÅ„ foldery" +msgstr "RozwiÅ„ wszystko" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" -msgstr "ZwiÅ„ foldery" +msgstr "ZwiÅ„ wszystko" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3102,9 +3088,8 @@ msgid "Re-Scan Filesystem" msgstr "Przeskanuj system plików ponownie" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "PrzeÅ‚Ä…cz tryby" +msgstr "PrzeÅ‚Ä…cz tryb podziaÅ‚u" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3112,7 +3097,7 @@ msgstr "Przeszukaj pliki" #: editor/filesystem_dock.cpp msgid "Instance the selected scene(s) as child of the selected node." -msgstr "Utwórz instancje wybranej sceny/scen jako dziecko wybranego wÄ™zÅ‚a." +msgstr "Utwórz instancjÄ™ wybranej sceny/scen jako dziecko wybranego wÄ™zÅ‚a." #: editor/filesystem_dock.cpp msgid "" @@ -3139,24 +3124,20 @@ msgid "Create Script" msgstr "Utwórz Skrypt" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "Znajdź w plikach" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Znajdź: " +msgstr "Znajdź:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Folder: " +msgstr "Folder:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Filtry" +msgstr "Filtry:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3196,7 +3177,8 @@ msgid "Group name already exists." msgstr "Nazwa grupy już istnieje." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "niewÅ‚aÅ›ciwa nazwa grupy." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3335,12 +3317,10 @@ msgid "Failed to load resource." msgstr "Nie udaÅ‚o siÄ™ wczytać zasobu." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "RozwiÅ„ wszystkie wÅ‚aÅ›ciwoÅ›ci" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "ZwiÅ„ wszystkie wÅ‚aÅ›ciwoÅ›ci" @@ -3358,7 +3338,6 @@ msgid "Paste Params" msgstr "Wklej parametry" #: editor/inspector_dock.cpp -#, fuzzy msgid "Edit Resource Clipboard" msgstr "Edytuj schowek zasobów" @@ -3447,14 +3426,13 @@ msgid "Activate now?" msgstr "Aktywować teraz?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "Utwórz Polygon" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" +msgstr "Utwórz wielokÄ…t" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Edytuj wielokÄ…t" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3462,25 +3440,27 @@ msgid "Insert Point" msgstr "Wstaw punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Edytuj wielokÄ…t (usuÅ„ punkty)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "UsuÅ„Â wielokÄ…t i punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Utwórz nowy wielokÄ…t" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Utwórz punkty." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Edytować istniejÄ…cy wielokÄ…t:\n" "LMB: PrzenieÅ› punkt.\n" @@ -3488,8 +3468,9 @@ msgstr "" "RMB: Usuwanie punktu." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Usuwanie punktów" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "UsuÅ„ punkty." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3537,15 +3518,6 @@ msgstr "Wybierz i przesuÅ„ punkty, utwórz punkty używajÄ…c PPM." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Utwórz punkty." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "UsuÅ„ punkty." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Punkt" @@ -3627,7 +3599,6 @@ msgstr "" "uzyskać nazw Å›cieżek." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Dodaj wÄ™zeÅ‚..." @@ -4038,7 +4009,6 @@ msgid "TimeScale Node" msgstr "WÄ™zeÅ‚ Skalowania Czasu" #: editor/plugins/animation_tree_player_editor_plugin.cpp -#, fuzzy msgid "TimeSeek Node" msgstr "WÄ™zeÅ‚ TimeSeek" @@ -4170,7 +4140,7 @@ msgstr "Wszystko" msgid "Plugins" msgstr "Wtyczki" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sortuj:" @@ -4301,9 +4271,8 @@ msgid "Resize CanvasItem" msgstr "ZmieÅ„ rozmiar CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "Obróć CanvasItem" +msgstr "Skaluj CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4326,18 +4295,19 @@ msgid "Paste Pose" msgstr "Wklej pozÄ™" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Pomniejsz" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Wyzeruj powiÄ™kszenie" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "PowiÄ™ksz" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Tryb zaznaczenia" @@ -4368,9 +4338,8 @@ msgid "Rotate Mode" msgstr "Tryb Rotacji" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Tryb skalowania (R)" +msgstr "Tryb skalowania" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4469,9 +4438,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "Odblokuj selekcjÄ™ wÄ™złów podrzÄ™dnych." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Szkielet..." +msgstr "Opcje szkieletu" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4525,7 +4493,7 @@ msgstr "Pokaż widok" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Pokaż ikony grup i blokady" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4598,8 +4566,17 @@ msgstr "" "PrzeciÄ…gnij i upuść + Alt: ZmieÅ„ typ wÄ™zÅ‚a" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Stwórz Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Utwórz wielokÄ…t" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Edytuj wielokÄ…t" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Edytuj wielokÄ…t (usuÅ„ punkty)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4700,37 +4677,9 @@ msgid "Item List Editor" msgstr "Edytor listy elementów" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Brak zasobu OccluderPolygon2D w tym węźle.\n" -"Stworzyć i przypisać nowy?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Stwórz Occluder Polygon" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Utwórz nowy wielokÄ…t." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Edytuj istniejÄ…cy polygon:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: PrzesuÅ„ Punkt." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl + LPM: PodziaÅ‚u segmentu." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Wymaż Punkt." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Siatka jest pusta!" @@ -4814,7 +4763,6 @@ msgid "Create Trimesh Collision Sibling" msgstr "Utwórz trójsiatkÄ™ sÄ…siednich kolizji" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Convex Collision Sibling" msgstr "Utwórz wypukÅ‚ego sÄ…siada kolizji" @@ -4968,9 +4916,8 @@ msgid "Create Navigation Polygon" msgstr "Utwórz wielokÄ…t nawigacyjny" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "Wygeneruj prostokÄ…ta widzialnoÅ›ci" +msgstr "Generowanie prostokÄ…ta widzialnoÅ›ci" #: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy @@ -5105,6 +5052,11 @@ msgid "Add Point to Curve" msgstr "Dodaj punkt do krzywej" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Zamknij krzywÄ…" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "PrzenieÅ› punkt krzywej" @@ -5132,6 +5084,11 @@ msgid "Click: Add Point" msgstr "Klik: Dodaj Punkt" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Podziel Segment (na krzywej)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Prawy Klik: UsuÅ„ Punkt" @@ -5147,11 +5104,6 @@ msgstr "Dodaj Punkt (w pustym miejscu)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Podziel Segment (na krzywej)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "UsuÅ„ Punkt" @@ -5212,6 +5164,10 @@ msgstr "UsuÅ„ punkt Å›cieżki" msgid "Remove In-Control Point" msgstr "UsuÅ„ punkt Å›cieżki" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Podziel Segment (na krzywej)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "PrzesuÅ„ zÅ‚Ä…cze" @@ -5219,57 +5175,69 @@ msgstr "PrzesuÅ„ zÅ‚Ä…cze" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" "The skeleton property of the Polygon2D does not point to a Skeleton2D node" -msgstr "" +msgstr "WÅ‚aÅ›ciwość skeleton wÄ™zÅ‚a Polygon2D nie wskazuje na wÄ™zeÅ‚ Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" -msgstr "Pokaż koÅ›ci" +msgid "Sync Bones" +msgstr "Synchronizuj koÅ›ci" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Utwórz MapÄ™ UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Create Polygon & UV" -msgstr "Utwórz Polygon" +msgstr "Utwórz wielokÄ…t i UV" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Split point with itself." -msgstr "" +msgstr "Podziel punkt ze sobÄ…." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Split can't form an existing edge." -msgstr "" +msgstr "PodziaÅ‚ nie może uformować istniejÄ…cej krawÄ™dzi." #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Split already exists." -msgstr "Akcja %s już istnieje!" +msgstr "PodziaÅ‚ już istnieje." #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Add Split" -msgstr "Dodaj punkt" +msgstr "Dodaj podziaÅ‚" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Invalid Split: " -msgstr "Niepoprawna Å›cieżka!" +msgstr "Niepoprawny podziaÅ‚: " #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Remove Split" -msgstr "UsuÅ„ punkt" +msgstr "UsuÅ„ podziaÅ‚" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform UV Map" msgstr "Przekształć MapÄ™ UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" -msgstr "" +#, fuzzy +msgid "Transform Polygon" +msgstr "Typ przeksztaÅ‚cenia" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" +msgstr "Maluj wagi koÅ›ci" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "WielokÄ…t 2D UV Edytor" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" @@ -5277,30 +5245,23 @@ msgstr "WielokÄ…t 2D UV Edytor" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV" -msgstr "" +msgstr "UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Poly" -msgstr "Edytuj wielokÄ…t" +msgstr "WielokÄ…t" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Splits" -msgstr "Podziel ÅšcieżkÄ™" +msgstr "PodziaÅ‚y" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Bones" -msgstr "Utwórz KoÅ›ci" +msgstr "KoÅ›ci" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Utwórz Polygon" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "PrzesuÅ„ Punkt" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5328,25 +5289,28 @@ msgid "Scale Polygon" msgstr "Skaluj WielokÄ…t" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" -msgstr "" +#, fuzzy +msgid "Connect two points to make a split." +msgstr "PoÅ‚Ä…cz dwa punkty, by utworzyć podziaÅ‚" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" -msgstr "Najpierw wybierz ustawienie z listy!" +msgid "Select a split to erase it." +msgstr "Wybierz podziaÅ‚, by go usunąć" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" -msgstr "" +#, fuzzy +msgid "Paint weights with specified intensity." +msgstr "Maluj wagi z podanÄ… intensywnoÅ›ciÄ…" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" -msgstr "" +#, fuzzy +msgid "Unpaint weights with specified intensity." +msgstr "Odmaluj wagi z podanÄ… intensywnoÅ›ciÄ…" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Radius:" -msgstr "" +msgstr "PromieÅ„:" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon->UV" @@ -5361,9 +5325,8 @@ msgid "Clear UV" msgstr "Wyczyść UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Grid Settings" -msgstr "Ustawienia GridMap" +msgstr "Ustawienia siatki" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Enable Snap" @@ -5374,34 +5337,28 @@ msgid "Grid" msgstr "Siatka" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Configure Grid:" -msgstr "Konfiguruj przyciÄ…ganie" +msgstr "Konfiguruj siatkÄ™:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Grid Offset X:" -msgstr "Offset siatki:" +msgstr "PrzesuniÄ™cie X siatki:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Grid Offset Y:" -msgstr "Offset siatki:" +msgstr "PrzesuniÄ™cie Y siatki:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Grid Step X:" -msgstr "Krok siatki:" +msgstr "Krok X siatki:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Grid Step Y:" -msgstr "Krok siatki:" +msgstr "Krok Y siatki:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Sync Bones to Polygon" -msgstr "Skaluj WielokÄ…t" +msgstr "Synchronizuj koÅ›ci z wielokÄ…tem" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" @@ -5450,13 +5407,12 @@ msgid "Load Resource" msgstr "Wczytaj Zasób" #: editor/plugins/resource_preloader_editor_plugin.cpp -#, fuzzy msgid "ResourcePreloader" -msgstr "Åšcieżka zasobu" +msgstr "WstÄ™pny Å‚adowacz zasobów" #: editor/plugins/root_motion_editor_plugin.cpp msgid "AnimationTree has no path set to an AnimationPlayer" -msgstr "" +msgstr "WÄ™zeÅ‚ AnimationTree nie ma ustawionej Å›cieżki do AnimationPlayer" #: editor/plugins/root_motion_editor_plugin.cpp msgid "Path to AnimationPlayer is invalid" @@ -5471,61 +5427,66 @@ msgid "Close and save changes?" msgstr "Zamknąć i zapisać zmiany?" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error writing TextFile:" -msgstr "BÅ‚Ä…d wczytywania obrazu:" +msgstr "BÅ‚Ä…d pisania pliku tekstowego:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." -msgstr "Nie można wczytać obrazu" +msgstr "BÅ‚Ä…d: nie udaÅ‚o siÄ™ wczytać pliku." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error could not load file." -msgstr "Nie można wczytać obrazu" +msgstr "BÅ‚Ä…d nie udaÅ‚o siÄ™ wczytać pliku." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error saving file!" -msgstr "BÅ‚Ä…d podczas zapisywania TileSet!" +msgstr "BÅ‚Ä…d zapisywania pliku!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "BÅ‚Ä…d podczas zapisywania motywu" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "BÅ‚Ä…d zapisywania" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "BÅ‚Ä…d importowania motywu" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "BÅ‚Ä…d importowania" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "New TextFile..." -msgstr "Utwórz katalog..." +msgstr "Nowy plik tekstowy..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Open File" msgstr "Otwórz plik" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Save File As..." -msgstr "Zapisz jako..." +msgstr "Zapisz plik jako..." #: editor/plugins/script_editor_plugin.cpp msgid "Import Theme" msgstr "Zaimportuj motyw" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "BÅ‚Ä…d podczas zapisywania motywu" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "BÅ‚Ä…d zapisywania" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Zapisz motyw jako..." @@ -5536,12 +5497,11 @@ msgstr " Referencja klas" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." -msgstr "" +msgstr "PrzeÅ‚Ä…cz alfabetyczne sortowanie listy metod." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Sort" -msgstr "Sortuj:" +msgstr "Sortuj" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp @@ -5569,8 +5529,8 @@ msgstr "Plik" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Pokaż pliki" +msgid "Open..." +msgstr "Otwórz" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5585,7 +5545,6 @@ msgid "Copy Script Path" msgstr "Skopiuj Å›cieżkÄ™ skryptu" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Poprzedni plik" @@ -5599,6 +5558,11 @@ msgid "Theme" msgstr "Motyw" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Zaimportuj motyw" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "PrzeÅ‚aduj motyw" @@ -5607,10 +5571,6 @@ msgid "Save Theme" msgstr "Zapisz motyw" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Zapisz motyw jako" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Zamknij pliki pomocy" @@ -5657,9 +5617,8 @@ msgid "Keep Debugger Open" msgstr "Pozostaw Debugger otwarty" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" -msgstr "Debugowanie z zewnÄ™trznego edytora" +msgstr "Debugowanie z zewnÄ™trznym edytorem" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" @@ -5702,32 +5661,32 @@ msgid "Debugger" msgstr "Debugger" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" -msgstr "Wyszukaj w Pomocy" +msgstr "Wyniki wyszukiwania" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Line" -msgstr "Linia:" +msgstr "Linia" #: editor/plugins/script_text_editor.cpp msgid "(ignore)" -msgstr "" +msgstr "(ignoruj)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Przejdź do funkcji..." +msgstr "Przejdź do funkcji" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standardowy" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Jedynie zasoby z systemu plików mogÄ… zostać tu upuszczone." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Lookup Symbol" -msgstr "UzupeÅ‚nij symbol" +msgstr "Podejrzyj symbol" #: editor/plugins/script_text_editor.cpp msgid "Pick Color" @@ -5751,11 +5710,7 @@ msgstr "Wielkie litery na poczÄ…tku słów" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp msgid "Syntax Highlighter" -msgstr "" - -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" +msgstr "PodÅ›wietlacz skÅ‚adni" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp @@ -5808,12 +5763,10 @@ msgid "Trim Trailing Whitespace" msgstr "Przytnij koÅ„cowe spacje" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "ZamieÅ„ wciÄ™cia na spacje" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "ZamieÅ„ wciÄ™cia na tabulatory" @@ -5824,38 +5777,33 @@ msgstr "Automatyczne wciÄ™cie" #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Toggle Breakpoint" -msgstr "PrzeÅ‚Ä…cz puÅ‚apkÄ™" +msgstr "PrzeÅ‚Ä…cz punkt wstrzymania" #: editor/plugins/script_text_editor.cpp msgid "Remove All Breakpoints" -msgstr "UsuÅ„ wszystkie puÅ‚apki" +msgstr "UsuÅ„ wszystkie punkty wstrzymania" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" -msgstr "Przejdź do nastÄ™pnej puÅ‚apki" +msgstr "Przejdź do nastÄ™pnego punktu wstrzymania" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "Przejdź do poprzedniej puÅ‚apki" +msgstr "Przejdź do poprzedniego punktu wstrzymania" #: editor/plugins/script_text_editor.cpp msgid "Find Previous" msgstr "Znajdź poprzedni" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." -msgstr "Filtrowanie plików..." +msgstr "Znajdź w plikach..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Przejdź do funkcji..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Przejdź do linii..." @@ -5869,40 +5817,35 @@ msgstr "Shader" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "This skeleton has no bones, create some children Bone2D nodes." -msgstr "" +msgstr "Ten szkielet nie ma koÅ›ci. Stwórz jakieÅ› wÄ™zÅ‚y potomne Bone2D." #: editor/plugins/skeleton_2d_editor_plugin.cpp -#, fuzzy msgid "Skeleton2D" -msgstr "Szkielet..." +msgstr "Szkielet 2D" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Make Rest Pose (From Bones)" -msgstr "" +msgstr "Utwórz pozÄ™ spoczynkowÄ… (z koÅ›ci)" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Set Bones to Rest Pose" -msgstr "" +msgstr "Ustaw koÅ›ci do pozy spoczynkowej" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Create physical bones" -msgstr "Utwórz siatkÄ™ nawigacyjnÄ… (Navigation Mesh)" +msgstr "Utwórz fizyczne koÅ›ci" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Skeleton" -msgstr "Szkielet..." +msgstr "Szkielet" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Create physical skeleton" -msgstr "Utwórz solucjÄ™ C#" +msgstr "Utwórz fizyczny szkielet" #: editor/plugins/skeleton_ik_editor_plugin.cpp -#, fuzzy msgid "Play IK" -msgstr "Uruchom" +msgstr "Odtwórz IK" #: editor/plugins/spatial_editor_plugin.cpp msgid "Orthogonal" @@ -5930,29 +5873,25 @@ msgstr "Transformacja osi Z." #: editor/plugins/spatial_editor_plugin.cpp msgid "View Plane Transform." -msgstr "" +msgstr "Pokaż transformacjÄ™ pÅ‚aszczyzny." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Scaling: " -msgstr "Skala:" +msgstr "Skalowanie: " #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Translating: " -msgstr "TÅ‚umaczenia:" +msgstr "Przesuwanie: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." msgstr "Obracanie o %s stopni." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Keying is disabled (no key inserted)." msgstr "Kluczowanie jest wyÅ‚Ä…czone (nie wstawiono klucza)." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Animation Key Inserted." msgstr "Wstawiono klucz animacji." @@ -5962,15 +5901,13 @@ msgstr "Wysokość" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Odchylenie" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Objects Drawn" msgstr "Narysowane obiekty" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Material Changes" msgstr "Zmiany materiaÅ‚u" @@ -5979,9 +5916,8 @@ msgid "Shader Changes" msgstr "Zmiany Shadera" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Surface Changes" -msgstr "OdÅ›wież Zmiany" +msgstr "Zmiany powierzchni" #: editor/plugins/spatial_editor_plugin.cpp msgid "Draw Calls" @@ -6052,9 +5988,8 @@ msgid "This operation requires a single selected node." msgstr "Ta operacja wymaga pojedynczego wybranego wÄ™zÅ‚a." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock View Rotation" -msgstr "WyÅ›wietlaj informacje" +msgstr "Zablokuj obrót widoku" #: editor/plugins/spatial_editor_plugin.cpp msgid "Display Normal" @@ -6079,7 +6014,7 @@ msgstr "WyÅ›wietlaj Å›rodowisko" #: editor/plugins/spatial_editor_plugin.cpp #, fuzzy msgid "View Gizmos" -msgstr "WyÅ›wietlaj uchwyty" +msgstr "Pokaż uchwyty" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Information" @@ -6094,18 +6029,16 @@ msgid "Half Resolution" msgstr "PoÅ‚owa rozdzielczoÅ›ci" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Audio Listener" -msgstr "NasÅ‚uchiwacz dźwiÄ™ku" +msgstr "SÅ‚uchacz dźwiÄ™ku" #: editor/plugins/spatial_editor_plugin.cpp msgid "Doppler Enable" msgstr "Efekt Dopplera" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Cinematic Preview" -msgstr "Tworzenie podglÄ…du Mesh" +msgstr "PodglÄ…d kinowy" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Left" @@ -6136,9 +6069,8 @@ msgid "Freelook Speed Modifier" msgstr "Zmiennik prÄ™dkoÅ›ci \"Wolnego widoku\"" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "WyÅ›wietlaj informacje" +msgstr "Obroty widoku zablokowane" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6171,9 +6103,8 @@ msgid "Scale Mode (R)" msgstr "Tryb skalowania (R)" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Local Coords" -msgstr "Local Coords" +msgstr "Lokalne koordynaty" #: editor/plugins/spatial_editor_plugin.cpp msgid "Local Space Mode (%s)" @@ -6228,24 +6159,20 @@ msgid "Align Selection With View" msgstr "Dopasuj zaznaczenie do widoku" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Tool Select" -msgstr "Wybierz narzÄ™dzie" +msgstr "NarzÄ™dzie wyboru" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Tool Move" -msgstr "PrzenieÅ›" +msgstr "NarzÄ™dzie poruszania" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Tool Rotate" -msgstr "NarzÄ™dzie Obracanie" +msgstr "NarzÄ™dzie obracania" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Tool Scale" -msgstr "NarzÄ™dzia Skala" +msgstr "NarzÄ™dzie skalowania" #: editor/plugins/spatial_editor_plugin.cpp msgid "Toggle Freelook" @@ -6257,7 +6184,7 @@ msgstr "PrzeksztaÅ‚canie" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap object to floor" -msgstr "" +msgstr "PrzyciÄ…gnij obiekt do podÅ‚ogi" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6288,9 +6215,8 @@ msgid "4 Viewports" msgstr "4 widoki" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Gizmos" -msgstr "WyÅ›wietlaj uchwyty" +msgstr "Uchwyty" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Origin" @@ -6368,51 +6294,45 @@ msgid "Post" msgstr "Po" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Sprite is empty!" -msgstr "Åšcieżka zapisu jest pusta!" +msgstr "Sprite jest pusty!" #: editor/plugins/sprite_editor_plugin.cpp msgid "Can't convert a sprite using animation frames to mesh." msgstr "" +"Nie można przekonwertować sprite'a używajÄ…cego klatek animacji na siatkÄ™." #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't replace by mesh." -msgstr "" +msgstr "NieprawidÅ‚owa geometria, nie można zastÄ…pić przez siatkÄ™." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Sprite" -msgstr "SpriteFrames" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Convert to 2D Mesh" -msgstr "Konwersja do %s" +msgstr "Konwertuj do siatki 2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create 2D Mesh" -msgstr "Utwórz siatkÄ™ zarysu" +msgstr "Utwórz siatkÄ™ 2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " -msgstr "" +msgstr "Uproszczenie: " #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Grow (Pixels): " -msgstr "PrzyciÄ…ganie (piksele):" +msgstr "Wzrost (piksele): " #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Update Preview" -msgstr "PodglÄ…d" +msgstr "OdÅ›wież podglÄ…d" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Settings:" -msgstr "Ustawienia" +msgstr "Ustawienia:" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "ERROR: Couldn't load frame resource!" @@ -6487,12 +6407,18 @@ msgid "Set Region Rect" msgstr "Ustaw obszar tekstury" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Ustaw Uchwyt" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Tryb przyciÄ…gania:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<żaden>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Brak" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6516,10 +6442,9 @@ msgstr "Krok:" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Sep.:" -msgstr "" +msgstr "Sep.:" #: editor/plugins/texture_region_editor_plugin.cpp -#, fuzzy msgid "TextureRegion" msgstr "Obszar tekstury" @@ -6548,9 +6473,8 @@ msgid "Edit theme..." msgstr "Edytuj motyw interfejsu..." #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Theme editing menu." -msgstr "Menu zmiany wyglÄ…du programu." +msgstr "Menu edycji motywu." #: editor/plugins/theme_editor_plugin.cpp msgid "Add Class Items" @@ -6585,23 +6509,20 @@ msgid "Item" msgstr "Element" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Check Item" -msgstr "Sprawdź element" +msgstr "Element wyboru" #: editor/plugins/theme_editor_plugin.cpp msgid "Checked Item" -msgstr "Zaznaczony element" +msgstr "Zaznaczony element wyboru" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Radio Item" -msgstr "Dodaj element" +msgstr "Element opcji" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Checked Radio Item" -msgstr "Zaznaczony element" +msgstr "Zaznaczony element opcji" #: editor/plugins/theme_editor_plugin.cpp msgid "Has" @@ -6612,17 +6533,14 @@ msgid "Many" msgstr "Wiele" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Has,Many,Options" -msgstr "Ma,Wiele,Różnych,Opcji!" +msgstr "Ma,Wiele,Opcji" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Tab 1" msgstr "ZakÅ‚adka 1" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Tab 2" msgstr "ZakÅ‚adka 2" @@ -6631,9 +6549,8 @@ msgid "Tab 3" msgstr "ZakÅ‚adka 3" #: editor/plugins/theme_editor_plugin.cpp -#, fuzzy msgid "Data Type:" -msgstr "Rodzaj Daty:" +msgstr "Typ danych:" #: editor/plugins/theme_editor_plugin.cpp msgid "Icon" @@ -6660,14 +6577,12 @@ msgid "Erase Selection" msgstr "UsuÅ„ zaznaczenie" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Fix Invalid Tiles" -msgstr "NiewÅ‚aÅ›ciwa nazwa." +msgstr "Napraw niewÅ‚aÅ›ciwe kafelki" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "WyÅ›rodkowywanie na zaznaczeniu" +msgstr "Wytnij zaznaczenie" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6679,7 +6594,7 @@ msgstr "Rysuj LiniÄ™" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Rectangle Paint" -msgstr "" +msgstr "Malowanie prostokÄ…tne" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Bucket Fill" @@ -6690,9 +6605,8 @@ msgid "Erase TileMap" msgstr "Wyczyść TileMap" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Find Tile" -msgstr "Znajdź tile" +msgstr "Znajdź kafelek" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Transpose" @@ -6708,49 +6622,45 @@ msgstr "Odbij Y" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" -msgstr "Maluj Tile" +msgstr "Maluj kafelek" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" -msgstr "Wybierz tile" +msgstr "Wybierz kafelek" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "UsuÅ„ zaznaczone" +msgstr "Kopiuj zaznaczenie" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Tryb Rotacji" +msgstr "Obróć w lewo" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "PrzesuÅ„ w prawo" +msgstr "Obróć w prawo" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Odbij poziomo" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Odbij pionowo" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "PrzeksztaÅ‚canie" +msgstr "Wyczyść przeksztaÅ‚cenie" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" -msgstr "Dodaj wÄ™zeÅ‚(y) z drzewa" +msgid "Add Texture(s) to TileSet." +msgstr "Dodaj teksturÄ™ do TileSetu" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" -msgstr "UsuÅ„ punkt krzywej" +msgid "Remove selected Texture from TileSet." +msgstr "UsuÅ„ aktualnÄ… teksturÄ™ z TileSetu" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6761,22 +6671,44 @@ msgid "Merge from Scene" msgstr "PoÅ‚Ä…cz ze sceny" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Wklej animacjÄ™" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "UsuÅ„ punkty." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Utwórz nowy wielokÄ…t od zera." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove selected texture and ALL TILES which use it?" +msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Pokaż nazwy kafelków (przytrzymaj Alt)" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove selected texture and ALL TILES which use it?" +msgstr "Usunąć wybranÄ… teksturÄ™ i WSZYSTKIE KAFELKI, które jej używajÄ…?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." -msgstr "" +msgstr "Nie wybrano tekstury do usuniÄ™cia." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene?" @@ -6788,27 +6720,44 @@ msgstr "PoÅ‚Ä…cz ze sceny?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "%s file(s) were not added because was already on the list." -msgstr "" +msgstr "%s plik(ów) nie zostaÅ‚o dodane, bo byÅ‚(y) już na liÅ›cie." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" "Drag handles to edit Rect.\n" "Click on another Tile to edit it." msgstr "" +"PrzeciÄ…gnij uchwyty, by edytować prostokÄ…t.\n" +"Kliknij na inny kafelek, by go edytować." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Usunąć zaznaczone pliki?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" +"Wybierz aktualnie edytowany pod-kafelek.\n" +"Kliknij inny kafelek, by go edytować." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Usuwanie punktów" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." -msgstr "Wybierz aktualnie edytowany sub-tile." +msgstr "" +"LPM: wÅ‚Ä…cz bit.\n" +"PPM: wyÅ‚Ä…cz bit.\n" +"Kliknij inny kafelek, by go edytować." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6816,42 +6765,56 @@ msgid "" "bindings.\n" "Click on another Tile to edit it." msgstr "" +"Wybierz pod-kafelek do użycia jako ikona. Zostanie on również użyty do " +"niewÅ‚aÅ›ciwych ustawieÅ„ autokafelków.\n" +"Kliknij inny kafelek, by go edytować." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" "Select sub-tile to change its priority.\n" "Click on another Tile to edit it." msgstr "" +"Wybierz pod-kafelek, by zmienić jego priorytet.\n" +"Kliknij inny kafelek, by go edytować." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Wybierz pod-kafelek, by zmienić jego priorytet.\n" +"Kliknij inny kafelek, by go edytować." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." -msgstr "Ta operacja nie może zostać wykonana bez sceny." +msgstr "Ta wÅ‚aÅ›ciwość nie może zostać zmieniona." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" -msgstr "TileSet..." +msgid "TileSet" +msgstr "Zbiór kafelków" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vertex" -msgstr "WierzchoÅ‚ki" +msgstr "WierzchoÅ‚ek" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Fragment" -msgstr "Argumenty:" +msgstr "Fragmenty" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Light" -msgstr "Prawa" +msgstr "ÅšwiatÅ‚o" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Dodaj wÄ™zeÅ‚..." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" -msgstr "Shader" +msgstr "Shader wizualny" #: editor/project_export.cpp msgid "Runnable" @@ -6871,12 +6834,11 @@ msgstr "Brakuje szablonów eksportu dla tej platformy lub sÄ… uszkodzone:" #: editor/project_export.cpp msgid "Release" -msgstr "" +msgstr "Wydanie" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "Exportowanie do %s" +msgstr "Eksportowanie wszystkiego" #: editor/project_export.cpp msgid "Presets" @@ -6888,8 +6850,8 @@ msgstr "Dodaj..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "Szablon eksportu:" +msgid "Export Path" +msgstr "Åšcieżka eksportu:" #: editor/project_export.cpp msgid "Resources" @@ -6954,14 +6916,12 @@ msgid "Export PCK/Zip" msgstr "Eksport PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Tryb eksportu:" +msgstr "Tryb eksportu?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "Eksport" +msgstr "Eksportuj wszystko" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -6976,32 +6936,29 @@ msgid "The path does not exist." msgstr "Åšcieżka nie istnieje." #: editor/project_manager.cpp -#, fuzzy msgid "Invalid '.zip' project file, does not contain a 'project.godot' file." -msgstr "ProszÄ™ wybrać folder nie zawierajÄ…cy pliku 'project.godot'." +msgstr "" +"NiewÅ‚aÅ›ciwy projekt pliku \".zip\", nie zawiera pliku \"project.godot\"." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose an empty folder." -msgstr "ProszÄ™ wybrać plik 'project.godot'." +msgstr "ProszÄ™ wybrać pusty folder." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a 'project.godot' or '.zip' file." -msgstr "ProszÄ™ wybrać plik 'project.godot'." +msgstr "ProszÄ™ wybrać plik \"project.godot\" lub \".zip\"." #: editor/project_manager.cpp msgid "Directory already contains a Godot project." -msgstr "" +msgstr "Folder już zawiera projekt Godota." #: editor/project_manager.cpp msgid "Imported Project" msgstr "Zaimportowano projekt" #: editor/project_manager.cpp -#, fuzzy msgid "Invalid Project Name." -msgstr "Nazwa projektu:" +msgstr "NieprawidÅ‚owa nazwa projektu." #: editor/project_manager.cpp msgid "Couldn't create folder." @@ -7020,11 +6977,12 @@ msgid "Invalid project path (changed anything?)." msgstr "Niepoprawna Å›cieżka projektu (zmienić cokolwiek?)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Couldn't load project.godot in project path (error %d). It may be missing or " "corrupted." -msgstr "Nie można byÅ‚o edytować engine.cfg w Å›cieżce projektu." +msgstr "" +"Nie udaÅ‚o siÄ™ wczytać project.godot w Å›cieżce projektu (bÅ‚Ä…d %d). Może go " +"brakować lub być uszkodzony." #: editor/project_manager.cpp msgid "Couldn't edit project.godot in project path." @@ -7083,9 +7041,8 @@ msgid "Project Path:" msgstr "Åšcieżka do projektu:" #: editor/project_manager.cpp -#, fuzzy msgid "Project Installation Path:" -msgstr "Åšcieżka do projektu:" +msgstr "Åšcieżka instalacji projektu:" #: editor/project_manager.cpp msgid "Browse" @@ -7205,13 +7162,12 @@ msgid "Mouse Button" msgstr "Przycisk myszy" #: editor/project_settings_editor.cpp -#, fuzzy msgid "" "Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" msgstr "" -"Niepoprawna nazwa akcji. Nazwa nie może być pusta ani zawierać znaki takie " -"jak: '/', ':', '=', '\\' lub '\"'" +"Niepoprawna nazwa akcji. Nie może być pusta ani zawierać '/', ':', '=', '\\' " +"lub '\"'" #: editor/project_settings_editor.cpp msgid "Action '%s' already exists!" @@ -7222,18 +7178,16 @@ msgid "Rename Input Action Event" msgstr "ZmieÅ„ nazwÄ™ zdarzenia akcji wejÅ›cia" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Change Action deadzone" -msgstr "ZmieÅ„ nazwÄ™ animacji:" +msgstr "ZmieÅ„ martwÄ… strefÄ™ akcji" #: editor/project_settings_editor.cpp msgid "Add Input Action Event" msgstr "Dodaj zdarzenie akcji wejÅ›cia" #: editor/project_settings_editor.cpp -#, fuzzy msgid "All Devices" -msgstr "UrzÄ…dzenie" +msgstr "Wszystkie urzÄ…dzenia" #: editor/project_settings_editor.cpp msgid "Device" @@ -7280,24 +7234,20 @@ msgid "Wheel Down Button" msgstr "Kółko myszy w dół" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Wheel Left Button" -msgstr "Kółko myszy w górÄ™" +msgstr "Kółko w lewo" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Wheel Right Button" -msgstr "Prawy guzik" +msgstr "Kółko w prawo" #: editor/project_settings_editor.cpp -#, fuzzy msgid "X Button 1" -msgstr "Przycisk 6" +msgstr "Przycisk X 1" #: editor/project_settings_editor.cpp -#, fuzzy msgid "X Button 2" -msgstr "Przycisk 6" +msgstr "Przycisk X 2" #: editor/project_settings_editor.cpp msgid "Joypad Axis Index:" @@ -7368,13 +7318,12 @@ msgid "Delete Item" msgstr "UsuÅ„ element" #: editor/project_settings_editor.cpp -#, fuzzy msgid "" "Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'." msgstr "" -"Niepoprawna nazwa akcji. Nazwa nie może być pusta ani zawierać znaki takie " -"jak: '/', ':', '=', '\\' lub '\"'" +"Niepoprawna nazwa akcji. Nie może być pusta ani zawierać '/', ':', '=', '\\' " +"lub '\"'." #: editor/project_settings_editor.cpp msgid "Already existing" @@ -7394,7 +7343,7 @@ msgstr "Ustawienia zapisane pomyÅ›lnie." #: editor/project_settings_editor.cpp msgid "Override for Feature" -msgstr "" +msgstr "Nadpisanie dla cechy" #: editor/project_settings_editor.cpp msgid "Add Translation" @@ -7410,7 +7359,7 @@ msgstr "Dodaj zmapowanÄ… Å›cieżkÄ™" #: editor/project_settings_editor.cpp msgid "Resource Remap Add Remap" -msgstr "" +msgstr "Dodaj mapowanie zasobu" #: editor/project_settings_editor.cpp msgid "Change Resource Remap Language" @@ -7446,7 +7395,7 @@ msgstr "Nadpisz dla..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "Editor must be restarted for changes to take effect" -msgstr "" +msgstr "Edytor musi zostać zrestartowany, by zmiany miaÅ‚y efekt" #: editor/project_settings_editor.cpp msgid "Input Map" @@ -7462,7 +7411,7 @@ msgstr "Akcja" #: editor/project_settings_editor.cpp msgid "Deadzone" -msgstr "" +msgstr "Martwa strefa" #: editor/project_settings_editor.cpp msgid "Device:" @@ -7569,7 +7518,6 @@ msgid "Pick a Node" msgstr "Wybierz wÄ™zeÅ‚" #: editor/property_editor.cpp -#, fuzzy msgid "Bit %d, val %d." msgstr "Bit %d, wartość %d." @@ -7601,44 +7549,39 @@ msgstr "ZmieÅ„ nazwÄ™" #: editor/rename_dialog.cpp msgid "Prefix" -msgstr "" +msgstr "Przedrostek" #: editor/rename_dialog.cpp msgid "Suffix" -msgstr "" +msgstr "Przyrostek" #: editor/rename_dialog.cpp -#, fuzzy msgid "Advanced options" -msgstr "Opcje przyciÄ…gania" +msgstr "Opcje zaawansowane" #: editor/rename_dialog.cpp msgid "Substitute" -msgstr "" +msgstr "Substytut" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node name" -msgstr "Nazwa wÄ™zÅ‚a:" +msgstr "Nazwa wÄ™zÅ‚a" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" -msgstr "" +msgstr "Nazwa rodzica wÄ™zÅ‚a, jeÅ›li dostÄ™pna" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node type" -msgstr "Znajdź typ wÄ™zÅ‚a" +msgstr "Typ wÄ™zÅ‚a" #: editor/rename_dialog.cpp -#, fuzzy msgid "Current scene name" -msgstr "Aktualna scena" +msgstr "Nazwa aktualnej sceny" #: editor/rename_dialog.cpp -#, fuzzy msgid "Root node name" -msgstr "Nazwa wÄ™zÅ‚a:" +msgstr "Nazwa korzenia" #: editor/rename_dialog.cpp msgid "" @@ -7652,35 +7595,35 @@ msgstr "" #: editor/rename_dialog.cpp msgid "If set the counter restarts for each group of child nodes" -msgstr "" +msgstr "Gdy ustawione, licznik restartuje dla każdej grupy wÄ™złów potomnych" #: editor/rename_dialog.cpp msgid "Initial value for the counter" -msgstr "" +msgstr "PoczÄ…tkowa wartość dla licznika" #: editor/rename_dialog.cpp -#, fuzzy msgid "Step" -msgstr "Krok:" +msgstr "Krok" #: editor/rename_dialog.cpp msgid "Amount by which counter is incremented for each node" -msgstr "" +msgstr "Liczba, o którÄ… licznik jest zwiÄ™kszany dla każdego wÄ™zÅ‚a" #: editor/rename_dialog.cpp msgid "Padding" -msgstr "" +msgstr "Wyrównanie" #: editor/rename_dialog.cpp msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." msgstr "" +"Minimalna liczba cyfr dla licznika.\n" +"BrakujÄ…ce cyfry sÄ… wyrównywane zerami poprzedzajÄ…cymi." #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expressions" -msgstr "ZmieÅ„ wyrażenie" +msgstr "Wyrażenia regularne" #: editor/rename_dialog.cpp #, fuzzy @@ -7693,30 +7636,27 @@ msgstr "Bez zmian" #: editor/rename_dialog.cpp msgid "CamelCase to under_scored" -msgstr "" +msgstr "CamelCase na under_scored" #: editor/rename_dialog.cpp msgid "under_scored to CamelCase" -msgstr "" +msgstr "under_scored na CamelCase" #: editor/rename_dialog.cpp msgid "Case" -msgstr "" +msgstr "Notacja" #: editor/rename_dialog.cpp -#, fuzzy msgid "To Lowercase" -msgstr "MaÅ‚e Litery" +msgstr "Na maÅ‚e litery" #: editor/rename_dialog.cpp -#, fuzzy msgid "To Uppercase" -msgstr "Wielkie Litery" +msgstr "Na wielkie litery" #: editor/rename_dialog.cpp -#, fuzzy msgid "Reset" -msgstr "Wyzeruj przybliżenie" +msgstr "Resetuj" #: editor/rename_dialog.cpp msgid "Error" @@ -7774,9 +7714,8 @@ msgstr "" "Nie można utworzyć sceny '%s' ponieważ obecna scena jest jednym z jej wezłów." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Instance Scene(s)" -msgstr "Instancja Scen(y)" +msgstr "Dodaj instancjÄ™ sceny" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" @@ -7791,12 +7730,10 @@ msgid "This operation can't be done on the tree root." msgstr "Nie można wykonać tej operacji na głównym węźle drzewa." #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Move Node In Parent" -msgstr "PrzenieÅ› wÄ™zeÅ‚ w nadrzÄ™dny" +msgstr "PrzenieÅ› wÄ™zeÅ‚ w nadrzÄ™dnym" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Move Nodes In Parent" msgstr "PrzenieÅ› wÄ™zÅ‚y w nadrzÄ™dnym" @@ -7825,6 +7762,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"WyÅ‚Ä…czenie \"edytowalnej instancji\" sprawi, że wszystkie wÅ‚aÅ›ciwoÅ›ci wÄ™zÅ‚a " +"zostanÄ… przywrócone do domyÅ›lnych." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7835,34 +7774,28 @@ msgid "Load As Placeholder" msgstr "Wczytaj jako zastÄ™pczy" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make Local" -msgstr "UczyÅ„ lokalnym" +msgstr "Zrób lokalne" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Create Root Node:" -msgstr "Utwórz wÄ™zeÅ‚" +msgstr "Utwórz korzeÅ„:" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "2D Scene" -msgstr "Scena" +msgstr "Scena 2D" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "3D Scene" -msgstr "Scena" +msgstr "Scena 3D" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "User Interface" -msgstr "Wyczyść dziedziczenie" +msgstr "Interfejs użytkownika" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Custom Node" -msgstr "Wytnij WÄ™zÅ‚y" +msgstr "Inny wÄ™zeÅ‚" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -7905,9 +7838,8 @@ msgid "Clear Inheritance" msgstr "Wyczyść dziedziczenie" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Otwórz dokumentacjÄ™ online" +msgstr "Otwórz dokumentacjÄ™" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7922,14 +7854,12 @@ msgid "Change Type" msgstr "ZmieÅ„ typ" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Otwórz skrypt" +msgstr "Rozszerz skrypt" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Make Scene Root" -msgstr "To ma sens!" +msgstr "ZmieÅ„ na korzeÅ„ sceny" #: editor/scene_tree_dock.cpp msgid "Merge From Scene" @@ -7941,7 +7871,7 @@ msgstr "Zapisz gałąź jako scenÄ™" #: editor/scene_tree_dock.cpp msgid "Copy Node Path" -msgstr "Skopiuj ÅšcieżkÄ™" +msgstr "Skopiuj Å›cieżkÄ™ wÄ™zÅ‚a" #: editor/scene_tree_dock.cpp msgid "Delete (No Confirm)" @@ -7956,7 +7886,7 @@ msgid "" "Instance a scene file as a Node. Creates an inherited scene if no root node " "exists." msgstr "" -"Stwórz instancję sceny jako wÄ™zeÅ‚. Tworzy dziedziczÄ…cÄ… scenÄ™ jeÅ›li wÄ™zeÅ‚ " +"Dodaj instancję sceny jako wÄ™zeÅ‚. Tworzy dziedziczÄ…cÄ… scenÄ™ jeÅ›li wÄ™zeÅ‚ " "główny nie istnieje." #: editor/scene_tree_dock.cpp @@ -7980,7 +7910,6 @@ msgid "Clear Inheritance? (No Undo!)" msgstr "WyczyÅ›cić dziedziczenie? (Nie można cofnąć!)" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "Toggle Visible" msgstr "PrzeÅ‚Ä…cz widoczność" @@ -7989,12 +7918,11 @@ msgid "Node configuration warning:" msgstr "Ostrzeżenie konfiguracji wÄ™zÅ‚a:" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Node has connection(s) and group(s).\n" "Click to show signals dock." msgstr "" -"WÄ™zeÅ‚ posiada poÅ‚Ä…czenia i grupy\n" +"WÄ™zeÅ‚ posiada poÅ‚Ä…czenie(a) i grupÄ™(y).\n" "Kliknij, aby wyÅ›wietlić panel sygnałów." #: editor/scene_tree_editor.cpp @@ -8014,27 +7942,24 @@ msgstr "" "Kliknij, aby wyÅ›wietlić panel grup." #: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -#, fuzzy msgid "Open Script" msgstr "Otwórz skrypt" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Node is locked.\n" "Click to unlock it." msgstr "" "WÄ™zeÅ‚ jest zablokowany.\n" -"Kliknij by odblokować" +"Kliknij, by go odblokować." #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Children are not selectable.\n" "Click to make selectable." msgstr "" -"Dziecko nie jest możliwe do zaznaczenia.\n" -"Kliknij by móc zaznaczyć" +"Dzieci nie sÄ… możliwe do zaznaczenia.\n" +"Kliknij, by móc zaznaczyć." #: editor/scene_tree_editor.cpp msgid "Toggle Visibility" @@ -8045,6 +7970,8 @@ msgid "" "AnimationPlayer is pinned.\n" "Click to unpin." msgstr "" +"AnimationPlayer jest przypiÄ™ty.\n" +"Kliknij, by odpiąć." #: editor/scene_tree_editor.cpp msgid "Invalid node name, the following characters are not allowed:" @@ -8083,18 +8010,16 @@ msgid "N/A" msgstr "N/A" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Open Script/Choose Location" -msgstr "Otwórz edytor skryptów" +msgstr "Otwórz skrypt/Wybierz lokacjÄ™" #: editor/script_create_dialog.cpp msgid "Path is empty" msgstr "Åšcieżka jest pusta" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Åšcieżka zapisu jest pusta!" +msgstr "Nazwa pliku jest pusta" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8185,9 +8110,8 @@ msgid "Bytes:" msgstr "Bajty:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "Ramki stosu" +msgstr "Åšlad stosu" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8275,7 +8199,7 @@ msgstr "Typ klikniÄ™tej kontrolki:" #: editor/script_editor_debugger.cpp msgid "Live Edit Root:" -msgstr "" +msgstr "KorzeÅ„ edycji:" #: editor/script_editor_debugger.cpp msgid "Set From Tree" @@ -8295,7 +8219,7 @@ msgstr "ZmieÅ„ promieÅ„Â Å›wiatÅ‚a" #: editor/spatial_editor_gizmos.cpp msgid "Change AudioStreamPlayer3D Emission Angle" -msgstr "" +msgstr "ZmieÅ„ kÄ…t emisji wÄ™zÅ‚a AudioStreamPlayer3D" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera FOV" @@ -8307,11 +8231,11 @@ msgstr "ZmieÅ„ rozmiar kamery" #: editor/spatial_editor_gizmos.cpp msgid "Change Notifier AABB" -msgstr "" +msgstr "ZmieÅ„ AABB powiadamiacza" #: editor/spatial_editor_gizmos.cpp msgid "Change Particles AABB" -msgstr "" +msgstr "ZmieÅ„ AABB czÄ…steczek" #: editor/spatial_editor_gizmos.cpp msgid "Change Probe Extents" @@ -8334,38 +8258,32 @@ msgid "Change Capsule Shape Height" msgstr "ZmieÅ„ wysokość ksztaÅ‚tu kapsuÅ‚y" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Cylinder Shape Radius" -msgstr "ZmieÅ„ Å›rednicÄ™ Capsule Shape" +msgstr "ZmieÅ„ promieÅ„ ksztaÅ‚tu cylindra" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Cylinder Shape Height" -msgstr "ZmieÅ„ wysokość ksztaÅ‚tu kapsuÅ‚y" +msgstr "ZmieÅ„ wysokość ksztaÅ‚tu cylindra" #: editor/spatial_editor_gizmos.cpp msgid "Change Ray Shape Length" msgstr "ZmieÅ„Â dÅ‚ugość Ray Shape" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Radius" -msgstr "ZmieÅ„ promieÅ„Â Å›wiatÅ‚a" +msgstr "ZmieÅ„ promieÅ„Â cylindra" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Height" -msgstr "ZmieÅ„ wysokość ksztaÅ‚tu kapsuÅ‚y" +msgstr "ZmieÅ„ wysokość cylindra" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Torus Inner Radius" -msgstr "ZmieÅ„ promieÅ„ Sphere Shape" +msgstr "ZmieÅ„ wewnÄ™trzny promieÅ„ torusa" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Torus Outer Radius" -msgstr "ZmieÅ„ promieÅ„Â Å›wiatÅ‚a" +msgstr "ZmieÅ„ zewnÄ™trzny promieÅ„Â torusa" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Select the dynamic library for this entry" @@ -8376,9 +8294,8 @@ msgid "Select dependencies of the library for this entry" msgstr "Zaznacz zależnoÅ›ci biblioteki dla tego pola" #: modules/gdnative/gdnative_library_editor_plugin.cpp -#, fuzzy msgid "Remove current entry" -msgstr "UsuÅ„ punkt krzywej" +msgstr "UsuÅ„ aktualny wpis" #: modules/gdnative/gdnative_library_editor_plugin.cpp msgid "Double click to create a new entry" @@ -8421,7 +8338,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "argument kroku wynosi zero!" #: modules/gdscript/gdscript_functions.cpp @@ -8455,21 +8373,19 @@ msgstr "Niepoprawna instancja sÅ‚ownika (niepoprawne podklasy)" #: modules/gdscript/gdscript_functions.cpp msgid "Object can't provide a length." -msgstr "" +msgstr "Obiekt nie może podać dÅ‚ugoÅ›ci." #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Next Plane" -msgstr "NastÄ™pna zakÅ‚adka" +msgstr "NastÄ™pna pÅ‚aszczyzna" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Previous Plane" -msgstr "Poprzednia zakÅ‚adka" +msgstr "Poprzednia pÅ‚aszczyzna" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Plane:" -msgstr "" +msgstr "PÅ‚aszczyzna:" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Next Floor" @@ -8488,9 +8404,8 @@ msgid "GridMap Delete Selection" msgstr "GridMap UsuÅ„ zaznaczenie" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "GridMap Fill Selection" -msgstr "GridMap UsuÅ„ zaznaczenie" +msgstr "GridMap WypeÅ‚nij zaznaczenie" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Duplicate Selection" @@ -8545,44 +8460,39 @@ msgstr "Kursor Obróć Z" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Back Rotate X" -msgstr "" +msgstr "Kursor Obróć w tyÅ‚ X" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Back Rotate Y" -msgstr "" +msgstr "Kursor Obróć w tyÅ‚ Y" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Back Rotate Z" -msgstr "" +msgstr "Kursor Obróć w tyÅ‚ Z" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cursor Clear Rotation" -msgstr "" +msgstr "Kursor Wyczyść obrót" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Create Area" -msgstr "Tworzenie obszaru" +msgstr "Utwórz obszar" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Create Exterior Connector" -msgstr "Utwórz nowy projekt" +msgstr "Utwórz Å‚Ä…cznik zewnÄ™trzny" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Erase Area" msgstr "UsuÅ„Â obszar" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" -msgstr "Wyczyść zaznaczenie" +msgstr "Wyczyść zaznaczone" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Fill Selection" -msgstr "Wszystkie zaznaczenia" +msgstr "WypeÅ‚nij zaznaczone" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -8893,9 +8803,8 @@ msgid "Change Input Value" msgstr "ZmieÅ„ wartość wejÅ›ciowÄ…" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Can't copy the function node." -msgstr "Nie można skopiować funkcji wÄ™zÅ‚a." +msgstr "Nie można skopiować wÄ™zÅ‚a funkcji." #: modules/visual_script/visual_script_editor.cpp msgid "Clipboard is empty!" @@ -8970,9 +8879,8 @@ msgid "Paste Nodes" msgstr "Wklej wÄ™zÅ‚y" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Member" -msgstr "CzÅ‚onkowie" +msgstr "Edytuj czÅ‚onka" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -8987,9 +8895,8 @@ msgid "Iterator became invalid: " msgstr "Iterator staÅ‚ siÄ™ nieprawidÅ‚owy: " #: modules/visual_script/visual_script_func_nodes.cpp -#, fuzzy msgid "Invalid index property name." -msgstr "NieprawidÅ‚owa nazwa klasy bazowej" +msgstr "NieprawidÅ‚owa nazwa wÅ‚aÅ›ciwoÅ›ci indeksowej." #: modules/visual_script/visual_script_func_nodes.cpp msgid "Base object is not a Node!" @@ -9033,17 +8940,16 @@ msgstr "" "caÅ‚kowitÄ… (seq out), lub tekstowÄ… (error)." #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Search VisualScript" -msgstr "UsuÅ„ wÄ™zeÅ‚ VisualScript" +msgstr "Przeszukaj VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Przyjmij %s" #: modules/visual_script/visual_script_property_selector.cpp msgid "Set %s" -msgstr "" +msgstr "Ustaw %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9096,16 +9002,15 @@ msgstr "" "przy czym pozostaÅ‚e zostanÄ… zignorowane." #: scene/2d/collision_object_2d.cpp -#, fuzzy msgid "" "This node has no shape, so it can't collide or interact with other objects.\n" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " "define its shape." msgstr "" -"Ten wÄ™zeÅ‚ nie posiada podwezÅ‚a, który definiowaÅ‚ by jego ksztaÅ‚t, wiÄ™c nie " -"może wchodzić w interakcje.\n" -"PowinieneÅ› dodać wÄ™zeÅ‚ \"CollisionShape2D\" lub \"CollisionPolygon2D\" jako " -"podwÄ™zeÅ‚ aby zdefiniować ksztaÅ‚t." +"Ten wÄ™zeÅ‚ nie posiada ksztaÅ‚tu, wiÄ™c nie może kolidować, czy wchodzić w " +"interakcje z innymi obiektami.\n" +"Rozważ dodanie wÄ™zÅ‚a CollisionShape2D lub CollisionPolygon2D jako podrzÄ™dny, " +"aby zdefiniować ksztaÅ‚t." #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -9144,6 +9049,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Animacja CPUParticles2D wymaga użycia CanvasItemMaterial z wÅ‚Ä…czonym " +"\"Particles Animation\"." #: scene/2d/light_2d.cpp msgid "" @@ -9199,6 +9106,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Animacja Particles2D wymaga użycia CanvasItemMaterial z wÅ‚Ä…czonym " +"\"Particles Animation\"." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9221,16 +9130,20 @@ msgstr "Å»eby zadziaÅ‚aÅ‚o, pole Path musi wskazywać na istniejÄ…cy wÄ™zeÅ‚ Nod #: scene/2d/skeleton_2d.cpp msgid "This Bone2D chain should end at a Skeleton2D node." -msgstr "" +msgstr "Ten Å‚aÅ„cuch koÅ›ci 2D powinien siÄ™ koÅ„czyć na węźle Skeleton2D." #: scene/2d/skeleton_2d.cpp msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." msgstr "" +"WÄ™zeÅ‚ Bone2D dziaÅ‚a tylko z wÄ™zÅ‚em Skeleton2D lub innym Bone2D jako " +"nadrzÄ™dnym wÄ™zÅ‚em." #: scene/2d/skeleton_2d.cpp msgid "" "This bone lacks a proper REST pose. Go to the Skeleton2D node and set one." msgstr "" +"Tej koÅ›ci brakuje odpowiedniej pozy spoczynkowej. Pójdź do wÄ™zÅ‚a Skeleton2D " +"i ustaw jÄ…." #: scene/2d/visibility_notifier_2d.cpp msgid "" @@ -9245,9 +9158,8 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera musi dziedziczyć po węźle ARVROrigin" #: scene/3d/arvr_nodes.cpp -#, fuzzy msgid "ARVRController must have an ARVROrigin node as its parent" -msgstr "ARVRController musi posiadać wÄ™zeÅ‚ ARVROrigin jako rodzica" +msgstr "ARVRController musi posiadać wÄ™zeÅ‚ ARVROrigin jako nadrzÄ™dny" #: scene/3d/arvr_nodes.cpp msgid "" @@ -9258,15 +9170,16 @@ msgstr "" "przypisany do żadnego rzeczywistego kontrolera" #: scene/3d/arvr_nodes.cpp -#, fuzzy msgid "ARVRAnchor must have an ARVROrigin node as its parent" -msgstr "ARVRAnchor musi posiadać wÄ™zeÅ‚ ARVROrigin jako rodzica" +msgstr "ARVRAnchor musi posiadać wÄ™zeÅ‚ ARVROrigin jako nadrzÄ™dny" #: scene/3d/arvr_nodes.cpp msgid "" "The anchor id must not be 0 or this anchor will not be bound to an actual " "anchor" msgstr "" +"ID kotwicy nie może być 0, bo inaczej ta kotwica nie bÄ™dzie przypisana do " +"rzeczywistej kotwicy" #: scene/3d/arvr_nodes.cpp msgid "ARVROrigin requires an ARVRCamera child node" @@ -9298,16 +9211,15 @@ msgid "Lighting Meshes: " msgstr "OÅ›wietlanie siatek: " #: scene/3d/collision_object.cpp -#, fuzzy msgid "" "This node has no shape, so it can't collide or interact with other objects.\n" "Consider adding a CollisionShape or CollisionPolygon as a child to define " "its shape." msgstr "" -"Ten wÄ™zeÅ‚ nie posiada podwezÅ‚a, który definiowaÅ‚by jego ksztaÅ‚t, wiÄ™c nie " -"może wchodzić w interakcje z przestrzeniÄ….\n" -"PowinieneÅ› dodać wÄ™zeÅ‚ \"CollisionShape2D\" lub \"CollisionPolygon2D\" jako " -"jego podwÄ™zeÅ‚ aby zdefiniować jego ksztaÅ‚t." +"Ten wÄ™zeÅ‚ nie posiada ksztaÅ‚tu, wiÄ™c nie może kolidować, czy wchodzić w " +"interakcje z innymi obiektami.\n" +"Rozważ dodanie wÄ™zÅ‚a CollisionShape lub CollisionPolygon jako podrzÄ™dny, aby " +"zdefiniować ksztaÅ‚t." #: scene/3d/collision_polygon.cpp msgid "" @@ -9342,14 +9254,17 @@ msgstr "" "Utwórz zasób typu CollisionShape w odpowiednim polu obiektu!" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "" +#, fuzzy +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Nic nie jest widoczne, bo nie zostaÅ‚a przypisana żadna siatka." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"Animacja CPUParticles wymaga użycia SpatialMaterial z wÅ‚Ä…czonym \"Billboard " +"Particles\"." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9373,26 +9288,31 @@ msgstr "" 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." #: scene/3d/particles.cpp msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"Animacja Particles wymaga użycia SpatialMaterial z wÅ‚Ä…czonym \"Billboard " +"Particles\"." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D zadziaÅ‚a tylko wtedy, gdy bÄ™dzie dzieckiem wÄ™zeÅ‚ Path2D." +msgstr "PathFollow dziaÅ‚a tylko, gdy jest wÄ™zÅ‚em podrzÄ™dnym Path." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D zadziaÅ‚a tylko wtedy, gdy bÄ™dzie dzieckiem wÄ™zeÅ‚ Path2D." +msgstr "OrientedPathFollow dziaÅ‚a tylko, gdy jest wÄ™zÅ‚em podrzÄ™dnym Path." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" +"OrientedPathFollow wymaga wÅ‚Ä…czonych wektorów w górÄ™ w jego nadrzÄ™dnym Path." #: scene/3d/physics_body.cpp #, fuzzy @@ -9411,7 +9331,7 @@ msgstr "Pole Path musi wskazywać na wÄ™zeÅ‚ Spatial." #: scene/3d/scenario_fx.cpp msgid "WorldEnvironment needs an Environment resource." -msgstr "" +msgstr "WorldEnvironment wymaga zasobu Environment." #: scene/3d/scenario_fx.cpp msgid "" @@ -9425,20 +9345,21 @@ msgid "" "This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set " "this environment's Background Mode to Canvas (for 2D scenes)." msgstr "" +"Ten WorldEnvironment jest ignorowany. Dodaj Camera (dla scen 3D) lub ustaw " +"Background Mode tego Å›rodowiska na Canvas (dla scen 2D)." #: scene/3d/soft_body.cpp msgid "This body will be ignored until you set a mesh" -msgstr "" +msgstr "To ciaÅ‚o bÄ™dzie ignorowane, dopóki nie ustawisz siatki" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" "Change the size in children collision shapes instead." msgstr "" -"Zmiany rozmiaru w RigidBody (w trybach character i rigid) zostanÄ… nadpisane " -"przez silnik fizyki podczas dziaÅ‚ania.\n" +"Zmiany rozmiaru dla SoftBody zostanÄ… nadpisane przez silnik fizyki podczas " +"dziaÅ‚ania.\n" "Zamiast tego, zmieÅ„ rozmiary ksztaÅ‚tów kolizji w wÄ™zÅ‚ach podrzÄ™dnych." #: scene/3d/sprite_3d.cpp @@ -9459,44 +9380,45 @@ msgstr "" #: scene/animation/animation_blend_tree.cpp msgid "On BlendTree node '%s', animation not found: '%s'" -msgstr "" +msgstr "W węźle BlendTree '%s', animacja nie znaleziona: '%s'" #: scene/animation/animation_blend_tree.cpp -#, fuzzy msgid "Animation not found: '%s'" -msgstr "NarzÄ™dzia do animacji" +msgstr "Animacja nie znaleziona: '%s'" #: scene/animation/animation_tree.cpp msgid "In node '%s', invalid animation: '%s'." -msgstr "" +msgstr "W węźle '%s', nieprawidÅ‚owa animacja: '%s'." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Invalid animation: '%s'." -msgstr "BÅÄ„D: bÅ‚Ä™dna nazwa animacji!" +msgstr "NieprawidÅ‚owa animacja: '%s'." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Nothing connected to input '%s' of node '%s'." -msgstr "RozÅ‚Ä…cz '%s' z '%s'" +msgstr "Nic nie podÅ‚Ä…czono do wejÅ›cia '%s' wÄ™zÅ‚a '%s'." #: scene/animation/animation_tree.cpp msgid "A root AnimationNode for the graph is not set." -msgstr "" +msgstr "KorzeÅ„ dla grafu AnimationNode nie jest ustawiony." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Path to an AnimationPlayer node containing animations is not set." -msgstr "Zaznacz wÄ™zeÅ‚ AnimationPlayer w drzewie sceny aby edytować animacje." +msgstr "" +"Åšcieżka do wÄ™zÅ‚a AnimationPlayer zawierajÄ…cego animacje nie jest ustawiona." #: scene/animation/animation_tree.cpp msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node." msgstr "" +"Åšcieżka do wÄ™zÅ‚a AnimationPlayer nie prowadzi do wÄ™zÅ‚a AnimationPlayer." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "AnimationPlayer root is not a valid node." -msgstr "Drzewo animacji jest wadliwe." +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 "" #: scene/gui/color_picker.cpp msgid "Raw Mode" @@ -9514,6 +9436,10 @@ msgstr "Alarm!" msgid "Please Confirm..." msgstr "ProszÄ™ potwierdzić..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9544,13 +9470,12 @@ msgid "(Other)" msgstr "Inne" #: scene/main/scene_tree.cpp -#, fuzzy msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "" -"DomyÅ›lne Åšrodowisko okreÅ›lone w Ustawieniach Projektu (Renderowanie -> " -"Viewport -> DomyÅ›lne Åšrodowisko) nie mogÅ‚o zostać zaÅ‚adowane." +"DomyÅ›lne Å›rodowisko okreÅ›lone w Ustawieniach Projektu (Renderowanie -> " +"Environment -> Default Environment) nie mogÅ‚o zostać zaÅ‚adowane." #: scene/main/viewport.cpp msgid "" @@ -9581,31 +9506,77 @@ msgid "Invalid font size." msgstr "Niepoprawny rozmiar fonta." #: scene/resources/visual_shader.cpp -#, fuzzy msgid "Input" -msgstr "Dodaj WejÅ›cie" - -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<żaden>" +msgstr "WejÅ›cie" #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid source for shader." -msgstr "Wadliwe źródÅ‚o!" +msgstr "NiewÅ‚aÅ›ciwe źródÅ‚o dla shadera." #: servers/visual/shader_language.cpp msgid "Assignment to function." -msgstr "" +msgstr "Przypisanie do funkcji." #: servers/visual/shader_language.cpp msgid "Assignment to uniform." -msgstr "" +msgstr "Przypisanie do uniformu." #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." -msgstr "" +msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." + +#~ msgid "Create Poly" +#~ msgstr "Utwórz Polygon" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Utwórz nowy wielokÄ…t od zera" + +#~ msgid "Zoom out" +#~ msgstr "Pomniejsz" + +#~ msgid "Zoom in" +#~ msgstr "PowiÄ™ksz" + +#~ msgid "Create Poly3D" +#~ msgstr "Stwórz Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Brak zasobu OccluderPolygon2D w tym węźle.\n" +#~ "Stworzyć i przypisać nowy?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Edytuj istniejÄ…cy polygon:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: PrzesuÅ„ Punkt." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl + LPM: PodziaÅ‚u segmentu." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Wymaż Punkt." + +#~ msgid "New TextFile" +#~ msgstr "Nowy plik tekstowy" + +#~ msgid "Save Theme As" +#~ msgstr "Zapisz motyw jako" + +#~ msgid "<None>" +#~ msgstr "<żaden>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Wybierz pod-kafelek do użycia jako ikona. Zostanie on użyty również do " +#~ "niewÅ‚aÅ›ciwych ustawieÅ„ autokafelków." + +#~ msgid "Zoom:" +#~ msgstr "PowiÄ™kszenie:" #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Na pewno chcesz usunąć wszystkie poÅ‚Ä…czenia z \"" @@ -10286,9 +10257,6 @@ msgstr "" #~ msgid "Source Font:" #~ msgstr "ŹródÅ‚o fontu:" -#~ msgid "Source Font Size:" -#~ msgstr "Wielkość oryginalna fontu:" - #~ msgid "Dest Resource:" #~ msgstr "Zasób docelowy:" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index 065cbdfc59..a87270b89a 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -2,22 +2,23 @@ # Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. # Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) # This file is distributed under the same license as the Godot source code. -# # Calum Knott <calum@calumk.com>, 2017. # Zion Nimchuk <zionnimchuk@gmail.com>, 2016-2017. -# +# Allan Nordhøy <epost@anotheragency.no>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-11-23 14:48+0000\n" -"Last-Translator: Calum Knott <calum@calumk.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" +"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Language-Team: Pirate <https://hosted.weblate.org/projects/godot-engine/" "godot/pr/>\n" "Language: pr\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.18-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -265,7 +266,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -536,15 +536,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -553,7 +557,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -715,8 +719,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -763,8 +767,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1220,8 +1223,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1688,6 +1690,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2086,7 +2094,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2110,7 +2118,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2526,6 +2534,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2542,8 +2556,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2969,7 +2982,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3096,7 +3109,7 @@ msgstr "" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Yer unique name be evil." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3346,45 +3359,46 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Ye be fixin' Signal:" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr "Discharge ye' Function" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Yar, Blow th' Selected Down!" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" +msgid "Erase points." msgstr "Yar, Blow th' Selected Down!" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3429,17 +3443,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Yar, Blow th' Selected Down!" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Yar, Blow th' Selected Down!" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3516,7 +3519,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Add Node" @@ -4053,7 +4055,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4204,15 +4206,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4471,7 +4473,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4576,35 +4587,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4972,6 +4957,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4999,6 +4988,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5014,11 +5007,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5079,6 +5067,10 @@ msgstr "Discharge ye' Function" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5090,7 +5082,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5133,7 +5131,15 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5157,12 +5163,9 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +#, fuzzy +msgid "Move Points" +msgstr "Discharge ye' Signal" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5189,19 +5192,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5340,20 +5343,24 @@ msgid "Error saving file!" msgstr "Error loading yer Calligraphy Pen." #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Blimey! I can't make th' signature object!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Error loading yer Calligraphy Pen." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Error loading yer Calligraphy Pen." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Error loading yer Calligraphy Pen." #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5372,6 +5379,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5412,7 +5427,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5442,15 +5457,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5559,6 +5574,10 @@ msgstr "" msgid "Go to Function" msgstr "Add Function" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5591,10 +5610,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6295,11 +6310,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6542,12 +6562,12 @@ msgstr "Change yer Anim Transform" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Add Node(s) From yer Tree" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Discharge ye' Signal" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6559,13 +6579,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Paste yer Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6595,16 +6636,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Slit th' Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Yar, Blow th' Selected Down!" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Slit th' Node" @@ -6622,11 +6674,18 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Slit th' Node" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6642,6 +6701,11 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Add Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6679,7 +6743,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8145,7 +8209,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "Blimey! Ye step argument be marooned!" #: modules/gdscript/gdscript_functions.cpp @@ -8497,7 +8562,7 @@ msgstr "Yer variables:" #: modules/visual_script/visual_script_editor.cpp msgid "Name is not a valid identifier:" -msgstr "Yer name's got no valid identifier: " +msgstr "Yer name's got no valid identifier:" #: modules/visual_script/visual_script_editor.cpp msgid "Name already in use by another func/var/signal:" @@ -9025,7 +9090,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9068,7 +9133,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9157,6 +9224,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9173,6 +9244,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9229,10 +9304,6 @@ msgstr "Yer Calligraphy be wrongly sized." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index e7fcb8b27d..275f374a74 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -37,12 +37,14 @@ # LucasSouza6 <lucasosouza66@gmail.com>, 2018. # Pedro Pacheco <pedroxixipa@hotmail.com>, 2018. # Bruno Henrique <nimbusdroid@gmail.com>, 2018. +# Luciano Scilletta <lucianoscilletta@gmail.com>, 2018. +# Julio Yagami <juliohenrique31501234@hotmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2018-11-26 16:10+0000\n" -"Last-Translator: Bruno Henrique <nimbusdroid@gmail.com>\n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" +"Last-Translator: Julio Yagami <juliohenrique31501234@hotmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -50,7 +52,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.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -284,7 +286,6 @@ msgstr "Criar %d NOVAS trilhas e inserir chaves?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -433,12 +434,10 @@ msgid "Delete Selection" msgstr "Deletar Seleção" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "Ir ao Próximo Passo" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "Ir ao Passo Anterior" @@ -562,15 +561,19 @@ msgstr "Substituir Tudo" msgid "Selection Only" msgstr "Apenas na Seleção" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Ampliar" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Reduzir" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Redefinir Ampliação" @@ -579,8 +582,9 @@ msgid "Warnings:" msgstr "Avisos:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Ampliação:" +#, fuzzy +msgid "Font Size:" +msgstr "Tamanho da Fonte de Origem:" #: editor/code_editor.cpp msgid "Line:" @@ -693,9 +697,8 @@ msgid "Edit Connection: " msgstr "Editar Conexão: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Tem certeza que quer remover todas conexões desse sinal?" +msgstr "Tem certeza que quer remover todas as conexões do sinal \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -740,8 +743,8 @@ msgid "Recent:" msgstr "Recente:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Pesquisar:" @@ -792,8 +795,7 @@ msgid "Resource" msgstr "Recurso" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Caminho" @@ -1256,8 +1258,7 @@ msgid "Node Name:" msgstr "Nome do nó:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nome" @@ -1344,7 +1345,6 @@ msgid "Copy Path" msgstr "Copiar Caminho" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Mostrar no Gerenciador de Arquivos" @@ -1495,9 +1495,8 @@ msgid "Methods" msgstr "Métodos" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Métodos" +msgstr "Métodos:" #: editor/editor_help.cpp #, fuzzy @@ -1741,6 +1740,12 @@ msgstr "Essa operação não pode ser realizada sem uma raiz da cena." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1748,8 +1753,9 @@ msgstr "" "herança) não foram satisfeitas." #: editor/editor_node.cpp editor/scene_tree_dock.cpp +#, fuzzy msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Não é possÃvel sobrescrever cena que ainda está aberta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -2183,7 +2189,7 @@ msgid "Undo" msgstr "Desfazer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Refazer" @@ -2207,7 +2213,7 @@ msgstr "Configurações do Projeto" msgid "Export" msgstr "Exportar" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Ferramentas" @@ -2637,24 +2643,37 @@ msgstr "Atribuir.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: 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 "" +"Não é possÃvel criar uma ViewportTexture nos recursos salvos como um " +"arquivo.\n" +"Recursos precisam pertencer à cena." #: editor/editor_properties.cpp +#, fuzzy msgid "" "Can't create a ViewportTexture on this resource because it's not set as " "local to scene.\n" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Não é possÃvel criar uma ViewportTexture nesse recurso porque não está " +"definido como uma cena local.\n" +"Por favor troque na 'local para cena' propriedade" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Escolha uma Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Novo Script" @@ -3081,7 +3100,7 @@ msgstr "Duplicar..." msgid "Move To..." msgstr "Mover Para..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Novo Script..." @@ -3214,7 +3233,8 @@ msgid "Group name already exists." msgstr "ERRO: Nome da animação já existe!" #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "Nome de Grupo Inválido." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3466,14 +3486,14 @@ msgid "Activate now?" msgstr "Ativar agora?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Criar PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Editar PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3481,25 +3501,28 @@ msgid "Insert Point" msgstr "Inserir Ponto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Editar PolÃgono (Remover Ponto)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Remover PolÃgono e Ponto" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Criar um novo polÃgono do zero" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Criar Pontos" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Editar polÃgono existente:\n" "LMB: Mover Ponto.\n" @@ -3507,8 +3530,10 @@ msgstr "" "RMB: Apagar Ponto." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Excluir Pontos" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "RMB: Apagar Pontos" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3560,17 +3585,6 @@ msgstr "Selecionar e mover pontos, criar pontos com RMB." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Criar Pontos" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "RMB: Apagar Pontos" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Mover Ponto" @@ -3651,7 +3665,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Adicionar Nó" @@ -4206,7 +4219,7 @@ msgstr "Todos" msgid "Plugins" msgstr "Plugins" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Ordenar:" @@ -4367,21 +4380,19 @@ msgid "Paste Pose" msgstr "Colar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Ampliar Menos" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Restaurar Ampliação" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Ampliar Mais" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Modo de Seleção" @@ -4647,8 +4658,17 @@ msgstr "" "Arrastar e soltar + Alt : Mudar tipo de nó" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Criar PolÃgono 3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Criar PolÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Editar PolÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Editar PolÃgono (Remover Ponto)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4750,37 +4770,9 @@ msgid "Item List Editor" msgstr "Editor de Lista de Itens" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Nenhum recurso OccluderPolygon2D neste nó.\n" -"Criar e atribuir um?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Criar PolÃgono de Oclusão" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Criar um novo polÃgono do zero." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Editar polÃgono existente:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: Mover Ponto." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+LMB: Dividir Segmento." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Apagar Ponto." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh está vazia!" @@ -5153,6 +5145,11 @@ msgid "Add Point to Curve" msgstr "Adicionar Ponto à Curva" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Fechar Curva" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Mover Ponto na Curva" @@ -5180,6 +5177,11 @@ msgid "Click: Add Point" msgstr "Clique: Adicionar Ponto" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Dividir Segmentos (na curva)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Clique Direito: Excluir Ponto" @@ -5195,11 +5197,6 @@ msgstr "Adicionar Ponto (em espaço vazio)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Dividir Segmentos (na curva)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Excluir Ponto" @@ -5256,6 +5253,10 @@ msgstr "Remover Ponto de Controle de SaÃda" msgid "Remove In-Control Point" msgstr "Remover Ponto de Controle de Entrada" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Dividir Segmentos (na curva)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5268,10 +5269,19 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Mostrar Ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" +"Sem textura nesse nó.\n" +"Defina uma textura para poder editar essa região." + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Criar Mapa UV" @@ -5313,10 +5323,20 @@ msgid "Transform UV Map" msgstr "Transformar Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Tipo de Transformação" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Editor UV de PolÃgonos 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Editor UV de PolÃgonos 2D" @@ -5341,11 +5361,7 @@ msgstr "Fazer Ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Criar PolÃgono" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Mover Ponto" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5373,20 +5389,20 @@ msgid "Scale Polygon" msgstr "Escalonar PolÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Selecione um item de configuração primeiro!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5535,19 +5551,23 @@ msgid "Error saving file!" msgstr "Erro ao salvar TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Erro ao salvar tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Erro ao salvar" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Erro ao importar tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Erro ao importar" #: editor/plugins/script_editor_plugin.cpp @@ -5570,6 +5590,14 @@ msgid "Import Theme" msgstr "Importar Tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Erro ao salvar tema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Erro ao salvar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Salvar Tema Como..." @@ -5611,8 +5639,8 @@ msgstr "Arquivo" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Ver Arquivos" +msgid "Open..." +msgstr "Abrir" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5641,6 +5669,11 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importar Tema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Recarregar Tema" @@ -5649,10 +5682,6 @@ msgid "Save Theme" msgstr "Salvar Tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Salvar Tema Como" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Fechar Docs" @@ -5762,6 +5791,10 @@ msgstr "" msgid "Go to Function" msgstr "Ir para Função..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Apenas recursos do sistema de arquivos podem ser soltos." @@ -5795,10 +5828,6 @@ msgstr "Capitalizar" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6513,11 +6542,18 @@ msgid "Set Region Rect" msgstr "Definir Retângulo de Região" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Definir Manipulador" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Modo Snap:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<Nenhum>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6762,12 +6798,12 @@ msgstr "Transformação" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Adicionar Nó(s) a Partir da Ãrvore" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Remover a entrada atual" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6779,15 +6815,34 @@ msgid "Merge from Scene" msgstr "Fundir a partir de Cena" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "Colar Animação" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "RMB: Apagar Pontos" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Criar um novo polÃgono do zero." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." msgstr "" -"Selecione o sub-tile para usar como Ãcone, isso também vai ser usado em " -"vinculamentos de autotiles inválidos." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6820,13 +6875,8 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" -"LMB: ligar bit.\n" -"RMB: desligar bit." +msgid "Delete selected Rect." +msgstr "Excluir arquivos selecionados?" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6837,6 +6887,21 @@ msgstr "Selecione o sub-tile editado atual." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Delete polygon." +msgstr "Excluir Pontos" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "" +"LMB: ligar bit.\n" +"RMB: desligar bit." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6854,11 +6919,19 @@ msgstr "Selecione o sub-tile para alterar sua prioridade." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Selecione o sub-tile para alterar sua prioridade." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Essa operação não pode ser realizada sem uma cena." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Tile Set" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6877,6 +6950,11 @@ msgstr "Direita" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Adicionar Nó" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Shader" @@ -6917,7 +6995,7 @@ msgstr "Adicionar..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Preset de Exportação:" #: editor/project_export.cpp @@ -8450,7 +8528,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "o argumento step é zero!" #: modules/gdscript/gdscript_functions.cpp @@ -9371,7 +9450,7 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" "Nada está visÃvel porque as meshes não foram atribuÃdas a passes de desenho." @@ -9424,7 +9503,9 @@ msgstr "" "PathFollow2D apenas funciona quando definido como filho de um nó Path2D." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9532,6 +9613,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Ãrvore de Animação é inválida." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Bruto" @@ -9548,6 +9633,10 @@ msgstr "Alerta!" msgid "Please Confirm..." msgstr "Confirme Por Favor..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9617,11 +9706,6 @@ msgstr "Tamanho de fonte inválido." msgid "Input" msgstr "Adicionar Entrada" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Nenhum>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9641,6 +9725,62 @@ 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 "Create Poly" +#~ msgstr "Criar PolÃgono" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Criar um novo polÃgono do zero" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Ampliar Menos" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Ampliar Mais" + +#~ msgid "Create Poly3D" +#~ msgstr "Criar PolÃgono 3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Nenhum recurso OccluderPolygon2D neste nó.\n" +#~ "Criar e atribuir um?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Editar polÃgono existente:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: Mover Ponto." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+LMB: Dividir Segmento." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Apagar Ponto." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Ver Arquivos" + +#~ msgid "Save Theme As" +#~ msgstr "Salvar Tema Como" + +#~ msgid "<None>" +#~ msgstr "<Nenhum>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Selecione o sub-tile para usar como Ãcone, isso também vai ser usado em " +#~ "vinculamentos de autotiles inválidos." + +#~ msgid "Zoom:" +#~ msgstr "Ampliação:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Tem certeza que quer remover todas conexões do \"" @@ -10366,9 +10506,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Source Font:" #~ msgstr "Fonte Origem:" -#~ msgid "Source Font Size:" -#~ msgstr "Tamanho da Fonte de Origem:" - #~ msgid "Dest Resource:" #~ msgstr "Recurso Destino:" @@ -11145,13 +11282,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Scale Region Editor" #~ msgstr "Editor de Região de Escala" -#~ msgid "" -#~ "No texture in this node.\n" -#~ "Set a texture to be able to edit region." -#~ msgstr "" -#~ "Sem textura nesse nó.\n" -#~ "Defina uma textura para poder editar essa região." - #~ msgid "Inherit Scene" #~ msgstr "Herdar Cena" diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index 8ace02c1e0..8e0fcad566 100644 --- a/editor/translations/pt_PT.po +++ b/editor/translations/pt_PT.po @@ -16,15 +16,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-21 19:08+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\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" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -258,7 +260,6 @@ msgstr "Criar %d NOVAS Pistas e inserir Chaves?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -409,14 +410,12 @@ msgid "Delete Selection" msgstr "Apagar Seleção" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Ir Próximo Passo" +msgstr "Ir para Próximo Passo" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Ir Passo Anterior" +msgstr "Ir para Passo Anterior" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -538,15 +537,19 @@ msgstr "Substituir todos" msgid "Selection Only" msgstr "Apenas seleção" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoom In" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zoom Out" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Repor Zoom" @@ -555,8 +558,8 @@ msgid "Warnings:" msgstr "Avisos:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Zoom:" +msgid "Font Size:" +msgstr "Tamanho do tipo de letra:" #: editor/code_editor.cpp msgid "Line:" @@ -669,9 +672,8 @@ msgid "Edit Connection: " msgstr "Editar Conexão: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Deseja remover todas as conexões deste sinal?" +msgstr "Deseja remover todas as conexões do sinal \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -716,8 +718,8 @@ msgid "Recent:" msgstr "Recente:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Procurar:" @@ -768,8 +770,7 @@ msgid "Resource" msgstr "Recurso" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Caminho" @@ -826,9 +827,8 @@ msgid "Error loading:" msgstr "Erro ao carregar:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "Cena falha ao carregar devido a dependências que estão em falta:" +msgstr "Falha no carregamento devido a dependências em falta:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1235,8 +1235,7 @@ msgid "Node Name:" msgstr "Nome do Nó:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nome" @@ -1314,22 +1313,19 @@ msgid "File Exists, Overwrite?" msgstr "O Ficheiro existe, sobrescrever?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "Selecionar esta pasta" +msgstr "Selecionar esta Pasta" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" msgstr "Copiar Caminho" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Abrir no Gestor de Ficheiros" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" msgstr "Mostrar no Gestor de Ficheiros" @@ -1474,19 +1470,16 @@ msgid "Methods" msgstr "Métodos" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Métodos" +msgstr "Métodos:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Propriedades" +msgstr "Propriedades do Tema" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Propriedades:" +msgstr "Propriedades do Tema:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1513,14 +1506,12 @@ msgid "Constants:" msgstr "Constantes:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Descrição" +msgstr "Descrição da Classe" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Descrição:" +msgstr "Descrição da Classe:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1537,14 +1528,12 @@ msgstr "" "um[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Descrição da Propriedade:" +msgstr "Descrições da Propriedade" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "Descrição da Propriedade:" +msgstr "Descrições da Propriedade:" #: editor/editor_help.cpp msgid "" @@ -1555,14 +1544,12 @@ msgstr "" "[color=$color][url=$url]contribuindo com uma[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Descrição do Método:" +msgstr "Descrições do Método" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Descrição do Método:" +msgstr "Descrições do Método:" #: editor/editor_help.cpp msgid "" @@ -1578,49 +1565,40 @@ msgid "Search Help" msgstr "Procurar em Ajuda" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Vista normal" +msgstr "Mostrar Tudo" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Classes" +msgstr "Apenas Classes" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Métodos" +msgstr "Apenas Métodos" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Sinais" +msgstr "Apenas Sinais" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Constantes" +msgstr "Apenas Constantes" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Propriedades" +msgstr "Apenas Propriedades" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Propriedades" +msgstr "Apenas Propriedades do Tema" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Membros" +msgstr "Tipo do Membro" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Classe:" +msgstr "Classe" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1719,6 +1697,15 @@ msgstr "Esta operação não pode ser feita sem uma raiz da árvore." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"Esta cena não pode ser guardada porque existe inclusão de instâncias " +"cÃclica.\n" +"Resolva-a e tente guardá-la novamente." + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1727,7 +1714,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Não se consegue sobrescrever cena ainda aberta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1986,13 +1973,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Incapaz de carregar Script addon do Caminho: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"Incapaz de carregar Script addon do Caminho: '%s' Script não está no modo " -"ferramenta." +"Incapaz de carregar Script addon do caminho: '%s' Parece haver um erro no " +"código, reveja a sintaxe." #: editor/editor_node.cpp msgid "" @@ -2046,7 +2032,6 @@ msgstr "Padrão" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" msgstr "Mostrar no Sistema de Ficheiros" @@ -2131,7 +2116,6 @@ msgid "Save Scene" msgstr "Guardar Cena" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Guardar todas as Cenas" @@ -2161,7 +2145,7 @@ msgid "Undo" msgstr "Desfazer" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Refazer" @@ -2185,7 +2169,7 @@ msgstr "Configurações de Projeto" msgid "Export" msgstr "Exportar" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Ferramentas" @@ -2227,8 +2211,8 @@ msgid "" "On Android, deploy will use the USB cable for faster performance. This " "option speeds up testing for games with a large footprint." msgstr "" -"Quando esta opção está ativa, exportação ou distribuição criará um " -"executável mÃnimo.\n" +"Quando esta opção é ativada, exportação ou distribuição criará um executável " +"mÃnimo.\n" "O Sistema de Ficheiros será fornecido ao Projeto pelo Editor sobre a rede.\n" "Em Android, a distribuição irá usar a ligação USB para melhor performance. " "Esta opção acelera o teste de jogos pesados." @@ -2614,9 +2598,17 @@ msgstr "Atribuir.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Não se consegue criar Textura Viewport em recursos guardados como ficheiro.\n" +"O recurso tem de pertencer a uma cena." #: editor/editor_properties.cpp msgid "" @@ -2625,13 +2617,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Não se consegue criar Textura Viewport neste recurso porque não está " +"definido na cena como local.\n" +"Ative a sua propriedade 'local to scene' (e em todos os recursos que o " +"contêm até a um Nó)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Escolha uma Vista" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Novo Script" @@ -2941,9 +2936,8 @@ msgstr "" "leitura!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Favoritos:" +msgstr "Favoritos" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3028,14 +3022,12 @@ msgid "Instance" msgstr "Instância" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Favoritos:" +msgstr "Adicionar aos Favoritos" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Remover do Grupo" +msgstr "Remover dos Favoritos" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3057,7 +3049,7 @@ msgstr "Duplicar..." msgid "Move To..." msgstr "Mover para..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Novo Script..." @@ -3066,14 +3058,12 @@ msgid "New Resource..." msgstr "Novo Recurso..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" -msgstr "Expandir tudo" +msgstr "Expandir Tudo" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" -msgstr "Colapsar tudo" +msgstr "Colapsar Tudo" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3095,9 +3085,8 @@ msgid "Re-Scan Filesystem" msgstr "Carregar novamente o Sistema de Ficheiros" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "Alternar modo" +msgstr "Alternar modo de divisão" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3132,24 +3121,20 @@ msgid "Create Script" msgstr "Criar Script" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" -msgstr "Localizar em ficheiros" +msgstr "Localizar em Ficheiros" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Localizar: " +msgstr "Localizar:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Pasta: " +msgstr "Pasta:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Filtro: " +msgstr "Filtros:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3189,7 +3174,8 @@ msgid "Group name already exists." msgstr "Já existe o nome de grupo ." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "Nome de Grupo inválido." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3299,11 +3285,11 @@ msgstr "A guardar..." #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "Definir como padrão para '%s'" +msgstr "Definir como Padrão para '%s'" #: editor/import_dock.cpp msgid "Clear Default for '%s'" -msgstr "Limpar padrão para '%s'" +msgstr "Limpar Padrão para '%s'" #: editor/import_dock.cpp msgid " Files" @@ -3326,14 +3312,12 @@ msgid "Failed to load resource." msgstr "Falha ao carregar recurso." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" -msgstr "Expandir tudo" +msgstr "Expandir Todas as Propriedades" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" -msgstr "Colapsar todas as Propriedades" +msgstr "Colapsar Todas as Propriedades" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -3437,14 +3421,13 @@ msgid "Activate now?" msgstr "Ativar agora?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "Criar PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Editar PolÃgono" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3452,25 +3435,27 @@ msgid "Insert Point" msgstr "Inserir Ponto" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Editar Poly (Remover Ponto)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Remover Poly e Ponto" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Criar um novo PolÃgono de raÃz" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Criar pontos." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Editar PolÃgono existente:\n" "LMB: Mover Ponto.\n" @@ -3478,8 +3463,9 @@ msgstr "" "RMB: Apagar Ponto." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Apagar Pontos" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Apagar pontos." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3526,15 +3512,6 @@ msgstr "Selecionar e mover pontos, criar pontos com RMB." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Criar pontos." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Apagar pontos." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Ponto" @@ -3616,7 +3593,6 @@ msgstr "" "de recolher nome das faixas." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Adicionar Nó.." @@ -4153,7 +4129,7 @@ msgstr "Todos" msgid "Plugins" msgstr "Plugins" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Ordenar:" @@ -4201,7 +4177,7 @@ msgid "" "No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake " "Light' flag is on." msgstr "" -"Não há Meshes para cozinhar. Assegure-se que contêm um canal UV2 e que a " +"Não há Meshes para consolidar. Assegure-se que contêm um canal UV2 e que a " "referência 'Bake Light' flag está on." #: editor/plugins/baked_lightmap_editor_plugin.cpp @@ -4210,7 +4186,7 @@ msgstr "Falha ao criar imagens lightmap, assegure-se que o caminho é gravável. #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Bake Lightmaps" -msgstr "Cozinhar Lightmaps" +msgstr "Consolidar Lightmaps" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp @@ -4282,9 +4258,8 @@ msgid "Resize CanvasItem" msgstr "Redimensionar CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "Rodar CanvasItem" +msgstr "Escalar CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4307,18 +4282,19 @@ msgid "Paste Pose" msgstr "Colar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Diminuir zoom" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Repor zoom" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Aumentar zoom" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Modo seleção" @@ -4348,9 +4324,8 @@ msgid "Rotate Mode" msgstr "Modo rodar" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Modo escalar (R)" +msgstr "Modo Escalar" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4449,9 +4424,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "Restaura a capacidade de selecionar os Objetos-filho." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Esqueleto" +msgstr "Opções do Esqueleto" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4505,7 +4479,7 @@ msgstr "Mostrar Vista" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Mostrar Grupo e Bloquear Ãcones" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4578,8 +4552,17 @@ msgstr "" "Arrastar & largar + Alt : Altera o tipo de Nó" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Criar Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Criar PolÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Editar PolÃgono" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Editar Poly (Remover Ponto)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4665,7 +4648,7 @@ msgstr "Pressione Shift para editar tangentes individualmente" #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" -msgstr "Cozinhar a sonda GI" +msgstr "Consolidar Sonda GI" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -4680,37 +4663,9 @@ msgid "Item List Editor" msgstr "Editor da lista de itens" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Não há recurso OccluderPolygon2D neste Nó.\n" -"Criar um e associar?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Criar PolÃgono oclusor" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Criar um novo PolÃgono a partir do zero." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Editar PolÃgono existente:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: Mover Ponto." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+LMB: Separar segmento." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Apagar Ponto." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "A Malha está vazia!" @@ -4946,9 +4901,8 @@ msgid "Create Navigation Polygon" msgstr "Criar PolÃgono de navegação" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "Gerar Visibilidade do Rect" +msgstr "A Gerar Visibilidade Rect" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" @@ -5079,6 +5033,11 @@ msgid "Add Point to Curve" msgstr "Adicionar Ponto à curva" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Fechar curva" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Mover Ponto na curva" @@ -5106,6 +5065,11 @@ msgid "Click: Add Point" msgstr "Clique: Adicionar Ponto" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Separar segmento (na curva)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Clique direito: Apagar Ponto" @@ -5121,11 +5085,6 @@ msgstr "Adicionar Ponto (num espaço vazio)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Separar segmento (na curva)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Apagar Ponto" @@ -5182,6 +5141,10 @@ msgstr "Remover Ponto Out-Control" msgid "Remove In-Control Point" msgstr "Remover Ponto In-Control" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Separar segmento (na curva)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "Mover Junta" @@ -5192,10 +5155,17 @@ msgid "" msgstr "A propriedade esqueleto do Polygon2D não aponta para um nó Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "Sinc ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Criar mapa UV" @@ -5232,10 +5202,21 @@ msgid "Transform UV Map" msgstr "Transformar mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Tipo de transformação" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "Pintar pesos dos ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Editor UV de PolÃgono 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Editor UV de PolÃgono 2D" @@ -5256,11 +5237,8 @@ msgid "Bones" msgstr "Ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Criar PolÃgono" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "Mover Ponto" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5288,19 +5266,23 @@ msgid "Scale Polygon" msgstr "Escalar PolÃgono" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "Conectar dois pontos para fazer uma divisão" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Selecione uma separação para a apagar" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "Pintar pesos com intensidade especÃfica" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "Não pintar pesos com intensidade especÃfica" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5426,7 +5408,6 @@ msgid "Error writing TextFile:" msgstr "Erro ao escrever TextFile:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." msgstr "Erro ao carregar ficheiro." @@ -5439,19 +5420,23 @@ msgid "Error saving file!" msgstr "Erro ao guardar ficheiro!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Erro ao guardar tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Erro ao guardar" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Erro ao importar tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Erro ao importar" #: editor/plugins/script_editor_plugin.cpp @@ -5471,6 +5456,14 @@ msgid "Import Theme" msgstr "Importar tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Erro ao guardar tema" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Erro ao guardar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Guardar tema como..." @@ -5511,8 +5504,9 @@ msgid "File" msgstr "Ficheiro" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Novo TextFile" +#, fuzzy +msgid "Open..." +msgstr "Abrir" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5527,9 +5521,8 @@ msgid "Copy Script Path" msgstr "Copiar Caminho do Script" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" -msgstr "Histórico anterior" +msgstr "Histórico Anterior" #: editor/plugins/script_editor_plugin.cpp msgid "History Next" @@ -5541,6 +5534,11 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Importar tema" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Recarregar tema" @@ -5549,10 +5547,6 @@ msgid "Save Theme" msgstr "Guardar tema" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Guardar tema como" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Fechar documentos" @@ -5599,9 +5593,8 @@ msgid "Keep Debugger Open" msgstr "Manter depurador aberto" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" -msgstr "Depurar com Editor externo" +msgstr "Depurar com Editor Externo" #: editor/plugins/script_editor_plugin.cpp msgid "Open Godot online documentation" @@ -5644,9 +5637,8 @@ msgid "Debugger" msgstr "Depurador" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" -msgstr "Resultados da pesquisa" +msgstr "Resultados da Pesquisa" #: editor/plugins/script_text_editor.cpp msgid "Line" @@ -5657,9 +5649,12 @@ msgid "(ignore)" msgstr "(ignorar)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Ir para Função..." +msgstr "Ir para Função" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Padrão" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5693,10 +5688,6 @@ msgstr "Capitalizar" msgid "Syntax Highlighter" msgstr "Destaque de Sintaxe" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Padrão" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5748,14 +5739,12 @@ msgid "Trim Trailing Whitespace" msgstr "Apagar espaços nos limites" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" -msgstr "Converter Indentação em espaços" +msgstr "Converter Indentação em Espaços" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" -msgstr "Converter Indentação em tabulação" +msgstr "Converter Indentação em Tabulação" #: editor/plugins/script_text_editor.cpp msgid "Auto Indent" @@ -5771,33 +5760,28 @@ msgid "Remove All Breakpoints" msgstr "Remover todos os Breakpoints" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" -msgstr "Ir para próximo Breakpoint" +msgstr "Ir para Próximo Breakpoint" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "Ir para Breakpoint anterior" +msgstr "Ir para Breakpoint Anterior" #: editor/plugins/script_text_editor.cpp msgid "Find Previous" msgstr "Localizar Anterior" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." -msgstr "Localizar em ficheiros..." +msgstr "Localizar em Ficheiros..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Ir para Função..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." -msgstr "Ir para linha..." +msgstr "Ir para Linha..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" @@ -5888,13 +5872,12 @@ msgid "Animation Key Inserted." msgstr "Chave de Animação inserida." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Pitch" -msgstr "Trocar" +msgstr "Inclinação" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Direção" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -5982,7 +5965,7 @@ msgstr "Esta operação requer um único Nó selecionado." #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock View Rotation" -msgstr "Trancar Rotação da Vista" +msgstr "Bloquear Rotação da Vista" #: editor/plugins/spatial_editor_plugin.cpp msgid "Display Normal" @@ -6061,9 +6044,8 @@ msgid "Freelook Speed Modifier" msgstr "Modificador de velocidade Freelook" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "Trancar Rotação da Vista" +msgstr "Rotação da Vista Bloqueada" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6097,7 +6079,7 @@ msgstr "Modo escalar (R)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Local Coords" -msgstr "Coordenadas locais" +msgstr "Coordenadas Locais" #: editor/plugins/spatial_editor_plugin.cpp msgid "Local Space Mode (%s)" @@ -6397,12 +6379,18 @@ msgid "Set Region Rect" msgstr "Definir região Rect" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Definir Manipulador" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Modo Ajuste:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Nenhum>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Nenhum" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6565,9 +6553,8 @@ msgid "Fix Invalid Tiles" msgstr "Reparar Tiles inválidos" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Centrar seleção" +msgstr "Cortar Seleção" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6614,39 +6601,37 @@ msgid "Pick Tile" msgstr "Escolher Tile" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Mover Seleção" +msgstr "Copiar Seleção" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Modo rodar" +msgstr "Rodar p/ esquerda" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "Rodar PolÃgono" +msgstr "Rodar p/ direita" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Inverter horizontalmente" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Inverter verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "Transformar" +msgstr "Limpar Transformação" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Adicionar Textura(s) ao TIleSet" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Remover Textura atual do TileSet" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6658,21 +6643,40 @@ msgid "Merge from Scene" msgstr "Fundir a partir da Cena" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Selecionar sub-tile para usar como Ãcone, também será usado em ligações " -"autotile inválidas." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "Exibir nome dos tiles (segure tecla Alt)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Colar Animação" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Erase bitmask." +msgstr "Apagar pontos." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Criar um novo PolÃgono a partir do zero." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Exibir nome dos tiles (segure tecla Alt)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" -msgstr "Remover Textura Selecionada e TODOS OS TILES que a usam?" +msgstr "Remover textura selecionada e TODOS OS TILES que a usam?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." @@ -6687,9 +6691,8 @@ msgid "Merge from scene?" msgstr "Fundir a partir da Cena?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " ficheiro(s) não foi adicionado por já estar na lista." +msgstr "%s ficheiro(s) não foi/foram adicionado(s) por já estar(em) na lista." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6700,21 +6703,32 @@ msgstr "" "Clique em outro Tile para o editar." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Apagar arquivos selecionados?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"LMB: definir bit on.\n" -"RMB: definir bit off.\n" +"Selecionar o sub-tile editado.\n" "Clique em outro Tile para o editar." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Apagar Pontos" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"Selecionar o sub-tile editado.\n" +"LMB: definir bit on.\n" +"RMB: definir bit off.\n" "Clique em outro Tile para o editar." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6736,11 +6750,21 @@ msgstr "" "Clique em outro Tile para o editar." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Selecionar sub-tile para alterar a sua prioridade.\n" +"Clique em outro Tile para o editar." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "Esta propriedade não pode ser alterada." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Conjunto de tiles" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6756,6 +6780,11 @@ msgid "Light" msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Adicionar Nó.." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VIsualShader" @@ -6778,12 +6807,11 @@ msgstr "" #: editor/project_export.cpp msgid "Release" -msgstr "" +msgstr "Libertar" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "Exportar" +msgstr "A Exportar Tudo" #: editor/project_export.cpp msgid "Presets" @@ -6795,8 +6823,8 @@ msgstr "Adicionar..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "Exportar Projeto" +msgid "Export Path" +msgstr "Caminho da Exportação:" #: editor/project_export.cpp msgid "Resources" @@ -6861,14 +6889,12 @@ msgid "Export PCK/Zip" msgstr "Exportar PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Modo exportação:" +msgstr "Modo Exportação?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "Exportar" +msgstr "Exportar Tudo" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7515,7 +7541,7 @@ msgstr "Nome do Nó" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" -msgstr "Nome do pai do Nó, se disponÃvel" +msgstr "Nome do parente do Nó, se disponÃvel" #: editor/rename_dialog.cpp msgid "Node type" @@ -7554,7 +7580,6 @@ msgid "Step" msgstr "Passo" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" msgstr "Valor pelo qual cada contador é incrementado para cada nó" @@ -7563,7 +7588,6 @@ msgid "Padding" msgstr "Preenchimento" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." @@ -7617,7 +7641,7 @@ msgstr "Recolocar Nó" #: editor/reparent_dialog.cpp msgid "Reparent Location (Select new Parent):" -msgstr "Recolocar localização (selecionar novo parente):" +msgstr "Recolocar localização (selecionar novo Parente):" #: editor/reparent_dialog.cpp msgid "Keep Global Transform" @@ -7681,11 +7705,11 @@ msgstr "Esta operação não pode ser feita na raiz da árvore." #: editor/scene_tree_dock.cpp msgid "Move Node In Parent" -msgstr "Mover Nó no parente" +msgstr "Mover Nó no Parente" #: editor/scene_tree_dock.cpp msgid "Move Nodes In Parent" -msgstr "Mover Nós no parente" +msgstr "Mover Nós no Parente" #: editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" @@ -7712,6 +7736,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"Desativar \"editable_instance\" irá reverter todas as propriedades do Nó " +"para os seus valores padrão." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7786,9 +7812,8 @@ msgid "Clear Inheritance" msgstr "Limpar herança" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Abrir documentação online do Godot" +msgstr "Abrir documentação" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7803,9 +7828,8 @@ msgid "Change Type" msgstr "Mudar tipo" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Abrir Script" +msgstr "Estender Script" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -7968,9 +7992,8 @@ msgid "Path is empty" msgstr "Caminho está vazio" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Sprite está vazia!" +msgstr "Nome do ficheiro vazio" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8061,9 +8084,8 @@ msgid "Bytes:" msgstr "Bytes:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "Empilhar Frames" +msgstr "Rastreamento de Pilha" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8290,7 +8312,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "o argumento \"step\" é zero!" #: modules/gdscript/gdscript_functions.cpp @@ -8513,7 +8536,7 @@ msgstr "Fim do stack trace de exceção interna" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "Consolidar NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8621,7 +8644,7 @@ msgstr "Mudar nome do argumento" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "Definir valor padrão da variável" +msgstr "Definir Valor Padrão da Variável" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Type" @@ -8857,7 +8880,7 @@ msgstr "Objeto de base não é um Nó!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Path does not lead Node!" -msgstr "Caminho não aponta para Nó!" +msgstr "Caminho não conduz Nó!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." @@ -8897,12 +8920,11 @@ msgstr "Procurar VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Obter %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Definir " +msgstr "Definir %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -8934,7 +8956,7 @@ msgstr "ImpossÃvel ler Ficheiro de imagem do ecrã de inicialização:" #: platform/javascript/export/export.cpp msgid "Using default boot splash image." -msgstr "A usar imagem de inicialização por defeito." +msgstr "A usar imagem padrão de inicialização." #: scene/2d/animated_sprite.cpp msgid "" @@ -9001,6 +9023,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Animação CPUParticles2D requer o uso de um CanvasItemMaterial com " +"\"Particles Animation\" ativada." #: scene/2d/light_2d.cpp msgid "" @@ -9057,6 +9081,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Animação Particles2D requer o uso de um CanvasItemMaterial com \"Particles " +"Animation\" ativada." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9085,7 +9111,7 @@ msgstr "Esta corrente de Bone2D deve terminar em um nó Skeleton2D." #: scene/2d/skeleton_2d.cpp msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." -msgstr "Um Bone2D só funciona com um nó pai Skeleton2D ou Bone2D." +msgstr "Um Bone2D só funciona com um nó parente Skeleton2D ou Bone2D." #: scene/2d/skeleton_2d.cpp msgid "" @@ -9200,16 +9226,16 @@ msgstr "" "recurso forma!" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "" -"Nada é visÃvel porque não foram atribuÃdas Meshes aos passos de desenho." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Nada é visÃvel porque nenhuma Malha foi atribuÃda." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"Animação CPUParticles requer o uso de um SpatialMaterial com \"Billboard " +"Particles\" ativada." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9240,22 +9266,24 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"Animação Particles requer o uso de um SpatialMaterial com \"Billboard " +"Particles\" ativada." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "" -"PathFollow2D apenas funciona quando definido como filho de um Nó Path2D." +msgstr "PathFollow apenas funciona quando definido como filho de um Nó Path." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" -"PathFollow2D apenas funciona quando definido como filho de um Nó Path2D." +"OrientedPathFollow apenas funciona quando definido como filho de um Nó Path." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." -msgstr "" +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." +msgstr "OrientedPathFollow requer vetores cima ativados no Caminho do parente." #: scene/3d/physics_body.cpp msgid "" @@ -9297,7 +9325,6 @@ msgid "This body will be ignored until you set a mesh" msgstr "Este corpo será ignorado até se definir uma Malha" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" @@ -9305,7 +9332,7 @@ msgid "" msgstr "" "Mudanças no tamanho do SoftBody serão reescritas pelo motor de fÃsica na " "execução.\n" -"Mude antes o tamanho das formas de colisão filhas." +"Em vez disso, mude o tamanho das formas de colisão filhas." #: scene/3d/sprite_3d.cpp msgid "" @@ -9361,6 +9388,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "A raiz de AnimationPlayer não é um nó válido." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Modo Raw" @@ -9377,6 +9408,10 @@ msgstr "Alerta!" msgid "Please Confirm..." msgstr "Confirme por favor..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9389,7 +9424,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Se exp_edit é verdadeiro min_value tem de ser > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9410,7 +9445,7 @@ msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "" -"Ambiente padrão especificado em Configuração do Projeto (Rendering -> " +"Ambiente Padrão especificado em Configuração do Projeto (Rendering -> " "Environment -> Default Environment) não pode ser carregado." #: scene/main/viewport.cpp @@ -9445,10 +9480,6 @@ msgstr "Tamanho de letra inválido." msgid "Input" msgstr "Entrada" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Nenhum" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Fonte inválida para Shader." @@ -9465,6 +9496,59 @@ 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 "Create Poly" +#~ msgstr "Criar PolÃgono" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Criar um novo PolÃgono de raÃz" + +#~ msgid "Zoom out" +#~ msgstr "Diminuir zoom" + +#~ msgid "Zoom in" +#~ msgstr "Aumentar zoom" + +#~ msgid "Create Poly3D" +#~ msgstr "Criar Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Não há recurso OccluderPolygon2D neste Nó.\n" +#~ "Criar um e associar?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Editar PolÃgono existente:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: Mover Ponto." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+LMB: Separar segmento." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Apagar Ponto." + +#~ msgid "New TextFile" +#~ msgstr "Novo TextFile" + +#~ msgid "Save Theme As" +#~ msgstr "Guardar tema como" + +#~ msgid "<None>" +#~ msgstr "<Nenhum>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Selecionar sub-tile para usar como Ãcone, também será usado em ligações " +#~ "autotile inválidas." + +#~ msgid "Zoom:" +#~ msgstr "Zoom:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Está seguro que quer remover todas as conexões de \"" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 9359389f36..12af1a8c2c 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -10,16 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-08-31 18:22+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" "Last-Translator: Nitroretro <nitroretro@protonmail.com>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/" "godot/ro/>\n" "Language: ro\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -264,7 +266,6 @@ msgstr "CreaÈ›i %d piste NOI È™i inseraÈ›i cheie?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -541,15 +542,19 @@ msgstr "ÃŽnlocuiÈ›i Tot" msgid "Selection Only" msgstr "Numai SelecÈ›ia" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zoom-aÈ›i ÃŽn" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zoom-aÈ›i Afară" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "ResetaÈ›i Zoom-area" @@ -559,8 +564,8 @@ msgstr "" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "Zoom-aÈ›i ÃŽn" +msgid "Font Size:" +msgstr "Dimensiunea Conturului:" #: editor/code_editor.cpp msgid "Line:" @@ -726,8 +731,8 @@ msgid "Recent:" msgstr "Recent:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "CautaÈ›i:" @@ -778,8 +783,7 @@ msgid "Resource" msgstr "Resursă" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Cale" @@ -1244,8 +1248,7 @@ msgid "Node Name:" msgstr "Nume Nod:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Nume" @@ -1729,6 +1732,12 @@ msgstr "Aceasta operaÈ›iune nu se poate face fără o rădăcină de copac." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2174,7 +2183,7 @@ msgid "Undo" msgstr "Revenire" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Reîntoarcere" @@ -2198,7 +2207,7 @@ msgstr "Setări ale Proiectului" msgid "Export" msgstr "Exportare" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Unelte" @@ -2635,6 +2644,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2651,8 +2666,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3086,7 +3100,7 @@ msgstr "DuplicaÈ›i..." msgid "Move To..." msgstr "Mută ÃŽn..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Deschide un script rapid..." @@ -3229,7 +3243,7 @@ msgstr "EROARE: Numele animaÈ›iei există deja!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Nume nevalid." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3485,14 +3499,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Crează Poligon" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Editează Poligon" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3500,25 +3514,28 @@ msgid "Insert Point" msgstr "Inserează Punct" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Editează Poligon (Elimină Punct)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Elimină Poligon Și Punct" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Crează un nou poligon de la zero" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Șterge puncte" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Editează poligon existent:\n" "LMB: Mută Punct.\n" @@ -3526,8 +3543,10 @@ msgstr "" "RMB: Șterge Punct." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Șterge puncte" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "RMB: Șterge Punctul." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3573,17 +3592,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Șterge puncte" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "RMB: Șterge Punctul." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Deplasare punct" @@ -3661,7 +3669,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4212,7 +4219,7 @@ msgstr "Toate" msgid "Plugins" msgstr "Plugin-uri" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sorare:" @@ -4373,21 +4380,19 @@ msgid "Paste Pose" msgstr "LipeÈ™te Postura" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Zoom-aÈ›i Afară" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Zoom-aÈ›i Afară" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Zoom-aÈ›i ÃŽn" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Mod Selectare" @@ -4653,8 +4658,17 @@ msgstr "" "Trage & lasă + Shift: Schimbă tipul nodului" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Creează Poligon3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Crează Poligon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Editează Poligon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Editează Poligon (Elimină Punct)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4756,37 +4770,9 @@ msgid "Item List Editor" msgstr "Editor Lista de Obiect" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Nicio resursă OccluderPolygon2D în acest nod.\n" -"Vrei să creezi È™i să atribui una?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Creează Poligon de Ocluziune" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Creează un nou poligon de la zero." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Editează poligonul existent:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: MiÈ™că Punctul." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+LMB: Despică Segmentul." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Șterge Punctul." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh-ul este gol!" @@ -5157,6 +5143,11 @@ msgid "Add Point to Curve" msgstr "Adăugare punct pe curbă" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "ÃŽnchidere curbă" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Deplasare punct pe curbă" @@ -5184,6 +5175,11 @@ msgid "Click: Add Point" msgstr "Click: Adăugare punct" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Divizare segment (pe curbă)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Click Drept: Ștergere punct" @@ -5199,11 +5195,6 @@ msgstr "Adăugare punct (într-un spaÈ›iu gol)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Divizare segment (pe curbă)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Stergere punct" @@ -5260,6 +5251,10 @@ msgstr "Ștergere punct de Control-IeÈ™ire" msgid "Remove In-Control Point" msgstr "Ștergere punct de Control-Intrare" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Divizare segment (pe curbă)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5272,10 +5267,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Arată Oasele" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Creare hartă UV" @@ -5317,10 +5318,20 @@ msgid "Transform UV Map" msgstr "Transformare hartă UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Crează Poligon" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Editor UV de poligoane 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Editor UV de poligoane 2D" @@ -5345,11 +5356,7 @@ msgstr "Creează Oase" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Crează Poligon" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Deplasare punct" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5377,19 +5384,19 @@ msgid "Scale Polygon" msgstr "Redimensionează Poligon" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5539,20 +5546,24 @@ msgid "Error saving file!" msgstr "Eroare la salvarea TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Eroare la salvare." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Eroare mutând:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Eroare mutând:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Eroare mutând:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5574,6 +5585,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5615,8 +5634,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Vizualizează FiÈ™ierele" +msgid "Open..." +msgstr "Deschide" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5645,15 +5664,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "Se Importa Scena..." #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5764,6 +5784,10 @@ msgstr "" msgid "Go to Function" msgstr "FaceÈ›i FuncÈ›ia" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5796,10 +5820,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6504,11 +6524,17 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Setează Mâner" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Mod Snap:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6751,12 +6777,13 @@ msgid "Clear transform" msgstr "Anim Schimbare transformare" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "Elimină Obiectul Selectat" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6767,13 +6794,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "LipeÈ™te AnimaÈ›ie" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "RMB: Șterge Punctul." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Creează un nou poligon de la zero." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6803,15 +6851,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "ÅžtergeÈ›i fiÅŸierele selectate?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Șterge puncte" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6829,13 +6887,20 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "This property can't be changed." msgstr "Această operaÈ›ie nu se poate face fără o scenă." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" -msgstr "" +#, fuzzy +msgid "TileSet" +msgstr "Set_de_Plăci..." #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" @@ -6850,6 +6915,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6888,7 +6957,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Exportă Proiectul" #: editor/project_export.cpp @@ -8367,7 +8436,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9215,7 +9284,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9258,7 +9327,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9351,6 +9422,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Arborele AnimaÈ›iei este nevalid." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9367,6 +9442,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9424,10 +9503,6 @@ msgstr "" msgid "Input" msgstr "Adaugă Intrare(Input)" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" @@ -9444,6 +9519,50 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Crează Poligon" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Crează un nou poligon de la zero" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Zoom-aÈ›i Afară" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Zoom-aÈ›i ÃŽn" + +#~ msgid "Create Poly3D" +#~ msgstr "Creează Poligon3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Nicio resursă OccluderPolygon2D în acest nod.\n" +#~ "Vrei să creezi È™i să atribui una?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Editează poligonul existent:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: MiÈ™că Punctul." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+LMB: Despică Segmentul." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Șterge Punctul." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Vizualizează FiÈ™ierele" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Zoom-aÈ›i ÃŽn" + #~ msgid "Class List:" #~ msgstr "Listă de Clase:" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index 957af1f5e7..1fe2a21656 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -28,11 +28,13 @@ # V. <Unit68189@gmail.com>, 2018. # Victor Butorin <mrwebsterchannel@gmail.com>, 2018. # ÐлекÑандр <ol-vin@mail.ru>, 2018. +# Ðнатолий Горбунов <afgorbunov@gmail.com>, 2018. +# Vadim Vergasov <vadim.vergasov2003@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-11-26 16:10+0000\n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" "Last-Translator: ÐлекÑандр <ol-vin@mail.ru>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" @@ -42,7 +44,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -91,11 +93,12 @@ msgstr "ОÑвободить" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "СбаланÑированно" +msgstr "СбаланÑированный" #: editor/animation_bezier_editor.cpp +#, fuzzy msgid "Mirror" -msgstr "Отобразить зеркально" +msgstr "Зеркало" #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" @@ -277,7 +280,6 @@ msgstr "Создать %d новые дорожки и вÑтавить ключ #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -424,12 +426,10 @@ msgid "Delete Selection" msgstr "Удалить выделенное" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "Перейти к Ñледующему шагу" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" msgstr "Перейти к предыдущему шагу" @@ -553,15 +553,19 @@ msgstr "Заменить вÑÑ‘" msgid "Selection Only" msgstr "Только выделÑÑ‚ÑŒ" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Приблизить" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Отдалить" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "СброÑить приближение" @@ -570,8 +574,8 @@ msgid "Warnings:" msgstr "ПредупреждениÑ:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "Приближение:" +msgid "Font Size:" +msgstr "Размер шрифта:" #: editor/code_editor.cpp msgid "Line:" @@ -684,9 +688,8 @@ msgid "Edit Connection: " msgstr "Редактировать Подключение: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Ð’Ñ‹ уверены, что хотите удалить вÑе Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñигнала?" +msgstr "Ð’Ñ‹ уверены, что хотите удалить вÑе Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð· Ñигнала \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -731,8 +734,8 @@ msgid "Recent:" msgstr "Ðедавнее:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "ПоиÑк:" @@ -783,8 +786,7 @@ msgid "Resource" msgstr "РеÑурÑ" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Путь" @@ -840,7 +842,6 @@ msgid "Error loading:" msgstr "Ошибка при загрузке:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" msgstr "Ðе удалоÑÑŒ загрузить Ñцену из-за отÑутÑÑ‚Ð²Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑтей:" @@ -1249,8 +1250,7 @@ msgid "Node Name:" msgstr "Ð˜Ð¼Ñ Ð£Ð·Ð»Ð°:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "ИмÑ" @@ -1328,7 +1328,6 @@ msgid "File Exists, Overwrite?" msgstr "Файл ÑущеÑтвует, перезапиÑать?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Выбрать Ñту папку" @@ -1337,13 +1336,11 @@ msgid "Copy Path" msgstr "Копировать путь" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "ПроÑмотреть в проводнике" +msgstr "Открыть в проводнике" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" msgstr "ПроÑмотреть в проводнике" @@ -1488,19 +1485,16 @@ msgid "Methods" msgstr "Методы" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Методы" +msgstr "Методы:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "СвойÑтва" +msgstr "СвойÑтва темы" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "СвойÑтва:" +msgstr "СвойÑтва темы:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1527,14 +1521,12 @@ msgid "Constants:" msgstr "КонÑтанты:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "ОпиÑание" +msgstr "ОпиÑание клаÑÑа" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "ОпиÑание:" +msgstr "ОпиÑание клаÑÑа:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1551,12 +1543,10 @@ msgstr "" "$url2]запроÑить[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "ОпиÑание ÑвойÑтв:" +msgstr "ОпиÑание ÑвойÑтв" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" msgstr "ОпиÑание ÑвойÑтв:" @@ -1569,12 +1559,10 @@ msgstr "" "$color][url=$url]помогите нам[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "ОпиÑание методов:" +msgstr "ОпиÑание методов" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" msgstr "ОпиÑание методов:" @@ -1592,49 +1580,40 @@ msgid "Search Help" msgstr "Помощь" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Режим нормалей" +msgstr "Отображать вÑÑ‘" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "КлаÑÑÑ‹" +msgstr "Только клаÑÑÑ‹" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Методы" +msgstr "Только методы" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Сигналы" +msgstr "Только Ñигналы" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "КонÑтанты" +msgstr "Только конÑтанты" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "СвойÑтва" +msgstr "Только ÑвойÑтва" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "СвойÑтва" +msgstr "Только ÑвойÑтва темы" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "СвойÑтва" +msgstr "Тип члена" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "КлаÑÑ:" +msgstr "КлаÑÑ" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1733,6 +1712,15 @@ msgstr "Ðта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ может быть выполнена бе #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"Ðта Ñцена не может быть Ñохранена, потому что еÑÑ‚ÑŒ цикличеÑкое Ñоздание " +"ÑÑылок.\n" +"ПожалуйÑта, решите проблему, а затем повторите попытку ÑохранениÑ." + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1741,7 +1729,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Ðевозможно перезапиÑать Ñцену, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñе еще открыта!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1996,13 +1984,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Ðе удалоÑÑŒ загрузить Ñкрипт из иÑточника: '%s'." #: editor/editor_node.cpp -#, fuzzy 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 "" @@ -2057,7 +2044,6 @@ 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 "Показать в файловой ÑиÑтеме" @@ -2142,7 +2128,6 @@ msgid "Save Scene" msgstr "Сохранить Ñцену" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Сохранить вÑе Ñцены" @@ -2172,7 +2157,7 @@ msgid "Undo" msgstr "Отменить" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Повторить" @@ -2196,7 +2181,7 @@ msgstr "Параметры проекта" msgid "Export" msgstr "ÐкÑпорт" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ИнÑтрументы" @@ -2318,11 +2303,11 @@ msgstr "Переключить полноÑкранный режим" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" -msgstr "Открыть папку Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ Редактора" +msgstr "Открыть папку данных/наÑтроек редактора" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "Открыть директорию Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ редактора" +msgstr "Открыть папку данных редактора" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" @@ -2626,9 +2611,17 @@ msgstr "Ðазначить.." #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Ðевозможно Ñоздать ViewportTexture Ð´Ð»Ñ Ñ€ÐµÑурÑов, Ñохраненных в виде файла.\n" +"РеÑÑƒÑ€Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ принадлежать Ñцене." #: editor/editor_properties.cpp msgid "" @@ -2637,13 +2630,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Ðевозможно Ñоздать ViewportTexture Ð´Ð»Ñ Ñтого реÑурÑа, потому что он не " +"уÑтановлен как локальный Ð´Ð»Ñ Ñцены.\n" +"Включите ÑвойÑтво «Локально Ð´Ð»Ñ Ñцены» (и вÑе реÑурÑÑ‹, Ñодержащие его вверх " +"от узла)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Выберите Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Ðовый Ñкрипт" @@ -2796,7 +2792,7 @@ msgstr "Ðе удаётÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ архив шаблонов ÑкÑпР#: editor/export_template_manager.cpp msgid "Invalid version.txt format inside templates: %s." -msgstr "Ðеверный формат version.txt у шаблона. %s." +msgstr "ÐедейÑтвительный формат version.txt внутри шаблонов: %s." #: editor/export_template_manager.cpp msgid "No version.txt found inside templates." @@ -2943,7 +2939,7 @@ msgstr "Загрузить Шаблоны" #: editor/export_template_manager.cpp msgid "Select mirror from list: (Shift+Click: Open in Browser)" -msgstr "Выберите зеркало из ÑпиÑка: (Shift+Click: Открыть в Браузере)" +msgstr "Выберите зеркало из ÑпиÑка: (Shift+Click: Открыть в браузере)" #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" @@ -2952,9 +2948,8 @@ msgstr "" "типов файлов!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Избранное:" +msgstr "Избранное" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3040,14 +3035,12 @@ msgid "Instance" msgstr "Добавить ÑкземплÑÑ€" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Избранное:" +msgstr "Добавить в избранное" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Удалить из группы" +msgstr "Удалить из избранного" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3069,7 +3062,7 @@ msgstr "Дублировать..." msgid "Move To..." msgstr "ПеремеÑтить в..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Ðовый Ñкрипт." @@ -3078,12 +3071,10 @@ msgid "New Resource..." msgstr "Ðовый реÑурÑ..." #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" msgstr "Развернуть вÑе" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" msgstr "Свернуть вÑе" @@ -3107,9 +3098,8 @@ msgid "Re-Scan Filesystem" msgstr "ПереÑканировать файловую ÑиÑтему" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "Переключить режим отображениÑ" +msgstr "Переключить режим разделениÑ" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3144,24 +3134,20 @@ msgid "Create Script" msgstr "Создать Ñкрипт" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "Ðайти в файлах" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Ðайти: " +msgstr "Ðайти:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Папка: " +msgstr "Папка:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Фильтры" +msgstr "Фильтры:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3201,7 +3187,8 @@ msgid "Group name already exists." msgstr "Ð˜Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ уже ÑущеÑтвует." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "недопуÑтимое Ð¸Ð¼Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3338,12 +3325,10 @@ msgid "Failed to load resource." msgstr "Ðе удалоÑÑŒ загрузить реÑурÑ." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "Развернуть вÑе ÑвойÑтва" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "Свернуть вÑе ÑвойÑтва" @@ -3449,14 +3434,13 @@ msgid "Activate now?" msgstr "Ðктивировать ÑейчаÑ?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "Создан полигон" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" +msgstr "Создать Полигон" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Редактировать полигон" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3464,25 +3448,27 @@ msgid "Insert Point" msgstr "Ð’Ñтавить точку" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Редактировать полигон (удалить точку)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Удалить полигон и точку" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Создать новый полигон Ñ Ð½ÑƒÐ»Ñ" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Создать точки." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Редактирование полигона:\n" "ЛКМ: перемеÑтить точку.\n" @@ -3490,8 +3476,9 @@ msgstr "" "ПКМ: удалить точку." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Удалить точку" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Удалить точки." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3539,15 +3526,6 @@ msgstr "Выбирайте, перемещайте и Ñоздавайте Ñ‚Ð¾Ñ #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Создать точки." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Удалить точки." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Точка" @@ -3626,7 +3604,6 @@ msgstr "" "удаетÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ отÑлеживаемые имена." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Добавить Узел.." @@ -4166,7 +4143,7 @@ msgstr "Ð’Ñе" msgid "Plugins" msgstr "Плагины" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Сортировать:" @@ -4296,7 +4273,6 @@ msgid "Resize CanvasItem" msgstr "Изменить размер CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" msgstr "Вращать CanvasItem" @@ -4321,18 +4297,19 @@ msgid "Paste Pose" msgstr "Ð’Ñтавить позу" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Уменьшить" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "СброÑить маÑштаб" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Увеличить" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Режим выделениÑ" @@ -4363,9 +4340,8 @@ msgid "Rotate Mode" msgstr "Режим поворота" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Режим маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (R)" +msgstr "Режим маÑштабированиÑ" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4464,9 +4440,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "ВоÑÑтанавливает возможноÑÑ‚ÑŒ выбора потомков объекта." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Скелет" +msgstr "Опции Ñкелета" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4520,7 +4495,7 @@ msgstr "Показать окно проÑмотра" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Показать группу и заблокировать иконки" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4593,8 +4568,17 @@ msgstr "" "Drag & drop + Alt : Изменить тип узла" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Создан Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Создать Полигон" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Редактировать полигон" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Редактировать полигон (удалить точку)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4695,37 +4679,9 @@ msgid "Item List Editor" msgstr "Редактор ÑпиÑка Ñлементов" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Ðет OccluderPolygon2D реÑурÑа у Ñтого узла.\n" -"Создать и назначить?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Создан затенÑющий полигон" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Создать новый полигон Ñ Ð½ÑƒÐ»Ñ." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Редактировать ÑущеÑтвующий полигон:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "ЛКМ: Передвинуть точку." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+ЛКМ: Разделить Ñегмент." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "ПКМ: Удалить точку." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "ПолиÑетка пуÑта!" @@ -4961,7 +4917,6 @@ msgid "Create Navigation Polygon" msgstr "Создать Navigation Polygon" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" msgstr "Создать облаÑÑ‚ÑŒ видимоÑти" @@ -5094,6 +5049,11 @@ msgid "Add Point to Curve" msgstr "Добавить точку к кривой" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Сомкнуть кривую" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Точка кривой передвинута" @@ -5121,6 +5081,11 @@ msgid "Click: Add Point" msgstr "ЛКМ: Добавить точку" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Разделить Ñегмент (в кривой)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "ПКМ: Удалить точку" @@ -5136,11 +5101,6 @@ msgstr "Добавить точку (в пуÑтом проÑтранÑтрве) #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Разделить Ñегмент (в кривой)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Удалить точку" @@ -5197,6 +5157,10 @@ msgstr "Удалить выходную контрольную точку" msgid "Remove In-Control Point" msgstr "Удалить входную контрольную точку" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Разделить Ñегмент (в кривой)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "Передвинуть ÑуÑтав" @@ -5207,10 +5171,20 @@ msgid "" msgstr "СвойÑтво Ñкелета Polygon2D не указывает на узел Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "Синхронизировать коÑти" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" +"Ð’ Ñтом узле нет текÑтуры.\n" +"Выберите текÑтуру, чтобы редактировать облаÑÑ‚ÑŒ." + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Создать UV карту" @@ -5223,7 +5197,6 @@ msgid "Split point with itself." msgstr "Точка разделениÑ." #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Split can't form an existing edge." msgstr "ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð´ÐµÐ»Ð¸Ñ‚ÑŒ от ÑущеÑтвующего краÑ." @@ -5248,10 +5221,21 @@ msgid "Transform UV Map" msgstr "Преобразовать UV карту" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Тип преобразованиÑ" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "РиÑовать веÑа коÑтей" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Polygon 2D UV редактор" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Polygon 2D UV редактор" @@ -5272,11 +5256,8 @@ msgid "Bones" msgstr "КоÑти" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Создать Полигон" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "Передвинуть точку" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5304,19 +5285,23 @@ msgid "Scale Polygon" msgstr "МаÑштабировать полигон" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "Соединить две точки, чтобы Ñоздать разделение" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Выберите разделение, чтобы Ñтереть его" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "КраÑить веÑа Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ интенÑивноÑтью" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "СнÑÑ‚ÑŒ краÑку веÑа Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ интенÑивноÑтью" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5442,9 +5427,8 @@ msgid "Error writing TextFile:" msgstr "Ошибка при запиÑи:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." -msgstr "Ðе удалоÑÑŒ загрузить файл." +msgstr "Ошибка: Ðе удалоÑÑŒ загрузить файл." #: editor/plugins/script_editor_plugin.cpp msgid "Error could not load file." @@ -5455,19 +5439,23 @@ msgid "Error saving file!" msgstr "Ошибка при Ñохранении файла!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Ошибка во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ‚ÐµÐ¼Ñ‹" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Ошибка ÑохранениÑ" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Ошибка Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐ¼Ñ‹" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Ошибка импортированиÑ" #: editor/plugins/script_editor_plugin.cpp @@ -5487,6 +5475,14 @@ msgid "Import Theme" msgstr "Импортировать тему" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Ошибка во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ‚ÐµÐ¼Ñ‹" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Ошибка ÑохранениÑ" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Сохранить тему как..." @@ -5527,8 +5523,9 @@ msgid "File" msgstr "Файл" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Ðовый текÑтовый файл" +#, fuzzy +msgid "Open..." +msgstr "Открыть" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5543,7 +5540,6 @@ msgid "Copy Script Path" msgstr "Копировать путь к Ñкрипту" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Предыдущий файл" @@ -5557,6 +5553,11 @@ msgid "Theme" msgstr "Тема" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Импортировать тему" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Перезагрузить тему" @@ -5565,10 +5566,6 @@ msgid "Save Theme" msgstr "Сохранить тему" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Сохранить тему как" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Закрыть документацию" @@ -5615,7 +5612,6 @@ msgid "Keep Debugger Open" msgstr "ОÑтавить отладчик открытым" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" msgstr "Отладка Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ внешнего редактора" @@ -5660,7 +5656,6 @@ msgid "Debugger" msgstr "Отладчик" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" msgstr "Результаты поиÑка" @@ -5673,9 +5668,12 @@ msgid "(ignore)" msgstr "(игнорировать)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Перейти к функции..." +msgstr "Перейти к функции" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Стандартный" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5709,10 +5707,6 @@ msgstr "ПропиÑные" msgid "Syntax Highlighter" msgstr "ПодÑветка СинтакÑиÑа" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Стандартный" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5764,12 +5758,10 @@ msgid "Trim Trailing Whitespace" msgstr "Удаление пробелов в конце Ñтрок" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "Преобразовать отÑтуп в пробелы" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "Преобразовать отÑтуп в табулÑцию" @@ -5787,12 +5779,10 @@ msgid "Remove All Breakpoints" msgstr "Удалить вÑе точки оÑтановок" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "Перейти к Ñледующей точке оÑтановки" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" msgstr "Перейти к предыдущей точке оÑтановки" @@ -5801,17 +5791,14 @@ msgid "Find Previous" msgstr "Ðайти предыдущее" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "Ðайти в файлах..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Перейти к функции..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Перейти к Ñтроке..." @@ -5909,7 +5896,7 @@ msgstr "Ð’Ñ‹Ñота" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "Отклонение" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6076,7 +6063,6 @@ msgid "Freelook Speed Modifier" msgstr "Обзор модификатор ÑкороÑти" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" msgstr "Блокировать вращение камеры" @@ -6309,9 +6295,8 @@ msgstr "" "Ðе удаетÑÑ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ñ‚ÑŒ Ñпрайт иÑпользующий анимационные кадры в Ñетку." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Invalid geometry, can't replace by mesh." -msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не удаетÑÑ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ñетки." +msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть заменена Ñеткой." #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite" @@ -6414,12 +6399,19 @@ msgid "Set Region Rect" msgstr "Задать регион" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Задать обработчик" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Режим привÑзки:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Ðет>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" +msgstr "None" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6582,9 +6574,8 @@ msgid "Fix Invalid Tiles" msgstr "ИÑправить недопуÑтимые плитки" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Центрировать выбранное" +msgstr "Вырезать выделенное" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6631,39 +6622,37 @@ msgid "Pick Tile" msgstr "Выбрать тайл" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "Передвинуть выделенное" +msgstr "Копировать выделенное" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Режим поворота" +msgstr "Повернуть влево" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "Двигать вправо" +msgstr "Повернуть вправо" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Отразить по горизонтали" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Отразить по вертикали" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "Преобразование" +msgstr "ОчиÑтить преобразование" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Добавить текÑтуры в набор тайлов" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Удалить текущую текÑтуру из набора тайлов" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6675,22 +6664,40 @@ msgid "Merge from Scene" msgstr "СлиÑние из Ñцены" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Выберите плитку Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² качеÑтве значка, она также будет " -"иÑпользоватьÑÑ Ð¿Ñ€Ð¸ неверных привÑзках автотайлов." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Display tile's names (hold Alt Key)" -msgstr "Отобразить имена плиток (удерживайте клавишу Alt)" +msgid "Paste bitmask." +msgstr "Ð’Ñтавить анимацию" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Удалить точки." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Создать новый полигон Ñ Ð½ÑƒÐ»Ñ." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Отображение имен плитки (удерживайте нажатой клавишу Alt)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" -msgstr "Удалить выбранную текÑтуру и вÑе плитки, которые иÑпользуют её?" +msgstr "Удалить выделенную текÑтуру и ВСЕ ПЛИТКИ, которые ее иÑпользуют?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." @@ -6705,9 +6712,8 @@ msgid "Merge from scene?" msgstr "СлиÑние из Ñцены?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " файл(Ñ‹) не был(и) добавлен(Ñ‹), поÑкольку уже в ÑпиÑке." +msgstr "%s файл(Ñ‹) не были добавлены, потому что уже были в ÑпиÑке." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6718,51 +6724,71 @@ msgstr "" "Ðажмите на другую плитку, чтобы отредактировать ее." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Удалить выбранные файлы?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"ЛКМ: уÑтановить бит.\n" -"ПКМ: ÑнÑÑ‚ÑŒ бит.\n" +"Выбрать текущий редактированный вложенный тайл.\n" "Ðажмите на другой тайл чтобы его отредактировать." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Удалить точку" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"Выбрать текущий редактированный вложенный тайл.\n" +"ЛКМ: уÑтановить бит.\n" +"ПКМ: ÑнÑÑ‚ÑŒ бит.\n" "Ðажмите на другой тайл чтобы его отредактировать." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" "Click on another Tile to edit it." msgstr "" -"Выберите плитку Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² качеÑтве значка, она также будет " -"иÑпользоватьÑÑ Ð¿Ñ€Ð¸ неверных привÑзках автотайлов." +"Выберите вложенную плитку Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² качеÑтве иконки, она также " +"будет иÑпользоватьÑÑ Ð´Ð»Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвительных автопривÑзок.\n" +"Ðажмите на другую плитку, чтобы отредактировать ее." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "" "Select sub-tile to change its priority.\n" "Click on another Tile to edit it." -msgstr "Выберите вложенный тайл, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ приоритета." +msgstr "" +"Выберите Ñуб-плитку, чтобы изменить его приоритет.\n" +"Ðажмите на другую плитку, чтобы отредактировать ее." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Выберите Ñуб-плитку, чтобы изменить его приоритет.\n" +"Ðажмите на другую плитку, чтобы отредактировать ее." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." -msgstr "Ðта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ может быть выполнена без Ñцены." +msgstr "Ðто ÑвойÑтво не может быть изменено." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Ðабор тайлов" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vertex" msgstr "Вершины" @@ -6771,14 +6797,17 @@ msgid "Fragment" msgstr "Фрагмент" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Light" -msgstr "Право" +msgstr "Свет" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Добавить Узел.." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" -msgstr "Шейдер" +msgstr "VisualShader" #: editor/project_export.cpp msgid "Runnable" @@ -6797,14 +6826,12 @@ msgid "Export templates for this platform are missing/corrupted:" msgstr "Шаблоны ÑкÑпорта Ð´Ð»Ñ Ñтой платформы отÑутÑтвуют/повреждены:" #: editor/project_export.cpp -#, fuzzy msgid "Release" -msgstr "проÑто отпущена" +msgstr "Релиз" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "ÐкÑпортирование Ð´Ð»Ñ %s" +msgstr "ÐкÑпорт вÑех" #: editor/project_export.cpp msgid "Presets" @@ -6816,8 +6843,8 @@ msgstr "Добавить..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "ÐкÑпортировать наÑтройки:" +msgid "Export Path" +msgstr "Путь ÑкÑпорта:" #: editor/project_export.cpp msgid "Resources" @@ -6880,14 +6907,12 @@ msgid "Export PCK/Zip" msgstr "ÐкÑпортировать PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Режим ÑкÑпортированиÑ:" +msgstr "Режим ÑкÑпорта?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "ÐкÑпорт" +msgstr "ÐкÑпортировать вÑÑ‘" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -6902,23 +6927,21 @@ msgid "The path does not exist." msgstr "Путь не ÑущеÑтвует." #: editor/project_manager.cpp -#, fuzzy msgid "Invalid '.zip' project file, does not contain a 'project.godot' file." -msgstr "ПожалуйÑта, выберите папку, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ðµ Ñодержит файл 'project.godot'." +msgstr "" +"ÐедейÑтвительный '.zip' файл проекта, не Ñодержит файл 'project.godot'." #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "ПожалуйÑта, выберите пуÑтую папку." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a 'project.godot' or '.zip' file." -msgstr "ПожалуйÑта, выберите 'project.godot' файл." +msgstr "ПожалуйÑта, выберите файл 'project.godot' или '.zip'." #: editor/project_manager.cpp -#, fuzzy msgid "Directory already contains a Godot project." -msgstr "Каталог уже Ñодержит Godot проект." +msgstr "Каталог уже Ñодержит проект Godot." #: editor/project_manager.cpp msgid "Imported Project" @@ -7009,9 +7032,8 @@ msgid "Project Path:" msgstr "Путь к проекту:" #: editor/project_manager.cpp -#, fuzzy msgid "Project Installation Path:" -msgstr "Путь к проекту:" +msgstr "Путь уÑтановки проекта:" #: editor/project_manager.cpp msgid "Browse" @@ -7132,13 +7154,12 @@ msgid "Mouse Button" msgstr "Кнопка мыши" #: editor/project_settings_editor.cpp -#, fuzzy msgid "" "Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or " "'\"'" msgstr "" -"ÐедопуÑтимое Ð¸Ð¼Ñ Ð´ÐµÐ¹ÑтвиÑ. Оно не может быть пуÑтым или Ñодержать '/', ':', " -"'=', '\\' или '\"'." +"Ðеверное Ð¸Ð¼Ñ Ð´ÐµÐ¹ÑтвиÑ. Оно не может быть пуÑтым и не может Ñодержать Ñимволы " +"\"/\", \":\", \"=\", \"\\\" или \"''\"" #: editor/project_settings_editor.cpp msgid "Action '%s' already exists!" @@ -7149,18 +7170,16 @@ msgid "Rename Input Action Event" msgstr "Переименовать дейÑтвие" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Change Action deadzone" -msgstr "Изменить Ð¸Ð¼Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸:" +msgstr "Изменить ДейÑтвие мертвой зоны" #: editor/project_settings_editor.cpp msgid "Add Input Action Event" msgstr "Добавить дейÑтвие" #: editor/project_settings_editor.cpp -#, fuzzy msgid "All Devices" -msgstr "УÑтройÑтво" +msgstr "Ð’Ñе уÑтройÑтва" #: editor/project_settings_editor.cpp msgid "Device" @@ -7207,24 +7226,20 @@ msgid "Wheel Down Button" msgstr "КолёÑико вниз" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Wheel Left Button" -msgstr "КолёÑико вверх" +msgstr "Кнопка на колеÑике Ñлева" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Wheel Right Button" -msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ° мыши" +msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ° колеÑа" #: editor/project_settings_editor.cpp -#, fuzzy msgid "X Button 1" -msgstr "Кнопка 6" +msgstr "Кнопка X 1" #: editor/project_settings_editor.cpp -#, fuzzy msgid "X Button 2" -msgstr "Кнопка 6" +msgstr "Кнопка X 2" #: editor/project_settings_editor.cpp msgid "Joypad Axis Index:" @@ -7387,9 +7402,8 @@ msgid "Action" msgstr "ДейÑтвие" #: editor/project_settings_editor.cpp -#, fuzzy msgid "Deadzone" -msgstr "\"МертваÑ\" зона" +msgstr "ÐœÐµÑ€Ñ‚Ð²Ð°Ñ Ð·Ð¾Ð½Ð°" #: editor/project_settings_editor.cpp msgid "Device:" @@ -7522,9 +7536,8 @@ msgstr "" "инÑтрумент:" #: editor/rename_dialog.cpp editor/scene_tree_dock.cpp -#, fuzzy msgid "Batch Rename" -msgstr "Переименовать" +msgstr "Пакетное переименование" #: editor/rename_dialog.cpp msgid "Prefix" @@ -7535,52 +7548,45 @@ msgid "Suffix" msgstr "СуффикÑ" #: editor/rename_dialog.cpp -#, fuzzy msgid "Advanced options" -msgstr "Параметры прилипаниÑ" +msgstr "Дополнительные параметры" #: editor/rename_dialog.cpp msgid "Substitute" msgstr "Заменить" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node name" -msgstr "Ð˜Ð¼Ñ Ð£Ð·Ð»Ð°:" +msgstr "Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð°" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node's parent name, if available" -msgstr "РодительÑкое Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð°, еÑли оно доÑтупно" +msgstr "Ð˜Ð¼Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого узла, еÑли оно доÑтупно" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node type" -msgstr "Ðайти тип узла" +msgstr "Тип узла" #: editor/rename_dialog.cpp -#, fuzzy msgid "Current scene name" -msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñцена" +msgstr "Ðазвание текущей Ñцены" #: editor/rename_dialog.cpp -#, fuzzy msgid "Root node name" -msgstr "Ð˜Ð¼Ñ ÐºÐ¾Ñ€Ð½ÐµÐ²Ð¾Ð³Ð¾ узла:" +msgstr "Ð˜Ð¼Ñ ÐºÐ¾Ñ€Ð½ÐµÐ²Ð¾Ð³Ð¾ узла" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Sequential integer counter.\n" "Compare counter options." msgstr "" "ПоÑледовательный целочиÑленный Ñчетчик.\n" -"Сравните параметры Ñчетчика." +"Сравните параметров Ñчетчика." #: editor/rename_dialog.cpp #, fuzzy msgid "Per Level counter" -msgstr "Счетчик на уровень" +msgstr "Счетчик уровенÑ" #: editor/rename_dialog.cpp #, fuzzy @@ -7593,14 +7599,13 @@ msgid "Initial value for the counter" msgstr "Ðачальное значение Ð´Ð»Ñ Ñчетчика" #: editor/rename_dialog.cpp -#, fuzzy msgid "Step" -msgstr "Шаг:" +msgstr "Шаг" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" -msgstr "КоличеÑтво, на которое увеличиваетÑÑ Ñчетчик Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ узла" +msgstr "" +"КоличеÑтво, на которое увеличиваетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ Ñчетчика Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ узла" #: editor/rename_dialog.cpp msgid "Padding" @@ -7613,17 +7618,16 @@ msgid "" "Missing digits are padded with leading zeros." msgstr "" "Минимальное количеÑтво цифр Ð´Ð»Ñ Ñчетчика.\n" -"ÐедоÑтающие цифры дополнÑÑŽÑ‚ÑÑ Ð²ÐµÐ´ÑƒÑ‰Ð¸Ð¼Ð¸ нулÑми." +"ÐедоÑтающие цифры заполнÑÑŽÑ‚ÑÑ Ð½ÑƒÐ»Ñми." #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expressions" -msgstr "Изменить выражение" +msgstr "РегулÑрные ВыражениÑ" #: editor/rename_dialog.cpp #, fuzzy msgid "Post-Process" -msgstr "Скрипт поÑÑ‚-процеÑÑа:" +msgstr "ПоÑÑ‚-обработка" #: editor/rename_dialog.cpp msgid "Keep" @@ -7655,9 +7659,8 @@ msgid "To Uppercase" msgstr "ВЕРХÐИЙ РЕГИСТР" #: editor/rename_dialog.cpp -#, fuzzy msgid "Reset" -msgstr "СброÑить приближение" +msgstr "СброÑ" #: editor/rename_dialog.cpp msgid "Error" @@ -7764,6 +7767,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"Отключение параметра \"editable_instance\" приведет к тому, что вÑе ÑвойÑтва " +"узла будут возвращены к значениÑм по умолчанию." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7778,29 +7783,24 @@ msgid "Make Local" msgstr "Сделать локальным" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Create Root Node:" -msgstr "Создать узел" +msgstr "Создать корневой узел:" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "2D Scene" -msgstr "Сцена" +msgstr "2D-Ñцена" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "3D Scene" -msgstr "Сцена" +msgstr "3D-Ñцена" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "User Interface" -msgstr "ОчиÑтить наÑледование" +msgstr "ПользовательÑкий интерфейÑ" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Custom Node" -msgstr "Вырезать узлы" +msgstr "ПользовательÑкий узел" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -7843,9 +7843,8 @@ msgid "Clear Inheritance" msgstr "ОчиÑтить наÑледование" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Открыть онлайн документацию Godot" +msgstr "Открыть документацию" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7862,7 +7861,7 @@ msgstr "Изменить тип" #: editor/scene_tree_dock.cpp #, fuzzy msgid "Extend Script" -msgstr "Открыть Ñкрипт" +msgstr "ÐаÑледовать Ñкрипт" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -8019,16 +8018,15 @@ msgstr "Ð/Д" #: editor/script_create_dialog.cpp #, fuzzy msgid "Open Script/Choose Location" -msgstr "Открыть редактор Ñкриптов" +msgstr "Открыть Скрипт/Выбрать МеÑто" #: editor/script_create_dialog.cpp msgid "Path is empty" msgstr "Ðе указан путь" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Спрайт пуÑÑ‚!" +msgstr "ПуÑтое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8121,7 +8119,7 @@ msgstr "Байты:" #: editor/script_editor_debugger.cpp #, fuzzy msgid "Stack Trace" -msgstr "Стек" +msgstr "ТраÑÑировка Стека" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8350,7 +8348,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "Ðргумент шага равен нулю!" #: modules/gdscript/gdscript_functions.cpp @@ -8572,8 +8571,9 @@ msgid "End of inner exception stack trace" msgstr "Конец траÑÑировки внутреннего Ñтека иÑключений" #: modules/recast/navigation_mesh_editor_plugin.cpp +#, fuzzy msgid "Bake NavMesh" -msgstr "" +msgstr "ИÑпечь NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8959,12 +8959,11 @@ msgstr "ИÑкать VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Получить %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Задать " +msgstr "Задать %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9015,16 +9014,15 @@ msgstr "" "Ñцен). Будет работать первый Ñозданный, оÑтальные будут проигнорированы." #: scene/2d/collision_object_2d.cpp -#, fuzzy msgid "" "This node has no shape, so it can't collide or interact with other objects.\n" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " "define its shape." msgstr "" -"Ðтот узел не имеет дочерних форм, поÑтому он не может взаимодейÑтвовать Ñ " -"проÑтранÑтвом.\n" -"РаÑÑмотрите возможноÑÑ‚ÑŒ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ CollisionShape2D или CollisionPolygon2D " -"дочерних узлов, Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ формы." +"Ðтот узел не имеет форму, поÑтому не может ÑталкиватьÑÑ Ð¸Ð»Ð¸ " +"взаимодейÑтвовать Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ объектами.\n" +"Подумайте о добавлении CollisionShape2D или CollisionPolygon2D как дочерний, " +"чтобы определить ее форму." #: scene/2d/collision_polygon_2d.cpp msgid "" @@ -9065,6 +9063,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ CPUParticles2D требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ CanvasItemMaterial Ñ " +"включенной функцией \"Particles Animation\"." #: scene/2d/light_2d.cpp msgid "" @@ -9120,6 +9120,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"Ð”Ð»Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸ Particles2D требуетÑÑ Ð¸Ñпользование CanvasItemMaterial Ñ " +"включенной функцией \"Particles Animation\"." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9144,23 +9146,21 @@ msgstr "" "Node2D." #: scene/2d/skeleton_2d.cpp -#, fuzzy msgid "This Bone2D chain should end at a Skeleton2D node." -msgstr "Ðта цепь Bone2D должна заканчиватьÑÑ Ð½Ð° узле Skeleton2D ." +msgstr "Ðта Bone2D цепь должна заканчиватьÑÑ Ð½Ð° узле Skeleton2D." #: scene/2d/skeleton_2d.cpp -#, fuzzy msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." msgstr "" -"Bone2D работает только Ñ Skeleton2D или другим Bone2D как родительÑкий узел." +"Bone2D работает только Ñо Skeleton2D или другим Bone2D в качеÑтве " +"родительÑкого узла." #: scene/2d/skeleton_2d.cpp -#, fuzzy msgid "" "This bone lacks a proper REST pose. Go to the Skeleton2D node and set one." msgstr "" -"Ðтой коÑти не хватает правильной позы REST. Перейдите к узлу Skeleton2D и " -"уÑтановите его." +"У Ñтой коÑти отÑутÑтвует Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ REST-позициÑ. Перейдите к узлу " +"Skeleton2D и уÑтановите её." #: scene/2d/visibility_notifier_2d.cpp msgid "" @@ -9227,16 +9227,15 @@ msgid "Lighting Meshes: " msgstr "ОÑвещение полиÑетки: " #: scene/3d/collision_object.cpp -#, fuzzy msgid "" "This node has no shape, so it can't collide or interact with other objects.\n" "Consider adding a CollisionShape or CollisionPolygon as a child to define " "its shape." msgstr "" -"Ðтот узел не имеет дочерних форм, поÑтому он не может взаимодейÑтвовать Ñ " -"проÑтранÑтвом.\n" -"РаÑÑмотрите возможноÑÑ‚ÑŒ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ CollisionShape или CollisionPolygon " -"дочерних узлов, чтобы определить его форму." +"Ðтот узел не имеет форму, поÑтому не может ÑталкиватьÑÑ Ð¸Ð»Ð¸ " +"взаимодейÑтвовать Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ объектами.\n" +"Подумайте о добавлении CollisionShape или CollisionPolygon как дочернего, " +"чтобы определить ее форму." #: scene/3d/collision_polygon.cpp msgid "" @@ -9271,15 +9270,16 @@ msgstr "" "Ñоздайте shape-реÑÑƒÑ€Ñ Ð´Ð»Ñ Ñтого!" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "Ðичего не видно, потому что полиÑетки не были назначены на отриÑовку." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Ðичто не видно, потому что не назначена Ñетка." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ CPUParticles требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ SpatialMaterial Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ð¾Ð¹ " +"функцией \"Billboard Particles\"." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9308,24 +9308,25 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ð°Ñтиц требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ SpatialMaterial Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ð¾Ð¹ функцией " +"\"Billboard Particles\"." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "" -"PathFollow2D работает только при уÑтановке его в качеÑтве дочернего узла " -"Path2D." +msgstr "PathFollow работает только при еÑли она дочь узла Path." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." -msgstr "" -"PathFollow2D работает только при уÑтановке его в качеÑтве дочернего узла " -"Path2D." +msgstr "OrientedPathFollow работает только еÑли она дочь узла Path." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" +"OrientedPathFollow требует, чтобы в его родительÑком пути были включены " +"векторы." #: scene/3d/physics_body.cpp msgid "" @@ -9365,15 +9366,15 @@ msgid "This body will be ignored until you set a mesh" msgstr "Ðто тело будет игнорироватьÑÑ, пока вы не уÑтановите Ñетку" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" "Change the size in children collision shapes instead." msgstr "" -"Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° RigidBody (в режиме character или rigid) будут " -"переопределены движком при запуÑке.\n" -"Измените размер дочерней формы коллизии." +"Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° SoftBody будут переопределены физичеÑким движком во Ð²Ñ€ÐµÐ¼Ñ " +"работы.\n" +"ВмеÑто Ñтого измените размер его дочерних форм Ñтолкновений(collision " +"shapes)." #: scene/3d/sprite_3d.cpp msgid "" @@ -9396,44 +9397,41 @@ msgid "On BlendTree node '%s', animation not found: '%s'" msgstr "Ðа узле BlendTree '%s' Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ найдена: '%s'" #: scene/animation/animation_blend_tree.cpp -#, fuzzy msgid "Animation not found: '%s'" -msgstr "ИнÑтрументы анимации" +msgstr "ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ найдена: %s" #: scene/animation/animation_tree.cpp msgid "In node '%s', invalid animation: '%s'." msgstr "Ð’ узле '%s' недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ: '%s'." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Invalid animation: '%s'." -msgstr "ОШИБКÐ: ÐедопуÑтимое название анимации!" +msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ: \"%s\"." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Nothing connected to input '%s' of node '%s'." -msgstr "Отключить '%s' от '%s'" +msgstr "Ðичего не подключено к входу \"%s\" узла \"%s\"." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "A root AnimationNode for the graph is not set." msgstr "Ðе задан корневой AnimationNode Ð´Ð»Ñ Ð³Ñ€Ð°Ñ„Ð°." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Path to an AnimationPlayer node containing animations is not set." -msgstr "Выберите AnimationPlayer из дерева Ñцены Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¹." +msgstr "Путь к узлу AnimationPlayer, Ñодержащему анимацию, не задан." #: scene/animation/animation_tree.cpp -#, fuzzy msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node." -msgstr "" -"Путь уÑтановленный Ð´Ð»Ñ AnimationPlayer не приводит к узлу AnimationPlayer." +msgstr "Путь, заданный Ð´Ð»Ñ AnimationPlayer, не ведет к узлу AnimationPlayer." #: scene/animation/animation_tree.cpp msgid "AnimationPlayer root is not a valid node." msgstr "Корневой Ñлемент AnimationPlayer недейÑтвительный." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "RAW режим" @@ -9450,6 +9448,10 @@ msgstr "Внимание!" msgid "Please Confirm..." msgstr "Подтверждение..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9462,7 +9464,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "ЕÑли exp_edit равен true min_value должно быть > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9522,15 +9524,9 @@ msgstr "ÐедопуÑтимый размер шрифта." msgid "Input" msgstr "Добавить вход" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Ðет>" - #: scene/resources/visual_shader_nodes.cpp -#, fuzzy msgid "Invalid source for shader." -msgstr "Ðеверный иÑточник!" +msgstr "ÐедейÑтвительный иÑточник шейдера." #: servers/visual/shader_language.cpp msgid "Assignment to function." @@ -9546,6 +9542,59 @@ msgstr "Ðазначить форму" msgid "Varyings can only be assigned in vertex function." msgstr "Переменные могут быть назначены только в функции вершин." +#~ msgid "Create Poly" +#~ msgstr "Создан полигон" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Создать новый полигон Ñ Ð½ÑƒÐ»Ñ" + +#~ msgid "Zoom out" +#~ msgstr "Уменьшить" + +#~ msgid "Zoom in" +#~ msgstr "Увеличить" + +#~ msgid "Create Poly3D" +#~ msgstr "Создан Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Ðет OccluderPolygon2D реÑурÑа у Ñтого узла.\n" +#~ "Создать и назначить?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Редактировать ÑущеÑтвующий полигон:" + +#~ msgid "LMB: Move Point." +#~ msgstr "ЛКМ: Передвинуть точку." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+ЛКМ: Разделить Ñегмент." + +#~ msgid "RMB: Erase Point." +#~ msgstr "ПКМ: Удалить точку." + +#~ msgid "New TextFile" +#~ msgstr "Ðовый текÑтовый файл" + +#~ msgid "Save Theme As" +#~ msgstr "Сохранить тему как" + +#~ msgid "<None>" +#~ msgstr "<Ðет>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Выберите плитку Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² качеÑтве значка, она также будет " +#~ "иÑпользоватьÑÑ Ð¿Ñ€Ð¸ неверных привÑзках автотайлов." + +#~ msgid "Zoom:" +#~ msgstr "Приближение:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Ð’Ñ‹ уверены, что хотите удалить вÑе Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ \"" @@ -10261,9 +10310,6 @@ msgstr "Переменные могут быть назначены только #~ msgid "Source Font:" #~ msgstr "ИÑходный шрифт:" -#~ msgid "Source Font Size:" -#~ msgstr "ИÑходный размер шрифта:" - #~ msgid "Dest Resource:" #~ msgstr "РеÑÑƒÑ€Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ:" @@ -11107,13 +11153,6 @@ msgstr "Переменные могут быть назначены только #~ msgid "Scale Region Editor" #~ msgstr "Редактор маÑштабируемой облаÑти текÑтуры" -#~ msgid "" -#~ "No texture in this node.\n" -#~ "Set a texture to be able to edit region." -#~ msgstr "" -#~ "Ð’ Ñтом узле нет текÑтуры.\n" -#~ "Выберите текÑтуру, чтобы редактировать облаÑÑ‚ÑŒ." - #~ msgid "Inherit Scene" #~ msgstr "УнаÑледовать Ñцену" diff --git a/editor/translations/si.po b/editor/translations/si.po index 726eb15d37..b585fc01f5 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-21 19:08+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" "Last-Translator: Yohan Sandun <Yohan99ysk@gmail.com>\n" "Language-Team: Sinhala <https://hosted.weblate.org/projects/godot-engine/" "godot/si/>\n" "Language: si\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -247,7 +249,6 @@ msgstr "%d සදහ෠ලුහුබදින්නන් à·ƒà·à¶¯à· යච#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -519,15 +520,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -536,7 +541,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -694,8 +699,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -742,8 +747,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1195,8 +1199,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1651,6 +1654,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2047,7 +2056,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2071,7 +2080,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2482,6 +2491,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2498,8 +2513,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2912,7 +2926,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3035,7 +3049,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3281,14 +3295,12 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +msgid "Edit Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3296,29 +3308,29 @@ msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3363,15 +3375,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3447,7 +3450,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -3979,7 +3981,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4127,15 +4129,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4391,7 +4393,15 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4493,35 +4503,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4889,6 +4873,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4916,6 +4904,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4931,11 +4923,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -4992,6 +4979,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5002,7 +4993,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5042,7 +5039,15 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5066,11 +5071,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5098,19 +5099,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5248,19 +5249,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5280,6 +5281,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5320,7 +5329,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5349,15 +5358,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5465,6 +5474,10 @@ msgstr "" msgid "Go to Function" msgstr "à·à·Šâ€à¶»à·’à¶:" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5497,10 +5510,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6189,11 +6198,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6430,11 +6444,11 @@ msgid "Clear transform" msgstr "Anim පරිවර්à¶à¶±à¶º වෙනස් කරන්න" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6446,13 +6460,31 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6482,15 +6514,24 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "à¶à·à¶»à·à¶œà¶à·Š යà¶à·”රු මක෠දමන්න" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6508,11 +6549,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6528,6 +6575,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6564,7 +6615,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8007,7 +8058,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8849,7 +8900,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8892,7 +8943,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -8980,6 +9033,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -8996,6 +9053,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9052,10 +9113,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index d2bd63b02a..1b2a393dd8 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -7,15 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-06-18 08:43+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" "Last-Translator: MineGame 159 <minegame459@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/" "godot/sk/>\n" "Language: sk\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 3.0.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -254,7 +256,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -526,15 +527,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -543,7 +548,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -704,8 +709,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -752,8 +757,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1210,8 +1214,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1686,6 +1689,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2086,7 +2095,7 @@ msgid "Undo" msgstr "Späť" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2110,7 +2119,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2526,6 +2535,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2542,8 +2557,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "New Script" msgstr "Popis:" @@ -2962,7 +2976,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Popis:" @@ -3090,8 +3104,9 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." -msgstr "" +#, fuzzy +msgid "Invalid group name." +msgstr "Nesprávna veľkosÅ¥ pÃsma." #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" @@ -3341,45 +3356,47 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "VytvoriÅ¥ adresár" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Signály:" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr "VÅ¡etky vybrané" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "VÅ¡etky vybrané" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" +msgid "Erase points." msgstr "VÅ¡etky vybrané" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3424,17 +3441,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "VÅ¡etky vybrané" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "VÅ¡etky vybrané" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3511,7 +3517,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4053,7 +4058,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4205,15 +4210,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4470,7 +4475,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4576,35 +4590,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4974,6 +4962,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5001,6 +4993,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5016,11 +5012,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5081,6 +5072,10 @@ msgstr "VÅ¡etky vybrané" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5092,7 +5087,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5135,10 +5136,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Otvorit prieÄinok" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5160,12 +5171,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "VytvoriÅ¥ adresár" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "VÅ¡etky vybrané" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5192,19 +5199,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5342,19 +5349,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5377,6 +5384,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5419,8 +5434,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Súbor:" +msgid "Open..." +msgstr "OtvoriÅ¥" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5448,15 +5463,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5565,6 +5580,10 @@ msgstr "" msgid "Go to Function" msgstr "VÅ¡etky vybrané" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5597,10 +5616,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6298,11 +6313,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6543,12 +6563,12 @@ msgid "Clear transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "VÅ¡etky vybrané" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6560,13 +6580,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "VložiÅ¥" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6596,16 +6637,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "VÅ¡etky vybrané" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "VytvoriÅ¥ adresár" @@ -6623,12 +6675,19 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "Súbor:" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6644,6 +6703,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6680,7 +6743,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8150,7 +8213,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "argument \"step\"/krok je nulový!" #: modules/gdscript/gdscript_functions.cpp @@ -9016,7 +9080,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9059,7 +9123,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9148,6 +9214,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9164,6 +9234,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9220,10 +9294,6 @@ msgstr "Nesprávna veľkosÅ¥ pÃsma." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9241,6 +9311,10 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Súbor:" + #~ msgid "Class List:" #~ msgstr "Zoznam tried:" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 19a658939b..a3a4333552 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -11,16 +11,18 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-09-10 18:23+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:43+0100\n" "Last-Translator: Tine Jozelj <tine@tjo.space>\n" "Language-Team: Slovenian <https://hosted.weblate.org/projects/godot-engine/" "godot/sl/>\n" "Language: sl\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -267,7 +269,6 @@ msgstr "Ustvarim %d NOVO sled in vstavim kljuÄe?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -544,15 +545,19 @@ msgstr "Zamenjaj Vse" msgid "Selection Only" msgstr "Samo Izbira" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Približaj" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Oddalji" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Ponastavi PoveÄavo/PomanjÅ¡avo" @@ -561,9 +566,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "Približaj" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -728,8 +732,8 @@ msgid "Recent:" msgstr "Nedavni:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Iskanje:" @@ -780,8 +784,7 @@ msgid "Resource" msgstr "Viri" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Pot" @@ -1242,8 +1245,7 @@ msgid "Node Name:" msgstr "Ime Gradnika:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Ime" @@ -1725,6 +1727,12 @@ msgstr "Te operacije ne moremo storiti brez osnovnega drevesa." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2162,7 +2170,7 @@ msgid "Undo" msgstr "Razveljavi" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Ponovi" @@ -2186,7 +2194,7 @@ msgstr "Nastavitve Projekta" msgid "Export" msgstr "Izvozi" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Orodja" @@ -2622,6 +2630,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2638,8 +2652,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3071,7 +3084,7 @@ msgstr "Podvoji..." msgid "Move To..." msgstr "Premakni V..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Hitro Odpri Skripto..." @@ -3215,7 +3228,7 @@ msgstr "NAPAKA: Animacija s tem imenom že obstaja!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Neveljavno ime." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3472,14 +3485,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Ustvarite Poligon" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Uredi Poligon" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3487,25 +3500,28 @@ msgid "Insert Point" msgstr "Ustavi ToÄko" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Uredi Poligon (Odstrani ToÄko)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Odstrani Poligon in ToÄko" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Ustvari nov poligon od zaÄetka" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "IzbriÅ¡i toÄke" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Uredi obstojeÄi poligon:\n" "LMG: Premakni ToÄko.\n" @@ -3513,7 +3529,9 @@ msgstr "" "DMG: ZbriÅ¡i ToÄko." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." msgstr "IzbriÅ¡i toÄke" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3559,17 +3577,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "IzbriÅ¡i toÄke" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "IzbriÅ¡i toÄke" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3647,7 +3654,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Dodaj vozliÅ¡Äe" @@ -4199,7 +4205,7 @@ msgstr "Vse" msgid "Plugins" msgstr "VtiÄniki" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Razvrsti:" @@ -4359,21 +4365,19 @@ msgid "Paste Pose" msgstr "Prilepi Pozicijo" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Oddalji" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Oddalji" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Približaj" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Izberi NaÄin" @@ -4637,8 +4641,17 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Ustvarite Poligon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Uredi Poligon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Uredi Poligon (Odstrani ToÄko)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4739,35 +4752,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Model je prazen!" @@ -5135,6 +5122,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Uredi krivuljo vozliÅ¡Äa" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5162,6 +5154,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5177,11 +5173,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5238,6 +5229,10 @@ msgstr "Odstrani ToÄko Izven Nadzora" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5249,7 +5244,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5294,10 +5295,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Preoblikovanje" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Odpri 2D Urejevalnik" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5320,12 +5331,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Ustvarite Poligon" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Odstrani toÄko" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5352,20 +5359,20 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Izberite Mapo za Skeniranje" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5514,20 +5521,24 @@ msgid "Error saving file!" msgstr "Napaka pri shranjevanju PloÅ¡ÄnegaNiza!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Napaka med shranjevanjem." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Napaka pri premikanju:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Napaka nalaganja pisave." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Napaka pri premikanju:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5549,6 +5560,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5590,8 +5609,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Ogled datotek" +msgid "Open..." +msgstr "Odpri" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5620,15 +5639,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "Uvažanje Prizora..." #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5739,6 +5759,10 @@ msgstr "" msgid "Go to Function" msgstr "Dodaj Funkcijo" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5771,10 +5795,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6479,12 +6499,17 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "NaÄin Postavljanja:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "NiÄ" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6727,12 +6752,12 @@ msgstr "Preoblikovanje" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "Dodaj Gradnik(e) iz Drevesa" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Odstrani trenutni vnos" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6744,13 +6769,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Prilepi animacijo" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "IzbriÅ¡i toÄke" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Ustvarite Poligon" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6780,16 +6826,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "IzbriÅ¡em izbrane datoteke?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Izberi trenutno pod-ploÅ¡Äo v urejanju." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "IzbriÅ¡i toÄke" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Izberi trenutno pod-ploÅ¡Äo v urejanju." @@ -6808,12 +6865,20 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Izberi trenutno pod-ploÅ¡Äo v urejanju." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Ta operacija ni mogoÄa brez scene." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" -msgstr "" +#, fuzzy +msgid "TileSet" +msgstr "Izvozi PloÅ¡Äno Zbirko" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" @@ -6828,6 +6893,11 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Dodaj vozliÅ¡Äe" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6866,7 +6936,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Izvozi Projekt" #: editor/project_export.cpp @@ -8339,7 +8409,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "stopnja argumenta je niÄ!" #: modules/gdscript/gdscript_functions.cpp @@ -9210,7 +9281,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9253,7 +9324,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9347,6 +9420,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Drevo animacije ni veljavno." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Neobdelan naÄin" @@ -9363,6 +9440,10 @@ msgstr "Opozorilo!" msgid "Please Confirm..." msgstr "Prosimo Potrdite..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9423,10 +9504,6 @@ msgstr "Neveljavna velikost pisave." msgid "Input" msgstr "Dodaj Vnos" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "NiÄ" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Neveljaven vir za shader." @@ -9443,6 +9520,28 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Ustvarite Poligon" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Ustvari nov poligon od zaÄetka" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Oddalji" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Približaj" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Ogled datotek" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Približaj" + #~ msgid "Class List:" #~ msgstr "Seznam Razredov:" @@ -9513,9 +9612,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "Animacija Spremeni naÄin ovijanja sledi" -#~ msgid "Edit Node Curve" -#~ msgstr "Uredi krivuljo vozliÅ¡Äa" - #~ msgid "Edit Selection Curve" #~ msgstr "Uredi Krivulje izbora" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 9dec0b6def..8710bcde0f 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -269,7 +269,6 @@ msgstr "Ðаправите %d нових трака и убаците кључе #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -546,15 +545,19 @@ msgstr "Замени Ñве" msgid "Selection Only" msgstr "Само одабрано" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Увеличај" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Умањи" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "РеÑетуј увеличање" @@ -564,8 +567,8 @@ msgstr "" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "Увеличај" +msgid "Font Size:" +msgstr "Поглед иÑпред" #: editor/code_editor.cpp msgid "Line:" @@ -733,8 +736,8 @@ msgid "Recent:" msgstr "ЧеÑте:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Тражи:" @@ -785,8 +788,7 @@ msgid "Resource" msgstr "РеÑурÑ" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Пут" @@ -1248,8 +1250,7 @@ msgid "Node Name:" msgstr "Име чвора:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Име" @@ -1735,6 +1736,12 @@ msgid "This operation can't be done without a tree root." msgstr "Ова операција Ñе не може обавити без корена дрвета." #: editor/editor_node.cpp +msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " @@ -2174,7 +2181,7 @@ msgid "Undo" msgstr "Опозови" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Поново уради" @@ -2198,7 +2205,7 @@ msgstr "ПоÑтавке пројекта" msgid "Export" msgstr "Извоз" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Ðлати" @@ -2639,6 +2646,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2655,8 +2668,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3100,7 +3112,7 @@ msgstr "Дуплирај" msgid "Move To..." msgstr "Помери у..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Брзо отварање Ñкриптице..." @@ -3243,7 +3255,7 @@ msgstr "Грешка: име анимације већ поÑтоји!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Ðеважеће име." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3501,14 +3513,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Ðаправи полигон" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Измени полигон" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3516,25 +3528,28 @@ msgid "Insert Point" msgstr "Уметни тачку" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Уреди полигон (обриши тачку)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Обриши полигон и тачку" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Ðаправи нови полигон од почетка" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Обриши тачке" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Измени поÑтојећи полигон:\n" "Леви таÑтер миша: помери тачку.\n" @@ -3542,8 +3557,10 @@ msgstr "" "ДеÑни таÑтер миша: обриши тачку." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Обриши тачке" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "ДеÑни таÑтер миша: обриши тачку." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3589,17 +3606,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Обриши тачке" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "ДеÑни таÑтер миша: обриши тачку." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Помери тачку" @@ -3677,7 +3683,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4228,7 +4233,7 @@ msgstr "Ñви" msgid "Plugins" msgstr "Прикључци" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Сортирање:" @@ -4382,21 +4387,19 @@ msgid "Paste Pose" msgstr "Ðалепи позу" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Умањи" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Умањи" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Увеличај" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Одабери режим" @@ -4663,8 +4666,17 @@ msgstr "" "Превуците и иÑпуÑтите + Alt: Промени тип чвора" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Ðаправи Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Ðаправи полигон" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Измени полигон" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Уреди полигон (обриши тачку)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4766,37 +4778,9 @@ msgid "Item List Editor" msgstr "Уредник Ñтвари лиÑте" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"OccluderPolygon2D не поÑтоји на овом чвору.\n" -"Ðаправи и додели један?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Ðаправи оÑенчен полигон" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Ðаправи нови полигон од почетка." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Измени поÑтојећи полигон:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "Леви таÑтер миша: помери тачку." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+леви таÑтер миша: одÑеци дуж." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "ДеÑни таÑтер миша: обриши тачку." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Мрежа је празна!" @@ -5168,6 +5152,11 @@ msgid "Add Point to Curve" msgstr "Уметни тачку у криву" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Затвори криву" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Помери тачку у криви" @@ -5195,6 +5184,11 @@ msgid "Click: Add Point" msgstr "Клик: уметни тачку" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Подели Ñегмент (у криви)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "ДеÑни клик: обриши тачку" @@ -5210,11 +5204,6 @@ msgstr "Додај тачку (у празном проÑтору)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Подели Ñегмент (у криви)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Обриши тачку" @@ -5271,6 +5260,10 @@ msgstr "Обриши тачку контроле излаза" msgid "Remove In-Control Point" msgstr "Обриши тачку контроле улаза" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Подели Ñегмент (у криви)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5283,10 +5276,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Покажи коÑти" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Ðаправи UV мапу" @@ -5328,10 +5327,20 @@ msgid "Transform UV Map" msgstr "ТранÑформиши UV мапу" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Тип транÑформације" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Уредник UV 2Д полигона" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Уредник UV 2Д полигона" @@ -5356,11 +5365,7 @@ msgstr "Ðаправи коÑти" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Ðаправи полигон" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Помери тачку" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5388,19 +5393,19 @@ msgid "Scale Polygon" msgstr "Скалирај полигон" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5554,19 +5559,23 @@ msgid "Error saving file!" msgstr "Грешка при чувању TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Грешка при чувању теме" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Грешка при чувању" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Грешка при увозу теме" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Грешка при увозу" #: editor/plugins/script_editor_plugin.cpp @@ -5589,6 +5598,14 @@ msgid "Import Theme" msgstr "Увези тему" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Грешка при чувању теме" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Грешка при чувању" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Сачувај тему као..." @@ -5630,8 +5647,8 @@ msgstr "Датотека" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Погледај датотеке" +msgid "Open..." +msgstr "Отвори" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5662,6 +5679,11 @@ msgid "Theme" msgstr "Сачувај тему" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Увези тему" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Поново учитај тему" @@ -5670,10 +5692,6 @@ msgid "Save Theme" msgstr "Сачувај тему" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Сачувај тему као" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Затвори документацију" @@ -5783,6 +5801,10 @@ msgstr "" msgid "Go to Function" msgstr "Иди на функцију..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Само реÑурÑи из датотечног ÑиÑтема Ñе могу убацити." @@ -5816,10 +5838,6 @@ msgstr "Велика Ñлова" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6539,11 +6557,18 @@ msgid "Set Region Rect" msgstr "ПоÑтави правоугаони регион" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "ПоÑтави дршку" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Режим лепљења:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<Ðиједан>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6795,12 +6820,12 @@ msgid "Clear transform" msgstr "ТранÑформација" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Обриши тачку криве" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6813,13 +6838,34 @@ msgid "Merge from Scene" msgstr "Споји од Ñцене" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Ðалепи анимацију" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "ДеÑни таÑтер миша: обриши тачку." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Ðаправи нови полигон од почетка." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6850,16 +6896,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Обриши одабране датотеке?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Сачувај тренутно измењени реÑурÑ." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Обриши тачке" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Сачувај тренутно измењени реÑурÑ." @@ -6878,12 +6935,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Сачувај тренутно измењени реÑурÑ." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Ова операција Ñе не може обавити без Ñцене." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6901,6 +6965,10 @@ msgid "Light" msgstr "деÑно" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "VisualShader" msgstr "Шејдер" @@ -6942,7 +7010,7 @@ msgstr "Додај..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Извези пројекат" #: editor/project_export.cpp @@ -8428,7 +8496,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9292,7 +9360,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9335,7 +9403,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9428,6 +9498,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Ðнимационо дрво није важеће." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9444,6 +9518,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9501,11 +9579,6 @@ msgstr "Ðеважећа величина фонта." msgid "Input" msgstr "Додај улаз" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Ðиједан>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9523,6 +9596,56 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Ðаправи полигон" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Ðаправи нови полигон од почетка" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Умањи" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Увеличај" + +#~ msgid "Create Poly3D" +#~ msgstr "Ðаправи Poly3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "OccluderPolygon2D не поÑтоји на овом чвору.\n" +#~ "Ðаправи и додели један?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Измени поÑтојећи полигон:" + +#~ msgid "LMB: Move Point." +#~ msgstr "Леви таÑтер миша: помери тачку." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+леви таÑтер миша: одÑеци дуж." + +#~ msgid "RMB: Erase Point." +#~ msgstr "ДеÑни таÑтер миша: обриши тачку." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Погледај датотеке" + +#~ msgid "Save Theme As" +#~ msgstr "Сачувај тему као" + +#~ msgid "<None>" +#~ msgstr "<Ðиједан>" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Увеличај" + #~ msgid "Class List:" #~ msgstr "ЛиÑта клаÑа:" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index 864685e72a..55ad9f2ab9 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -4,19 +4,22 @@ # This file is distributed under the same license as the Godot source code. # Milos Ponjavusic <brane@branegames.com>, 2018. # BLu <blmasfon@gmail.com>, 2018. +# Vojislav Bajakic <ch3d4.ns@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-09-21 20:35+0000\n" -"Last-Translator: BLu <blmasfon@gmail.com>\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" +"Last-Translator: Vojislav Bajakic <ch3d4.ns@gmail.com>\n" "Language-Team: Serbian (latin) <https://hosted.weblate.org/projects/godot-" "engine/godot/sr_Latn/>\n" "Language: sr_Latn\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -255,7 +258,6 @@ msgstr "Napravi %d novih kanala i dodaj kljuÄeve?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -526,15 +528,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -543,7 +549,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -702,8 +708,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -750,8 +756,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1203,8 +1208,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1660,6 +1664,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2056,7 +2066,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2080,7 +2090,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2223,11 +2233,11 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" -msgstr "" +msgstr "Zajednica" #: editor/editor_node.cpp msgid "About" -msgstr "" +msgstr "O nama / O Godou" #: editor/editor_node.cpp msgid "Play the project." @@ -2491,6 +2501,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2507,8 +2523,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2921,7 +2936,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3044,7 +3059,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3290,44 +3305,45 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Napravi" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Napravi" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Napravi" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3372,16 +3388,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Napravi" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3458,7 +3464,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -3993,7 +3998,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4141,15 +4146,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4406,7 +4411,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Napravi" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4508,35 +4522,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4904,6 +4892,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Izmjeni Krivulju ÄŒvora" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4931,6 +4924,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4946,11 +4943,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5007,6 +4999,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5017,7 +5013,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5058,7 +5060,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Napravi" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5082,12 +5093,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy -msgid "Create Polygon" -msgstr "Napravi" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5115,19 +5121,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5265,19 +5271,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5297,6 +5303,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5337,7 +5351,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5366,15 +5380,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5482,6 +5496,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5514,10 +5532,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6209,11 +6223,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6452,12 +6471,13 @@ msgid "Clear transform" msgstr "Animacija Promjeni Transformaciju" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" -msgstr "" +#, fuzzy +msgid "Remove selected Texture from TileSet." +msgstr "ObriÅ¡i Selekciju" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from Scene" @@ -6468,13 +6488,32 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Napravi" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6504,15 +6543,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "IzbriÅ¡i oznaÄeni kljuÄ(eve)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Napravi" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6530,11 +6579,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6550,6 +6605,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6586,7 +6645,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -7103,7 +7162,7 @@ msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" -msgstr "" +msgstr "OpÅ¡ti deo" #: editor/project_settings_editor.cpp msgid "Override For..." @@ -8032,7 +8091,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8876,7 +8935,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8919,7 +8978,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9007,6 +9068,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9023,6 +9088,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9079,10 +9148,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" @@ -9120,9 +9185,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "Animacija Promjeni Režim Omotavanja Kanala" -#~ msgid "Edit Node Curve" -#~ msgstr "Izmjeni Krivulju ÄŒvora" - #~ msgid "Anim Add Key" #~ msgstr "Animacija Dodaj KljuÄ" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 0493e3eec8..94fe05d272 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -12,15 +12,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-08-06 18:43+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:42+0100\n" "Last-Translator: Daniel K <danielkimblad@hotmail.com>\n" "Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/" "godot/sv/>\n" "Language: sv\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.1.1\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -269,7 +271,6 @@ msgstr "Skapa %d NYA spÃ¥r och infoga nycklar?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -563,15 +564,19 @@ msgstr "Ersätt Alla" msgid "Selection Only" msgstr "Endast Urval" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Zooma In" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Zooma Ut" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Ã…terställ Zoom" @@ -582,8 +587,8 @@ msgstr "Varning" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "Zooma In" +msgid "Font Size:" +msgstr "Vy framifrÃ¥n" #: editor/code_editor.cpp msgid "Line:" @@ -761,8 +766,8 @@ msgid "Recent:" msgstr "Senaste:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Sök:" @@ -818,8 +823,7 @@ msgid "Resource" msgstr "Resurs" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp #, fuzzy msgid "Path" msgstr "Sökväg" @@ -1367,8 +1371,7 @@ msgid "Node Name:" msgstr "Node Namn:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Namn" @@ -1894,6 +1897,12 @@ msgid "This operation can't be done without a tree root." msgstr "Ã…tgärden kan inte göras utan en trädrot." #: editor/editor_node.cpp +msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " @@ -2389,7 +2398,7 @@ msgid "Undo" msgstr "Ã…ngra" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp #, fuzzy msgid "Redo" msgstr "Ã…ngra" @@ -2415,7 +2424,7 @@ msgstr "Projektinställningar" msgid "Export" msgstr "Exportera" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Verktyg" @@ -2849,6 +2858,12 @@ msgstr "Tilldela" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2865,8 +2880,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "New Script" msgstr "Nytt Skript" @@ -3325,7 +3339,7 @@ msgstr "Duplicera" msgid "Move To..." msgstr "Flytta Till..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Nytt Skript" @@ -3470,7 +3484,7 @@ msgstr "ERROR: Animationsnamn finns redan!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Ogiltigt namn." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3739,14 +3753,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Skapa Prenumeration" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Redigera Polygon" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3754,30 +3768,33 @@ msgid "Insert Point" msgstr "Infoga Punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Redigera Polygon (ta bort punkt)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Ta bort Polygon och Punkt" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create a new polygon from scratch" -msgstr "Skapa ny polygon frÃ¥n grunden" +msgid "Create points." +msgstr "Radera punkter" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." msgstr "Radera punkter" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3823,17 +3840,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Radera punkter" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "Radera punkter" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3912,7 +3918,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Lägg Till Node" @@ -4481,7 +4486,7 @@ msgstr "Alla" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sortera:" @@ -4633,21 +4638,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Zooma Ut" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Zooma Ut" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Zooma In" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4910,8 +4913,17 @@ msgstr "" "Dra & släpp + Alt: Ändra Node-Typ" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Skapa Prenumeration" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Redigera Polygon" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Redigera Polygon (ta bort punkt)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -5014,38 +5026,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -#, fuzzy -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Ingen OccluderPolygon2D resurs pÃ¥ denna Node.\n" -"Skapa och tilldela en?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5425,6 +5408,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Redigera Nodkurva" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5452,6 +5440,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5467,11 +5459,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5529,6 +5516,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5540,7 +5531,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5584,7 +5581,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Transformera" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5610,12 +5616,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Skapa Prenumeration" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Flytta Ner" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5642,20 +5644,20 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Välj en mapp att skanna" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5804,21 +5806,24 @@ msgid "Error saving file!" msgstr "Fel vid sparande av TileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Fel vid sparande." #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "Error saving" +msgid "Error Saving" msgstr "Fel vid sparande" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Fel vid sparande av scenen." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Fel vid laddning:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5841,6 +5846,15 @@ msgid "Import Theme" msgstr "Importera Tema" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Error saving" +msgstr "Fel vid sparande" + +#: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Save Theme As..." msgstr "Spara Tema Som..." @@ -5888,8 +5902,8 @@ msgstr "Fil" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Visa Filer" +msgid "Open..." +msgstr "Öppen" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5921,6 +5935,11 @@ msgstr "Spara Tema" #: editor/plugins/script_editor_plugin.cpp #, fuzzy +msgid "Import Theme..." +msgstr "Importera Tema" + +#: editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Reload Theme" msgstr "Ladda om Tema" @@ -5930,11 +5949,6 @@ msgid "Save Theme" msgstr "Spara Tema" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy -msgid "Save Theme As" -msgstr "Spara Tema Som" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "" @@ -6046,6 +6060,10 @@ msgstr "" msgid "Go to Function" msgstr "Funktion:" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6082,10 +6100,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp #, fuzzy @@ -6830,11 +6844,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -7086,12 +7105,12 @@ msgid "Clear transform" msgstr "Transformera" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Flytta nuvarande spÃ¥r upp." #: editor/plugins/tile_set_editor_plugin.cpp @@ -7103,13 +7122,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Klistra in Animation" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Radera punkter" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Skapa Prenumeration" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7139,16 +7179,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Ta bort valda filer?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "Skapa Mapp" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Radera punkter" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "Skapa Mapp" @@ -7167,12 +7218,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "Skapa Mapp" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Ã…tgärden kan inte göras utan en scen." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -7189,6 +7247,11 @@ msgid "Light" msgstr "Höger" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Lägg Till Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7227,7 +7290,7 @@ msgstr "Lägg till..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Exportera Projekt" #: editor/project_export.cpp @@ -8794,7 +8857,7 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9715,7 +9778,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9762,7 +9825,9 @@ msgstr "" "PathFollow2D fungerar bara när den är satt som ett barn till en Path2D-Node." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9854,6 +9919,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp #, fuzzy msgid "Raw Mode" @@ -9874,6 +9943,10 @@ msgstr "Varning!" msgid "Please Confirm..." msgstr "Vänligen Bekräfta..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9934,10 +10007,6 @@ msgstr "Ogiltig teckenstorlek." msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9956,6 +10025,38 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Skapa ny polygon frÃ¥n grunden" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Zooma Ut" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Zooma In" + +#, fuzzy +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Ingen OccluderPolygon2D resurs pÃ¥ denna Node.\n" +#~ "Skapa och tilldela en?" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Visa Filer" + +#, fuzzy +#~ msgid "Save Theme As" +#~ msgstr "Spara Tema Som" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Zooma In" + +#, fuzzy #~ msgid "Class List:" #~ msgstr "Klasslista:" @@ -10065,9 +10166,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "Anim SpÃ¥ra Ändra Linda om Läge" -#~ msgid "Edit Node Curve" -#~ msgstr "Redigera Nodkurva" - #~ msgid "Edit Selection Curve" #~ msgstr "Redigera Urvalsurva" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index de4e62702b..33c2bed0e0 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -8,15 +8,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-12-20 15:43+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:43+0100\n" "Last-Translator: Senthil Kumar K <logickumar@gmail.com>\n" "Language-Team: Tamil <https://hosted.weblate.org/projects/godot-engine/godot/" "ta/>\n" "Language: ta\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.18\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -255,7 +257,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -524,15 +525,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -541,7 +546,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -700,8 +705,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -748,8 +753,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1201,8 +1205,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1657,6 +1660,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2053,7 +2062,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2077,7 +2086,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2488,6 +2497,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2504,8 +2519,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2919,7 +2933,7 @@ msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•à®³à¯" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "" @@ -3042,7 +3056,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3288,14 +3302,12 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +msgid "Edit Polygon" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3303,29 +3315,29 @@ msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3370,15 +3382,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3454,7 +3457,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -3988,7 +3990,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4136,15 +4138,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4400,7 +4402,15 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4502,35 +4512,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4898,6 +4882,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "கண௠வளைவை[Node Curve] திரà¯à®¤à¯à®¤à¯" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4925,6 +4914,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4940,11 +4933,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5001,6 +4989,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "" @@ -5011,7 +5003,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5051,7 +5049,15 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5075,11 +5081,7 @@ msgid "Bones" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5107,19 +5109,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5257,19 +5259,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5289,6 +5291,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5329,7 +5339,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5358,15 +5368,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5473,6 +5483,10 @@ msgstr "" msgid "Go to Function" msgstr "" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5505,10 +5519,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6197,11 +6207,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6440,11 +6455,11 @@ msgid "Clear transform" msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6456,13 +6471,31 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6492,15 +6525,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•à®³à¯" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•à®³à¯" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6518,11 +6561,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6538,6 +6587,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6574,7 +6627,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8019,7 +8072,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -8863,7 +8916,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8906,7 +8959,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -8994,6 +9049,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9010,6 +9069,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9066,10 +9129,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" @@ -9104,8 +9163,5 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "அசைவூடà¯à®Ÿà¯ பாதை மறை[wrap] விதம௠மாறà¯à®±à¯" -#~ msgid "Edit Node Curve" -#~ msgstr "கண௠வளைவை[Node Curve] திரà¯à®¤à¯à®¤à¯" - #~ msgid "Move Add Key" #~ msgstr "சேர௠மà¯à®•à¯à®•à®¿à®¯à®ªà¯à®ªà¯à®³à¯à®³à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯" diff --git a/editor/translations/th.po b/editor/translations/th.po index 021f57822e..65042866f6 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-03-10 03:46+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:43+0100\n" "Last-Translator: Poommetee Ketson <poommetee@protonmail.com>\n" "Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/" "th/>\n" "Language: th\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.20-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -272,7 +274,6 @@ msgstr "เพิ่ม %d à¹à¸—ร็à¸à¹ƒà¸«à¸¡à¹ˆà¹à¸¥à¸°à¹€à¸žà¸´à¹ˆà¸¡à¸ #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -550,15 +551,19 @@ msgstr "à¹à¸—นที่ทั้งหมด" msgid "Selection Only" msgstr "เฉพาะที่à¸à¸³à¸¥à¸±à¸‡à¹€à¸¥à¸·à¸à¸" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "ขยาย" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "ย่à¸" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "รีเซ็ตซูม" @@ -569,8 +574,8 @@ msgstr "คำเตืà¸à¸™" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "ซูม (%):" +msgid "Font Size:" +msgstr "ขนาดฟà¸à¸™à¸•à¹Œà¸•à¹‰à¸™à¸‰à¸šà¸±à¸š:" #: editor/code_editor.cpp msgid "Line:" @@ -734,8 +739,8 @@ msgid "Recent:" msgstr "ล่าสุด:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "ค้นหา:" @@ -786,8 +791,7 @@ msgid "Resource" msgstr "รีซà¸à¸£à¹Œà¸ª" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡" @@ -1245,8 +1249,7 @@ msgid "Node Name:" msgstr "ชื่à¸à¹‚หนด:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "ชื่à¸" @@ -1724,6 +1727,12 @@ msgstr "ทำไม่ได้ถ้าไม่มีฉาà¸" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "บันทึà¸à¸‰à¸²à¸à¹„ม่ได้ à¸à¸²à¸ˆà¸ˆà¸°à¸¡à¸µà¸à¸²à¸£à¸à¹‰à¸²à¸‡à¸à¸´à¸‡à¹„ม่สมบูรณ์ (à¸à¸´à¸™à¸ªà¹à¸•à¸™à¸‹à¹Œà¸«à¸£à¸·à¸à¸à¸²à¸£à¸ªà¸·à¸šà¸—à¸à¸”)" @@ -2145,7 +2154,7 @@ msgid "Undo" msgstr "เลิà¸à¸—ำ" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "ทำซ้ำ" @@ -2169,7 +2178,7 @@ msgstr "ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•à¹Œ" msgid "Export" msgstr "ส่งà¸à¸à¸" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "เครื่à¸à¸‡à¸¡à¸·à¸" @@ -2597,6 +2606,12 @@ msgstr "ระบุ" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2613,8 +2628,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "เลืà¸à¸ Viewport" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "สคริปต์ใหม่" @@ -3040,7 +3054,7 @@ msgstr "ทำซ้ำ..." msgid "Move To..." msgstr "ย้ายไป..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "สคริปต์ใหม่" @@ -3183,7 +3197,7 @@ msgstr "ผิดพลาด: มีชื่à¸à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¸™à #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "ชื่à¸à¸œà¸´à¸”พลาด" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3441,14 +3455,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "สร้างรูปหลายเหลี่ยม" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3456,25 +3470,28 @@ msgid "Insert Point" msgstr "à¹à¸—รà¸à¸ˆà¸¸à¸”" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม (ลบจุด)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "ลบรูปหลายเหลี่ยมà¹à¸¥à¸°à¸ˆà¸¸à¸”" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "สร้างรูปหลายเหลี่ยมใหม่ตั้งà¹à¸•à¹ˆà¸•à¹‰à¸™" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "ลบจุด" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม:\n" "เมาส์ซ้าย: ย้ายจุด\n" @@ -3482,8 +3499,10 @@ msgstr "" "เมาส์ขวา: ลบจุด" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "ลบจุด" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "คลิà¸à¸‚วา: ลบจุด" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3529,17 +3548,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "ลบจุด" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "คลิà¸à¸‚วา: ลบจุด" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "ย้ายจุด" @@ -3618,7 +3626,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "เพิ่มโหนด" @@ -4171,7 +4178,7 @@ msgstr "ทั้งหมด" msgid "Plugins" msgstr "ปลั๊à¸à¸à¸´à¸™" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "เรียงตาม:" @@ -4328,21 +4335,19 @@ msgid "Paste Pose" msgstr "วางท่าทาง" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "ย่à¸" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "รีเซ็ตà¸à¸²à¸£à¸‹à¸¹à¸¡" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "ขยาย" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "โหมดเลืà¸à¸" @@ -4608,8 +4613,17 @@ msgstr "" "ลาภ& วาง + Alt: เปลี่ยนประเภทโหนด" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม 3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "สร้างรูปหลายเหลี่ยม" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม (ลบจุด)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4711,37 +4725,9 @@ msgid "Item List Editor" msgstr "à¹à¸à¹‰à¹„ขรายชื่à¸à¹„à¸à¹€à¸—ม" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"ไม่มี OccluderPolygon2D ในโหนดนี้\n" -"สร้างà¹à¸¥à¸°à¸à¸³à¸«à¸™à¸”?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "สร้างรูปหลายเหลี่ยมà¸à¸±à¹‰à¸™à¹à¸ªà¸‡" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "สร้างรูปหลายเหลี่ยมจาà¸à¸„วามว่างเปล่า" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยมเดิม:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "คลิà¸à¸‹à¹‰à¸²à¸¢: ย้ายจุด" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+คลิà¸à¸‹à¹‰à¸²à¸¢: à¹à¸¢à¸à¸ªà¹ˆà¸§à¸™" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "คลิà¸à¸‚วา: ลบจุด" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh ว่างเปล่า!" @@ -5111,6 +5097,11 @@ msgid "Add Point to Curve" msgstr "เพิ่มจุดในเส้นโค้ง" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "ปิดเส้นโค้ง" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "ย้ายจุดในเส้นโค้ง" @@ -5138,6 +5129,11 @@ msgid "Click: Add Point" msgstr "คลิà¸: เพิ่มจุด" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "à¹à¸¢à¸à¸ªà¹ˆà¸§à¸™ (ในเส้นโค้ง)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "คลิà¸à¸‚วา: ลบจุด" @@ -5153,11 +5149,6 @@ msgstr "เพิ่มจุด (ในที่ว่าง)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "à¹à¸¢à¸à¸ªà¹ˆà¸§à¸™ (ในเส้นโค้ง)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "ลบจุด" @@ -5214,6 +5205,10 @@ msgstr "ลบจุดควบคุมขาà¸à¸à¸" msgid "Remove In-Control Point" msgstr "ลบจุดควบคุมขาเข้า" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "à¹à¸¢à¸à¸ªà¹ˆà¸§à¸™ (ในเส้นโค้ง)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5226,10 +5221,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "à¹à¸ªà¸”งà¸à¸£à¸°à¸”ูà¸" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "สร้าง UV Map" @@ -5271,10 +5272,20 @@ msgid "Transform UV Map" msgstr "เคลื่à¸à¸™à¸¢à¹‰à¸²à¸¢ UV Map" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "ประเภทà¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "à¹à¸à¹‰à¹„ข UV รูปหลายเหลี่ยม 2D" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "à¹à¸à¹‰à¹„ข UV รูปหลายเหลี่ยม 2D" @@ -5299,11 +5310,7 @@ msgstr "สร้างà¸à¸£à¸°à¸”ูà¸" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "สร้างรูปหลายเหลี่ยม" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "ย้ายจุด" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5331,20 +5338,20 @@ msgid "Scale Polygon" msgstr "ปรับขนาดรูปหลายเหลี่ยม" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "à¸à¸£à¸¸à¸“าเลืà¸à¸à¸•à¸±à¸§à¹€à¸¥à¸·à¸à¸à¸à¹ˆà¸à¸™!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5494,19 +5501,23 @@ msgid "Error saving file!" msgstr "ผิดพลาดขณะบันทึภTileSet!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "ผิดพลาดขณะบันทึà¸à¸˜à¸µà¸¡" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "ผิดพลาดขณะบันทึà¸" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "ผิดพลาดขณะนำเข้าธีม" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "ผิดพลาดขณะนำเข้า" #: editor/plugins/script_editor_plugin.cpp @@ -5529,6 +5540,14 @@ msgid "Import Theme" msgstr "นำเข้าธีม" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "ผิดพลาดขณะบันทึà¸à¸˜à¸µà¸¡" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "ผิดพลาดขณะบันทึà¸" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "บันทึà¸à¸˜à¸µà¸¡à¹€à¸›à¹‡à¸™" @@ -5570,8 +5589,8 @@ msgstr "ไฟล์" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "ดูไฟล์" +msgid "Open..." +msgstr "เปิด" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5600,6 +5619,11 @@ msgid "Theme" msgstr "ธีม" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "นำเข้าธีม" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "โหลดธีมใหม่" @@ -5608,10 +5632,6 @@ msgid "Save Theme" msgstr "บันทึà¸à¸˜à¸µà¸¡" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "บันทึà¸à¸˜à¸µà¸¡à¹€à¸›à¹‡à¸™" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "ปิดคู่มืà¸" @@ -5721,6 +5741,10 @@ msgstr "" msgid "Go to Function" msgstr "ไปยังฟังà¸à¹Œà¸Šà¸±à¸™..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "สามารถวางรีซà¸à¸£à¹Œà¸ªà¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¹„ฟล์ได้เท่านั้น" @@ -5754,10 +5778,6 @@ msgstr "à¸à¸±à¸à¸©à¸£à¹à¸£à¸à¸žà¸´à¸¡à¸žà¹Œà¹ƒà¸«à¸à¹ˆ" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6472,11 +6492,18 @@ msgid "Set Region Rect" msgstr "à¸à¸³à¸«à¸™à¸”ขà¸à¸šà¹€à¸‚ต Texture" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "ปรับขนาดรูปร่าง" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "โหมดà¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<ไม่มี>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6724,12 +6751,12 @@ msgstr "เคลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "เพิ่มโหนดจาà¸à¸œà¸±à¸‡" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "ลบรายà¸à¸²à¸£" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6741,13 +6768,34 @@ msgid "Merge from Scene" msgstr "รวมจาà¸à¸‰à¸²à¸" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." -msgstr "เลืà¸à¸à¸£à¸¹à¸›à¸ าพย่à¸à¸¢à¹€à¸žà¸·à¹ˆà¸à¸—ำเป็นไà¸à¸„à¸à¸™ ภาพนี้จะใช้à¹à¸ªà¸”งเมื่à¸à¸à¸²à¸£" +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "วางà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Erase bitmask." +msgstr "คลิà¸à¸‚วา: ลบจุด" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "สร้างรูปหลายเหลี่ยมจาà¸à¸„วามว่างเปล่า" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6778,13 +6826,8 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" -"คลิà¸à¸‹à¹‰à¸²à¸¢: à¸à¸³à¸«à¸™à¸”ค่าบิต เปิด\n" -"คลิà¸à¸‚วา: à¸à¸³à¸«à¸™à¸”ค่าบิต ปิด" +msgid "Delete selected Rect." +msgstr "ลบไฟล์ที่เลืà¸à¸?" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6795,6 +6838,21 @@ msgstr "เลืà¸à¸à¹„ทล์ย่à¸à¸¢à¸—ี่à¸à¸³à¸¥à¸±à¸‡à¸›à¸£à¸± #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Delete polygon." +msgstr "ลบจุด" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "" +"คลิà¸à¸‹à¹‰à¸²à¸¢: à¸à¸³à¸«à¸™à¸”ค่าบิต เปิด\n" +"คลิà¸à¸‚วา: à¸à¸³à¸«à¸™à¸”ค่าบิต ปิด" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6810,11 +6868,19 @@ msgstr "เลืà¸à¸à¹„ทล์ย่à¸à¸¢à¹€à¸žà¸·à¹ˆà¸à¸ˆà¸±à¸”ลำด #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "เลืà¸à¸à¹„ทล์ย่à¸à¸¢à¹€à¸žà¸·à¹ˆà¸à¸ˆà¸±à¸”ลำดับความสำคัà¸" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "ทำไม่ได้ถ้าไม่มีฉาà¸" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Tile Set" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6834,6 +6900,11 @@ msgstr "ขวา" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "เพิ่มโหนด" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Shader" @@ -6873,7 +6944,7 @@ msgstr "เพิ่ม..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "ส่งà¸à¸à¸à¹‚ปรเจà¸à¸•à¹Œ" #: editor/project_export.cpp @@ -8384,7 +8455,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "ตัวà¹à¸›à¸£ step เป็นศูนย์!" #: modules/gdscript/gdscript_functions.cpp @@ -9258,7 +9330,7 @@ msgstr "ต้à¸à¸‡à¸¡à¸µà¸£à¸¹à¸›à¸—รงเพื่à¸à¹ƒà¸«à¹‰ CollisionSh #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "ไม่มีà¸à¸²à¸£à¹à¸ªà¸”งผลเนื่à¸à¸‡à¸ˆà¸²à¸à¹„ม่ได้à¸à¸³à¸«à¸™à¸” mesh ใน draw pass" #: scene/3d/cpu_particles.cpp @@ -9305,7 +9377,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "PathFollow2D จะทำงานได้ต้à¸à¸‡à¹€à¸›à¹‡à¸™à¹‚หนดลูà¸à¸‚à¸à¸‡à¹‚หนด Path2D" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9403,6 +9477,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "ผังà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¹„ม่ถูà¸à¸•à¹‰à¸à¸‡" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "โหมด Raw" @@ -9419,6 +9497,10 @@ msgstr "à¹à¸ˆà¹‰à¸‡à¹€à¸•à¸·à¸à¸™!" msgid "Please Confirm..." msgstr "à¸à¸£à¸¸à¸“ายืนยัน..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9486,11 +9568,6 @@ msgstr "ขนาดฟà¸à¸™à¸•à¹Œà¸œà¸´à¸”พลาด" msgid "Input" msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<ไม่มี>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9508,6 +9585,61 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "สร้างรูปหลายเหลี่ยม" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "สร้างรูปหลายเหลี่ยมใหม่ตั้งà¹à¸•à¹ˆà¸•à¹‰à¸™" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "ย่à¸" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "ขยาย" + +#~ msgid "Create Poly3D" +#~ msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม 3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "ไม่มี OccluderPolygon2D ในโหนดนี้\n" +#~ "สร้างà¹à¸¥à¸°à¸à¸³à¸«à¸™à¸”?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยมเดิม:" + +#~ msgid "LMB: Move Point." +#~ msgstr "คลิà¸à¸‹à¹‰à¸²à¸¢: ย้ายจุด" + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+คลิà¸à¸‹à¹‰à¸²à¸¢: à¹à¸¢à¸à¸ªà¹ˆà¸§à¸™" + +#~ msgid "RMB: Erase Point." +#~ msgstr "คลิà¸à¸‚วา: ลบจุด" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "ดูไฟล์" + +#~ msgid "Save Theme As" +#~ msgstr "บันทึà¸à¸˜à¸µà¸¡à¹€à¸›à¹‡à¸™" + +#~ msgid "<None>" +#~ msgstr "<ไม่มี>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "เลืà¸à¸à¸£à¸¹à¸›à¸ าพย่à¸à¸¢à¹€à¸žà¸·à¹ˆà¸à¸—ำเป็นไà¸à¸„à¸à¸™ ภาพนี้จะใช้à¹à¸ªà¸”งเมื่à¸à¸à¸²à¸£" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "ซูม (%):" + #~ msgid "Class List:" #~ msgstr "รายชื่à¸à¸„ลาส:" @@ -10210,9 +10342,6 @@ msgstr "" #~ msgid "Source Font:" #~ msgstr "ฟà¸à¸™à¸•à¹Œà¸•à¹‰à¸™à¸‰à¸šà¸±à¸š:" -#~ msgid "Source Font Size:" -#~ msgstr "ขนาดฟà¸à¸™à¸•à¹Œà¸•à¹‰à¸™à¸‰à¸šà¸±à¸š:" - #~ msgid "Dest Resource:" #~ msgstr "นำเข้ามาเป็นรีซà¸à¸£à¹Œà¸ª:" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 64c03e3f0b..7a39c66bdd 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -22,15 +22,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-28 16:23+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:43+0100\n" "Last-Translator: OÄŸuzhan Özdemir <ozdemiroguzhan0@gmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -285,7 +287,6 @@ msgstr "%d YENÄ° izler oluÅŸtur ve anahtarlar gir?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -563,15 +564,19 @@ msgstr "Tümünü DeÄŸiÅŸtir" msgid "Selection Only" msgstr "Yalnızca Seçim" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "YaklaÅŸtır" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "UzaklaÅŸtır" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "YaklaÅŸmayı Sıfırla" @@ -582,8 +587,8 @@ msgstr "Uyarılar" #: editor/code_editor.cpp #, fuzzy -msgid "Zoom:" -msgstr "YaklaÅŸ (%):" +msgid "Font Size:" +msgstr "Kaynak Yazı Türü Boyutu:" #: editor/code_editor.cpp msgid "Line:" @@ -749,8 +754,8 @@ msgid "Recent:" msgstr "Yakın zamanda:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Ara:" @@ -801,8 +806,7 @@ msgid "Resource" msgstr "Kaynak" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "Yol" @@ -1261,8 +1265,7 @@ msgid "Node Name:" msgstr "Düğüm adı:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Ad" @@ -1745,6 +1748,12 @@ msgstr "Bu iÅŸlem bir kök sahne olmadan yapılamaz." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2184,7 +2193,7 @@ msgid "Undo" msgstr "Geri" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Geri" @@ -2208,7 +2217,7 @@ msgstr "Proje Ayarları" msgid "Export" msgstr "Dışa Aktar" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Araçlar" @@ -2648,6 +2657,12 @@ msgstr "Ata" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2664,8 +2679,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "Bir Görüntükapısı Seçin" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Yeni Betik" @@ -3097,7 +3111,7 @@ msgstr "ÇoÄŸalt..." msgid "Move To..." msgstr "Åžuraya Taşı..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Yeni Betik" @@ -3240,7 +3254,7 @@ msgstr "HATA: Bu animasyon adı zaten var!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "Geçersiz ad." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3500,14 +3514,14 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" msgstr "Çoklu OluÅŸturun" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Çokluyu Düzenleyin" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3515,25 +3529,28 @@ msgid "Insert Point" msgstr "Nokta YerleÅŸtir" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Çokluyu Düzenleyin (Noktayı Silin)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Çokluyu ve Noktayı Kaldır" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Sıfırdan yeni bir çokgen oluÅŸturun" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Noktaları sil" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Varolan çokgeni düzenle:\n" "FareSolTık: Noktayı Taşı.\n" @@ -3541,8 +3558,10 @@ msgstr "" "FareSaÄŸTık: Noktayı Sil." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Noktaları sil" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#, fuzzy +msgid "Erase points." +msgstr "RMB: Noktayı Sil." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3588,17 +3607,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Create points." -msgstr "Noktaları sil" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "RMB: Noktayı Sil." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" msgstr "Noktayı Taşı" @@ -3677,7 +3685,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "Düğüm Ekle" @@ -4230,7 +4237,7 @@ msgstr "Hepsi" msgid "Plugins" msgstr "Eklentiler" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Sırala:" @@ -4391,21 +4398,19 @@ msgid "Paste Pose" msgstr "DuruÅŸu Yapıştır" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "UzaklaÅŸtır" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "YakınlaÅŸmayı Sıfırla" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "YaklaÅŸtır" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Kip Seç" @@ -4671,8 +4676,17 @@ msgstr "" "Sürükle & bırak + Alt: Düğüm türünü deÄŸiÅŸtir" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Çoklu3B OluÅŸtur" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Çoklu OluÅŸturun" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Çokluyu Düzenleyin" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Çokluyu Düzenleyin (Noktayı Silin)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4774,37 +4788,9 @@ msgid "Item List Editor" msgstr "Öğe Dizelgesi Düzenleyicisi" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Bu düğümde OccluderPolygon2D kaynağı yok.\n" -"OluÅŸtur ve bir tane ata?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Engelleyici Çokgeni OluÅŸtur" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Sıfırdan yeni bir çokgen oluÅŸturun." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Var olan çokgeni düzenleyin:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "LMB: Taşıma Noktası." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl + LMB: Parçayı Böl." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "RMB: Noktayı Sil." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Örüntü boÅŸ!" @@ -5174,6 +5160,11 @@ msgid "Add Point to Curve" msgstr "Noktayı EÄŸriye Ekle" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "EÄŸriyi Kapat" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "Noktayı EÄŸriye Taşı" @@ -5201,6 +5192,11 @@ msgid "Click: Add Point" msgstr "Tıkla: Nokta Ekle" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Parçayı Ayır (eÄŸriye göre)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "SaÄŸ tıkla: Nokta Sil" @@ -5216,11 +5212,6 @@ msgstr "Nokta Ekle (boÅŸlukta)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Parçayı Ayır (eÄŸriye göre)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Noktayı Sil" @@ -5277,6 +5268,10 @@ msgstr "Çıkış-Kontrol Noktası Kaldır" msgid "Remove In-Control Point" msgstr "GiriÅŸ-Kontrol Noktasını Kaldır" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Parçayı Ayır (eÄŸriye göre)" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5289,10 +5284,16 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Sync bones" +msgid "Sync Bones" msgstr "Kemikleri Göster" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "UV Haritası OluÅŸtur" @@ -5334,10 +5335,20 @@ msgid "Transform UV Map" msgstr "UV Haritasını Dönüştür" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Dönüştürme Türü" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Çokgen 2B UV Düzenleyicisi" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Çokgen 2B UV Düzenleyicisi" @@ -5362,11 +5373,7 @@ msgstr "Kemik Yap" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Çoklu OluÅŸturun" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +msgid "Move Points" msgstr "Noktayı Taşı" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5394,20 +5401,20 @@ msgid "Scale Polygon" msgstr "Çokgeni Ölçekle" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Önce bir ayar öğesi seçin!" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5557,19 +5564,23 @@ msgid "Error saving file!" msgstr "TileSet kaydedilirken hata!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Tema kaydedilirken hata" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Kaydedilirken hata" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Tema içe aktarılırken hata" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "İçe aktarılırken hata" #: editor/plugins/script_editor_plugin.cpp @@ -5592,6 +5603,14 @@ msgid "Import Theme" msgstr "Kalıbı İçe Aktar" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Tema kaydedilirken hata" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Kaydedilirken hata" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Temayı Farklı Kaydet..." @@ -5633,8 +5652,8 @@ msgstr "Dosya" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "Dosyaları Görüntüle" +msgid "Open..." +msgstr "Aç" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5663,6 +5682,11 @@ msgid "Theme" msgstr "Kalıp" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Kalıbı İçe Aktar" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Kalıbı Yeniden Yükle" @@ -5671,10 +5695,6 @@ msgid "Save Theme" msgstr "Kalıbı Kaydet" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Temayı Farklı Kaydet" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Belgeleri Kapat" @@ -5784,6 +5804,10 @@ msgstr "" msgid "Go to Function" msgstr "Ä°ÅŸleve Git..." +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Sadece dosya sisteminden kaynaklar bırakılabilir." @@ -5817,10 +5841,6 @@ msgstr "Büyük harfe çevirme" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6535,11 +6555,18 @@ msgid "Set Region Rect" msgstr "Dikdörtgen Bölgesini Ayarla" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Tutamacı Ayarla" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Yapışma Kipi:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +#, fuzzy +msgid "None" msgstr "<Yok>" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6784,12 +6811,12 @@ msgstr "Dönüşüm" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "AÄŸaçtan Düğüm(ler) Ekle" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "Mevcut giriyi kaldır" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6801,15 +6828,34 @@ msgid "Merge from Scene" msgstr "Sahneden BirleÅŸtir" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Simge olarak kullanmak iÅŸin alt-karo seç, bu aynı zamanda geçersiz oto-karo " -"baÄŸlantılarında kullanılacaktır." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Animasyonu Yapıştır" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "RMB: Noktayı Sil." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Sıfırdan yeni bir çokgen oluÅŸturun." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6840,13 +6886,8 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" -"LMB: bit'i aç.\n" -"RMB: bit'i kapat." +msgid "Delete selected Rect." +msgstr "Seçili dosyalar silinsin mi?" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -6857,6 +6898,21 @@ msgstr "Åžuanki düzenlenmiÅŸ alt-döşemeyi seç." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Delete polygon." +msgstr "Noktaları sil" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "" +"LMB: bit'i aç.\n" +"RMB: bit'i kapat." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6874,11 +6930,19 @@ msgstr "ÖnceliÄŸini deÄŸiÅŸtirmek için alt-karo seçin." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "ÖnceliÄŸini deÄŸiÅŸtirmek için alt-karo seçin." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "Bu iÅŸlem bir sahne olmadan yapılamaz." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Karo Takımı" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6897,6 +6961,11 @@ msgstr "SaÄŸ" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Add Node..." +msgstr "Düğüm Ekle" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Gölgelendirici" @@ -6936,7 +7005,7 @@ msgstr "Ekle..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "Ön Ayarları Dışa Aktar:" #: editor/project_export.cpp @@ -8460,7 +8529,8 @@ msgid "GDNative" msgstr "GDYerel" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "adım deÄŸiÅŸtirgeni sıfır!" #: modules/gdscript/gdscript_functions.cpp @@ -9375,7 +9445,7 @@ msgstr "" #: scene/3d/cpu_particles.cpp #, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" "HiçbirÅŸey görünebilir deÄŸil çünkü örüntüler çizim geçiÅŸlerine atanmış deÄŸil." @@ -9428,7 +9498,9 @@ msgstr "" "PathFollow2D yalnızca Path2D düğümünün çocuÄŸu olarak ayarlanınca çalışır." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9539,6 +9611,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Animasyon aÄŸacı geçersizdir." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Ham Kip" @@ -9555,6 +9631,10 @@ msgstr "Uyarı!" msgid "Please Confirm..." msgstr "Lütfen DoÄŸrulayın..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9624,11 +9704,6 @@ msgstr "Geçersiz yazıtipi boyutu." msgid "Input" msgstr "GiriÅŸ Ekle" -#: scene/resources/visual_shader.cpp -#, fuzzy -msgid "None" -msgstr "<Yok>" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9646,6 +9721,63 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#~ msgid "Create Poly" +#~ msgstr "Çoklu OluÅŸturun" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Sıfırdan yeni bir çokgen oluÅŸturun" + +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "UzaklaÅŸtır" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "YaklaÅŸtır" + +#~ msgid "Create Poly3D" +#~ msgstr "Çoklu3B OluÅŸtur" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Bu düğümde OccluderPolygon2D kaynağı yok.\n" +#~ "OluÅŸtur ve bir tane ata?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Var olan çokgeni düzenleyin:" + +#~ msgid "LMB: Move Point." +#~ msgstr "LMB: Taşıma Noktası." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl + LMB: Parçayı Böl." + +#~ msgid "RMB: Erase Point." +#~ msgstr "RMB: Noktayı Sil." + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "Dosyaları Görüntüle" + +#~ msgid "Save Theme As" +#~ msgstr "Temayı Farklı Kaydet" + +#~ msgid "<None>" +#~ msgstr "<Yok>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Simge olarak kullanmak iÅŸin alt-karo seç, bu aynı zamanda geçersiz oto-" +#~ "karo baÄŸlantılarında kullanılacaktır." + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "YaklaÅŸ (%):" + #~ msgid "Class List:" #~ msgstr "Sınıf Listesi:" @@ -10346,9 +10478,6 @@ msgstr "" #~ msgid "Source Font:" #~ msgstr "Yazı Türü Kaynağı:" -#~ msgid "Source Font Size:" -#~ msgstr "Kaynak Yazı Türü Boyutu:" - #~ msgid "Dest Resource:" #~ msgstr "Varış Kaynağı:" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 6d61acce23..8171b7e68e 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -9,19 +9,22 @@ # МакÑим Якимчук <xpinovo@gmail.com>, 2018. # ÐœÐ°Ñ€Ñ Ð¯Ð¼Ð±Ð°Ñ€ <mjambarmeta@gmail.com>, 2017-2018. # ОлекÑандр Пилипчук <pilipchukap@rambler.ru>, 2018. +# Kirill Omelchenko <kirill.omelchenko@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" -"PO-Revision-Date: 2018-08-24 19:45+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:44+0100\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" "Language: uk\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -42,8 +45,7 @@ msgstr "Ðекоректні вхідні дані %i (не передано) у #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" msgstr "" -"не можна викориÑтовувати self, оÑкільки екземплÑÑ€ може бути порожнім (не " -"передано)" +"не можна викориÑтовувати self, оÑкільки екземплÑÑ€ Ñ” порожнім (не передано)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -257,7 +259,6 @@ msgstr "Створити %d нові доріжки Ñ– вÑтавити ключ #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -407,14 +408,12 @@ msgid "Delete Selection" msgstr "Вилучити позначене" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Перейти до наÑтупного кроку" +msgstr "До наÑтупного кроку" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "ПовернутиÑÑ Ð´Ð¾ попереднього кроку" +msgstr "До попереднього кроку" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -536,15 +535,19 @@ msgstr "Замінити вÑÑ–" msgid "Selection Only" msgstr "Тільки виділити" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Збільшувати" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "ЗменшеннÑ" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Скинути маÑштаб" @@ -553,8 +556,8 @@ msgid "Warnings:" msgstr "ПопередженнÑ:" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "МаÑштаб:" +msgid "Font Size:" +msgstr "Розмір шрифту:" #: editor/code_editor.cpp msgid "Line:" @@ -667,9 +670,8 @@ msgid "Edit Connection: " msgstr "Редагувати з’єднаннÑ: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Ви Ñправді хочете вилучити уÑÑ– з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· цього Ñигналу?" +msgstr "Ви Ñправді хочете вилучити уÑÑ– з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñигналу «%s»?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -714,8 +716,8 @@ msgid "Recent:" msgstr "Ðещодавні:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Пошук:" @@ -766,8 +768,7 @@ msgid "Resource" msgstr "РеÑурÑ" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "ШлÑÑ…" @@ -824,9 +825,8 @@ msgid "Error loading:" msgstr "Помилка завантаженнÑ:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ у зв'Ñзку з відÑутніми залежноÑÑ‚Ñми Ñцени:" +msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ через неÑтачу залежноÑтей:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1231,8 +1231,7 @@ msgid "Node Name:" msgstr "Ім'Ñ Ð’ÑƒÐ·Ð»Ð°:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Ім'Ñ" @@ -1310,24 +1309,21 @@ msgid "File Exists, Overwrite?" msgstr "Файл Ñ–Ñнує, перезапиÑати його?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "Обрати цю теку" +msgstr "Вибрати цю теку" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" msgstr "Копіювати шлÑÑ…" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "Відкрити в менеджері файлів" +msgstr "Відкрити у менеджері файлів" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "Показати в файловому менеджері" +msgstr "Показати у менеджері файлів" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1470,19 +1466,16 @@ msgid "Methods" msgstr "Методи" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Методи" +msgstr "Методи:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "ВлаÑтивоÑÑ‚Ñ–" +msgstr "ВлаÑтивоÑÑ‚Ñ– теми" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "ВлаÑтивоÑÑ‚Ñ–:" +msgstr "ВлаÑтивоÑÑ‚Ñ– теми:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1509,18 +1502,16 @@ msgid "Constants:" msgstr "КонÑтанти:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "ОпиÑ" +msgstr "ÐžÐ¿Ð¸Ñ ÐºÐ»Ð°Ñу" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "ОпиÑ:" +msgstr "ÐžÐ¿Ð¸Ñ ÐºÐ»Ð°Ñу:" #: editor/editor_help.cpp msgid "Online Tutorials:" -msgstr "Підручники у інтернеті:" +msgstr "Підручники в інтернеті:" #: editor/editor_help.cpp msgid "" @@ -1533,14 +1524,12 @@ msgstr "" "щодо їхнього ÑтвореннÑ[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "ÐžÐ¿Ð¸Ñ Ð²Ð»Ð°ÑтивоÑтей:" +msgstr "ОпиÑи влаÑтивоÑтей" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "ÐžÐ¿Ð¸Ñ Ð²Ð»Ð°ÑтивоÑтей:" +msgstr "ОпиÑи влаÑтивоÑтей:" #: editor/editor_help.cpp msgid "" @@ -1551,14 +1540,12 @@ msgstr "" "[url=$url]Ñтворіть його[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "ÐžÐ¿Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ñ–Ð²:" +msgstr "ОпиÑи методів" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "ÐžÐ¿Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ñ–Ð²:" +msgstr "ОпиÑи методів:" #: editor/editor_help.cpp msgid "" @@ -1574,49 +1561,40 @@ msgid "Search Help" msgstr "Пошук довідки" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Ðормальний переглÑд" +msgstr "Показати уÑе" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "КлаÑи" +msgstr "Лише клаÑи" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Методи" +msgstr "Лише методи" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Сигнали" +msgstr "Лише Ñигнали" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "КонÑтанти" +msgstr "Лише Ñталі" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "ВлаÑтивоÑÑ‚Ñ–" +msgstr "Лише влаÑтивоÑÑ‚Ñ–" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "ВлаÑтивоÑÑ‚Ñ–" +msgstr "Лише влаÑтивоÑÑ‚Ñ– теми" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Члени" +msgstr "Тип члена" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "КлаÑ:" +msgstr "КлаÑ" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1715,6 +1693,14 @@ msgstr "Ð¦Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ може бути виконана без кР#: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"Цю Ñцену неможливо зберегти через циклічне Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ ÐµÐºÐ·ÐµÐ¼Ð¿Ð»Ñра.\n" +"Будь лаÑка, приберіть це включеннÑ, потім повторіть Ñпробу збереженнÑ." + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -1723,7 +1709,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Ðеможливо перезапиÑати Ñцену, Ñка Ñ” ще відкритою!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1982,13 +1968,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Ðеможливо завантажити Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñкрипт зі шлÑху: '%s'." #: editor/editor_node.cpp -#, fuzzy 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 "" @@ -2043,9 +2028,8 @@ 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 msgid "Play This Scene" @@ -2128,7 +2112,6 @@ msgid "Save Scene" msgstr "Зберегти Ñцену" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Зберегти вÑÑ– Ñцени" @@ -2158,7 +2141,7 @@ msgid "Undo" msgstr "СкаÑувати" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "Повернути" @@ -2182,7 +2165,7 @@ msgstr "Параметри проекту" msgid "Export" msgstr "ЕкÑпортуваннÑ" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ІнÑтрументи" @@ -2612,9 +2595,18 @@ msgstr "Призначити…" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"Ðеможливо Ñтворити ViewportTexture на оÑнові реÑурÑів, Ñкі збережено Ñк " +"файл.\n" +"РеÑÑƒÑ€Ñ Ð¼Ð°Ñ” належати до Ñцени." #: editor/editor_properties.cpp msgid "" @@ -2623,13 +2615,16 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Ðеможливо Ñтворити ViewportTexture на оÑнові цього реÑурÑу, оÑкільки його не " +"вÑтановлено Ñк локальний щодо Ñцени.\n" +"Будь лаÑка, увімкніть влаÑтивіÑÑ‚ÑŒ «Локальний щодо Ñцени» Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾ (Ñ– уÑÑ–Ñ… " +"реÑурÑів, що його міÑÑ‚ÑÑ‚ÑŒ, аж до вузла)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "Виберіть панель переглÑду" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "Ðовий Ñкрипт" @@ -2939,9 +2934,8 @@ msgstr "" "тип кешу!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "Вибране:" +msgstr "Вибране" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3027,14 +3021,12 @@ msgid "Instance" msgstr "ЕкземплÑÑ€" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "Вибране:" +msgstr "Додати до вибраного" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "Вилучити з групи" +msgstr "Вилучити з вибраного" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3056,7 +3048,7 @@ msgstr "Дублювати..." msgid "Move To..." msgstr "ПереміÑтити до..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "Створити Ñкрипт…" @@ -3065,12 +3057,10 @@ msgid "New Resource..." msgstr "Створити реÑурÑ…" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" msgstr "Розгорнути вÑе" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" msgstr "Згорнути вÑе" @@ -3094,9 +3084,8 @@ msgid "Re-Scan Filesystem" msgstr "ПереÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ñ— ÑиÑтеми" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "Режим ПеремиканнÑ" +msgstr "Перемкнути режим поділу" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3128,27 +3117,23 @@ msgstr "ПерезапиÑати" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" -msgstr "Створити Ñценарій" +msgstr "Створити Ñкрипт" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "Знайти у файлах" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Знайти: " +msgstr "Знайти:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Тека: " +msgstr "Тека:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Фільтр: " +msgstr "Фільтри:" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3188,7 +3173,8 @@ msgid "Group name already exists." msgstr "Група із такою назвою вже Ñ–Ñнує." #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "некоректна назва групи." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3325,12 +3311,10 @@ msgid "Failed to load resource." msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ реÑурÑ." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "Розгорнути вÑÑ– влаÑтивоÑÑ‚Ñ–" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" msgstr "Згорнути вÑÑ– влаÑтивоÑÑ‚Ñ–" @@ -3436,14 +3420,13 @@ msgid "Activate now?" msgstr "ЗадіÑти зараз?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "Створити полігон" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "Редагувати полігон" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3451,25 +3434,27 @@ msgid "Insert Point" msgstr "Ð’Ñтавити точку" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "Редагувати полігон (вилучити точку)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "Вилучити полігон та точку" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ полігону з нулÑ" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "Створити точки." #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ñнуючого полігону:\n" "ЛКМ: переміÑтити точку.\n" @@ -3477,8 +3462,9 @@ msgstr "" "ПКМ: видалити точку." #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "Видалити точки" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "Витерти точки." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3529,15 +3515,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "Створити точки." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "Витерти точки." - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "Точка" @@ -3620,7 +3597,6 @@ msgstr "" "неможливо отримати назви доріжок." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "Додати вузол…" @@ -4158,7 +4134,7 @@ msgstr "Ð’Ñе" msgid "Plugins" msgstr "Плаґіни" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "Сортувати:" @@ -4289,9 +4265,8 @@ msgid "Resize CanvasItem" msgstr "Змінити розмір CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "Обертати CanvasItem" +msgstr "МаÑштабувати CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4314,18 +4289,19 @@ msgid "Paste Pose" msgstr "Ð’Ñтавити позу" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "Зменшити" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "Відновити початковий маÑштаб" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "Збільшити" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "Режим виділеннÑ" @@ -4356,9 +4332,8 @@ msgid "Rotate Mode" msgstr "Режим повороту" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Режим маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ (R)" +msgstr "Режим маÑштабуваннÑ" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4457,9 +4432,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "Відновлює можливіÑÑ‚ÑŒ вибору нащадків об'єкта." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "КаркаÑ" +msgstr "Параметри каркаÑа" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4513,7 +4487,7 @@ msgstr "Показати панель переглÑду" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Показати піктограми Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° блокуваннÑ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4587,8 +4561,17 @@ msgstr "" "ПеретÑг + Alt : Змінити тип вузла" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "Створити полігон3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Створити полігон" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "Редагувати полігон" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "Редагувати полігон (вилучити точку)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4689,37 +4672,9 @@ msgid "Item List Editor" msgstr "Редактор ÑпиÑку елементів" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"Цей вузол не має реÑурÑу OccluderPolygon2D.\n" -"Створити Ñ– призначити?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "Створено затінювальний полігон" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "Створити новий полігон з нулÑ." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ñнуючого полігону:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "ЛКМ: ПереміÑтити точку." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "CTRL+ЛКМ: Розділити Ñегмент." - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "ПКМ: Стерти точку." - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Сітка порожнÑ!" @@ -4955,9 +4910,8 @@ msgid "Create Navigation Polygon" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ð¹Ð½Ð¾Ð³Ð¾ полігону" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" -msgstr "Створити облаÑÑ‚ÑŒ видимоÑÑ‚Ñ–" +msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– видимоÑÑ‚Ñ–" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Can only set point into a ParticlesMaterial process material" @@ -5089,6 +5043,11 @@ msgid "Add Point to Curve" msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ до кривої" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Закрити криву" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "ПереміÑтити точку на криву" @@ -5116,6 +5075,11 @@ msgid "Click: Add Point" msgstr "Клацніть: Додати точку" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "Розділити Ñегмент (кривої)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Клацніть правою кнопкою миші: видалити точку" @@ -5131,11 +5095,6 @@ msgstr "Додати точку (в порожньому проÑторі)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "Розділити Ñегмент (кривої)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Вилучити точку" @@ -5192,6 +5151,10 @@ msgstr "Вилучити вихідну керувальну точку" msgid "Remove In-Control Point" msgstr "Вилучити вхідну керувальну точку" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "Розділити Ñегмент (кривої)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "ПереÑунути з'єднаннÑ" @@ -5202,10 +5165,17 @@ msgid "" msgstr "ВлаÑтивіÑÑ‚ÑŒ skeleton Polygon2D не вказує на вузол Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "Синхронізувати кіÑтки" #: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "Створити UV-карту" @@ -5242,10 +5212,21 @@ msgid "Transform UV Map" msgstr "Перетворити UV-карту" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Тип перетвореннÑ" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "Малювати ваги кіÑток" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "Редактор плоÑких полігонів UV" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "Редактор плоÑких полігонів UV" @@ -5266,11 +5247,8 @@ msgid "Bones" msgstr "КіÑтки" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "Створити полігон" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "ПереміÑтити точку" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5298,19 +5276,23 @@ msgid "Scale Polygon" msgstr "МаÑштабувати полігон" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "З'єднати дві точки Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ñƒ" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "Виберіть поділ Ð´Ð»Ñ Ð²Ð¸Ñ‚Ð¸Ñ€Ð°Ð½Ð½Ñ" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "Малювати ваги вказаною інтенÑивніÑÑ‚ÑŽ" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "СкаÑувати Ð¼Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð³Ð¸ вказаною інтенÑивніÑÑ‚ÑŽ" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5436,7 +5418,6 @@ msgid "Error writing TextFile:" msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби запиÑати TextFile:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." msgstr "Помилка: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ файл." @@ -5449,19 +5430,23 @@ msgid "Error saving file!" msgstr "Помилка під Ñ‡Ð°Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "Помилка під Ñ‡Ð°Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ¼Ð¸" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "Помилка збереженнÑ" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "Помилка Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐ¼Ð¸" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "Помилка імпортуваннÑ" #: editor/plugins/script_editor_plugin.cpp @@ -5481,6 +5466,14 @@ msgid "Import Theme" msgstr "Імпортувати тему" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "Помилка під Ñ‡Ð°Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ¼Ð¸" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "Помилка збереженнÑ" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "Зберегти тему Ñк..." @@ -5510,19 +5503,20 @@ msgstr "ПереміÑтити вниз" #: editor/plugins/script_editor_plugin.cpp msgid "Next script" -msgstr "ÐаÑтупний Ñценарій" +msgstr "ÐаÑтупний Ñкрипт" #: editor/plugins/script_editor_plugin.cpp msgid "Previous script" -msgstr "Попередній Ñценарій" +msgstr "Попередній Ñкрипт" #: editor/plugins/script_editor_plugin.cpp msgid "File" msgstr "Файл" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "Ðовий текÑтовий файл" +#, fuzzy +msgid "Open..." +msgstr "Відкрити" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5530,16 +5524,15 @@ msgstr "Зберегти вÑе" #: editor/plugins/script_editor_plugin.cpp msgid "Soft Reload Script" -msgstr "Ðœ'Ñко перезавантажити Ñценарії" +msgstr "Ðœ'Ñко перезавантажити Ñкрипт" #: editor/plugins/script_editor_plugin.cpp msgid "Copy Script Path" msgstr "Копіювати шлÑÑ… до Ñкрипту" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" -msgstr "Попередній файл" +msgstr "Попередній у журналі" #: editor/plugins/script_editor_plugin.cpp msgid "History Next" @@ -5551,6 +5544,11 @@ msgid "Theme" msgstr "Тема" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "Імпортувати тему" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "Перезавантажити тему" @@ -5559,10 +5557,6 @@ msgid "Save Theme" msgstr "Зберегти тему" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "Зберегти тему Ñк" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Закрити документацію" @@ -5580,7 +5574,7 @@ msgstr "ЗапуÑтити" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle Scripts Panel" -msgstr "Перемкнути панель Ñценаріїв" +msgstr "Перемкнути панель Ñкриптів" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -5609,7 +5603,6 @@ msgid "Keep Debugger Open" msgstr "Залишити зневаджувач відкритим" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" msgstr "Ð—Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð° допомогою зовнішнього редактора" @@ -5654,7 +5647,6 @@ msgid "Debugger" msgstr "Зневаджувач" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" msgstr "Результати пошуку" @@ -5667,9 +5659,12 @@ msgid "(ignore)" msgstr "(ігнорувати)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Перейти до функції..." +msgstr "Перейти до функції" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Стандартний" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5703,10 +5698,6 @@ msgstr "З Великої" msgid "Syntax Highlighter" msgstr "ЗаÑіб підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ ÑинтакÑиÑу" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Стандартний" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5758,12 +5749,10 @@ msgid "Trim Trailing Whitespace" msgstr "Обрізати кінцевий пробіл" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "Перетворити відÑтуп на пропуÑки" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" msgstr "Перетворити відÑтуп на табулÑції" @@ -5781,12 +5770,10 @@ msgid "Remove All Breakpoints" msgstr "Вилучити вÑÑ– точки зупинки" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "Перейти до наÑтупної точки зупинки" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" msgstr "Перейти до попередньої точки зупинки" @@ -5795,17 +5782,14 @@ msgid "Find Previous" msgstr "Знайти попереднє" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "Знайти у файлах…" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Перейти до функції..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Перейти до Ñ€Ñдка..." @@ -5898,13 +5882,12 @@ msgid "Animation Key Inserted." msgstr "Ð’Ñтавлено ключ анімації." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Pitch" -msgstr "Перемикач" +msgstr "ХилитаннÑ" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "ВідхиленнÑ" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6071,9 +6054,8 @@ msgid "Freelook Speed Modifier" msgstr "Коефіцієнт швидкоÑÑ‚Ñ– оглÑду" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "ЗафікÑувати Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду" +msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду заблоковано" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6409,12 +6391,18 @@ msgid "Set Region Rect" msgstr "Ð’Ñтановити прÑмокутник облаÑÑ‚Ñ–" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "Ð’Ñтановити обробник" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "Режим прилипаннÑ:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" -msgstr "<Ðемає>" +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Ðемає" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6577,9 +6565,8 @@ msgid "Fix Invalid Tiles" msgstr "Виправити некоректні плитки" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "Центрувати на вибраному" +msgstr "Вирізати позначене" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6626,39 +6613,37 @@ msgid "Pick Tile" msgstr "Вибрати плитку" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "ПереÑунути позначене" +msgstr "Копіювати позначене" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "Режим повороту" +msgstr "Обертати ліворуч" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "Повернути полігон" +msgstr "Обертати праворуч" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "Відзеркалити горизонтально" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "Віддзеркалити вертикально" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "ПеретвореннÑ" +msgstr "ЗнÑти перетвореннÑ" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Додати текÑтури до TileSet" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Вилучити поточну текÑтуру з TileSet" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6670,19 +6655,38 @@ msgid "Merge from Scene" msgstr "Об'єднати зі Ñцени" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"Виберіть підплитку Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ñк піктограми. Її також буде викориÑтано " -"Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ñ… прив'Ñзок у режимі автоплитки." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "Показувати назви плиток (Ñкщо утримують клавішу Alt)" +#, fuzzy +msgid "Paste bitmask." +msgstr "Ð’Ñтавити анімацію" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "Витерти точки." + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Створити новий полігон з нулÑ." + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "Показувати назви плиток (Ñкщо утримують клавішу Alt)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" msgstr "Вилучити позначену текÑтуру Ñ– уÑÑ– плитки, у Ñких Ñ—Ñ— викориÑтано?" @@ -6699,9 +6703,8 @@ msgid "Merge from scene?" msgstr "Об'єднати зі Ñцени?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " файлів не додано, оÑкільки вони вже були у ÑпиÑку." +msgstr "%s файлів не додано, оÑкільки вони вже були у ÑпиÑку." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6712,21 +6715,32 @@ msgstr "" "Клацніть на іншій плитці, щоб редагувати Ñ—Ñ—." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Видалити вибрані файли?" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" -"Ліва кнопка: вÑтановити біт.\n" -"Права кнопка: знÑти біт.\n" +"Вибрати поточну редаговану вкладену плитку.\n" "Клацніть на іншій плитці, щоб редагувати Ñ—Ñ—." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Видалити точки" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" -"Вибрати поточну редаговану вкладену плитку.\n" +"Ліва кнопка: вÑтановити біт.\n" +"Права кнопка: знÑти біт.\n" "Клацніть на іншій плитці, щоб редагувати Ñ—Ñ—." #: editor/plugins/tile_set_editor_plugin.cpp @@ -6748,11 +6762,21 @@ msgstr "" "Клацніть на іншій плитці, щоб редагувати Ñ—Ñ—." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"Позначте підплитку Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ Ñ—Ñ— пріоритетноÑÑ‚Ñ–.\n" +"Клацніть на іншій плитці, щоб редагувати Ñ—Ñ—." + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— влаÑтивоÑÑ‚Ñ– не можна змінювати." #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "Ðабір плитки" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6768,6 +6792,11 @@ msgid "Light" msgstr "Світло" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "Додати вузол…" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "Візуальний шейдер" @@ -6790,12 +6819,11 @@ msgstr "" #: editor/project_export.cpp msgid "Release" -msgstr "" +msgstr "ВипуÑк" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "ЕкÑпортуваннÑ" +msgstr "ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑього" #: editor/project_export.cpp msgid "Presets" @@ -6807,8 +6835,8 @@ msgstr "Додати..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "ЕкÑпортувати проект" +msgid "Export Path" +msgstr "ШлÑÑ… екÑпорту:" #: editor/project_export.cpp msgid "Resources" @@ -6873,14 +6901,12 @@ msgid "Export PCK/Zip" msgstr "ЕкÑпортувати PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Режим екÑпортуваннÑ:" +msgstr "Режим екÑпортуваннÑ?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "ЕкÑпортуваннÑ" +msgstr "ЕкÑпортувати уÑе" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7569,7 +7595,6 @@ msgid "Step" msgstr "Крок" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" msgstr "Величина, на Ñку збільшуєтьÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ° Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ вузла" @@ -7578,7 +7603,6 @@ msgid "Padding" msgstr "ФаÑка" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." @@ -7727,6 +7751,8 @@ msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" +"Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Â«editable_instance» призведе до Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… значень Ð´Ð»Ñ " +"уÑÑ–Ñ… влаÑтивоÑтей вузла." #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7801,9 +7827,8 @@ msgid "Clear Inheritance" msgstr "УÑунути уÑпадкуваннÑ" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "Відкрити онлайнову документацію Godot" +msgstr "Відкрити документацію" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7818,9 +7843,8 @@ msgid "Change Type" msgstr "Змінити тип" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" -msgstr "Відкрити Ñценарій" +msgstr "Розширити Ñкрипт" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" @@ -7908,7 +7932,7 @@ msgstr "" #: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp msgid "Open Script" -msgstr "Відкрити Ñценарій" +msgstr "Відкрити Ñкрипт" #: editor/scene_tree_editor.cpp msgid "" @@ -7983,9 +8007,8 @@ msgid "Path is empty" msgstr "Порожній шлÑÑ…" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Спрайт порожній!" +msgstr "Ðазва файла Ñ” порожньою" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -8076,9 +8099,8 @@ msgid "Bytes:" msgstr "Байтів:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "СтоÑувати кадри" +msgstr "ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтека" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8305,7 +8327,8 @@ msgid "GDNative" msgstr "GD Native" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "аргумент кроку дорівнює нулеві!" #: modules/gdscript/gdscript_functions.cpp @@ -8528,7 +8551,7 @@ msgstr "Кінець траÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтека Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŒÐ¾ #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "Запекти NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8912,12 +8935,11 @@ msgstr "Шукати VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Отримати %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "Ð’Ñтановити " +msgstr "Ð’Ñтановити %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -9015,6 +9037,8 @@ msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ CPUParticles2D потребує викориÑÑ‚Ð°Ð½Ð½Ñ CanvasItemMaterial із " +"увімкненим параметром «ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñток»." #: scene/2d/light_2d.cpp msgid "" @@ -9072,6 +9096,8 @@ msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." msgstr "" +"ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ Particles2D потребує викориÑÑ‚Ð°Ð½Ð½Ñ CanvasItemMaterial із увімкненим " +"параметром «ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñток»." #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9216,16 +9242,16 @@ msgstr "" "лаÑка, Ñтворіть реÑÑƒÑ€Ñ Ñ„Ð¾Ñ€Ð¼Ð¸ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ елемента!" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "" -"Ðічого не видно, оÑкільки Ñітки не було пов'Ñзано із проходами малюваннÑ." +msgid "Nothing is visible because no mesh has been assigned." +msgstr "Ðічого не видно, оÑкільки не призначено Ñітки." #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." msgstr "" +"ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ CPUParticles потребує викориÑÑ‚Ð°Ð½Ð½Ñ SpatialMaterial із увімкненим " +"параметром «ЧаÑтки дошки»." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9234,8 +9260,8 @@ msgstr "Побудова Ñітки" #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" -"РеÑÑƒÑ€Ñ Ðавігаційна Ñітка повинен бути вÑтановлений або Ñтворений Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ " -"цього вузла." +"Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ цього вузла Ñлід вÑтановити або Ñтворити реÑÑƒÑ€Ñ Â«Ðавігаційна " +"Ñітка»." #: scene/3d/navigation_mesh.cpp msgid "" @@ -9256,20 +9282,24 @@ msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." msgstr "" +"ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñток потребує викориÑÑ‚Ð°Ð½Ð½Ñ SpatialMaterial із увімкненим " +"параметром «ЧаÑтки дошки»." #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D працюватиме лише Ñк дочірній елемент вузла Path2D." +msgstr "PathFollow працюватиме лише Ñк дочірній елемент вузла Path." #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D працюватиме лише Ñк дочірній елемент вузла Path2D." +msgstr "OrientedPathFollow працюватиме лише Ñк дочірній елемент вузла Path." #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" +"OrientedPathFollow потребує Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ñ–Ð² у його батьківÑькому Path." #: scene/3d/physics_body.cpp msgid "" @@ -9312,7 +9342,6 @@ msgid "This body will be ignored until you set a mesh" msgstr "Це тіло буде проігноровано, аж доки ви не вÑтановите Ñітку" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" @@ -9374,6 +9403,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "Кореневий елемент AnimationPlayer не Ñ” коректним вузлом." +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw (Ñирий) режим" @@ -9390,6 +9423,10 @@ msgstr "Увага!" msgid "Please Confirm..." msgstr "Будь лаÑка, підтвердьте..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9402,7 +9439,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "Якщо exp_edit має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ true, min_value має бути > 0." #: scene/gui/scroll_container.cpp msgid "" @@ -9459,10 +9496,6 @@ msgstr "Ðекоректний розмір шрифту." msgid "Input" msgstr "Вхідні дані" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Ðемає" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "Ðекоректне джерело програми побудови тіней." @@ -9479,6 +9512,59 @@ msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ñ€Ñ–Ð´Ð½Ð¾Ð³Ð¾." msgid "Varyings can only be assigned in vertex function." msgstr "Змінні величини можна пов'Ñзувати лише із функцією вузлів." +#~ msgid "Create Poly" +#~ msgstr "Створити полігон" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ полігону з нулÑ" + +#~ msgid "Zoom out" +#~ msgstr "Зменшити" + +#~ msgid "Zoom in" +#~ msgstr "Збільшити" + +#~ msgid "Create Poly3D" +#~ msgstr "Створити полігон3D" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "Цей вузол не має реÑурÑу OccluderPolygon2D.\n" +#~ "Створити Ñ– призначити?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ñнуючого полігону:" + +#~ msgid "LMB: Move Point." +#~ msgstr "ЛКМ: ПереміÑтити точку." + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "CTRL+ЛКМ: Розділити Ñегмент." + +#~ msgid "RMB: Erase Point." +#~ msgstr "ПКМ: Стерти точку." + +#~ msgid "New TextFile" +#~ msgstr "Ðовий текÑтовий файл" + +#~ msgid "Save Theme As" +#~ msgstr "Зберегти тему Ñк" + +#~ msgid "<None>" +#~ msgstr "<Ðемає>" + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "Виберіть підплитку Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ñк піктограми. Її також буде " +#~ "викориÑтано Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ñ… прив'Ñзок у режимі автоплитки." + +#~ msgid "Zoom:" +#~ msgstr "МаÑштаб:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Ви Ñправді хочете вилучити уÑÑ– з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñигналу \"" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index eb509e1a82..757439de6b 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -8,15 +8,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2016-07-01 05:14+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:44+0100\n" "Last-Translator: Muhammad Ali <ali@codeonion.com>\n" "Language-Team: Urdu (Pakistan) <https://hosted.weblate.org/projects/godot-" "engine/godot/ur_PK/>\n" "Language: ur_PK\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.7-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -254,7 +256,6 @@ msgstr "" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -523,15 +524,19 @@ msgstr "" msgid "Selection Only" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "" @@ -540,7 +545,7 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -msgid "Zoom:" +msgid "Font Size:" msgstr "" #: editor/code_editor.cpp @@ -700,8 +705,8 @@ msgid "Recent:" msgstr "" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "" @@ -748,8 +753,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1206,8 +1210,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "" @@ -1673,6 +1676,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2071,7 +2080,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2095,7 +2104,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2507,6 +2516,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2523,8 +2538,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "New Script" msgstr "سب سکریپشن بنائیں" @@ -2943,7 +2957,7 @@ msgstr "" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "سب سکریپشن بنائیں" @@ -3067,7 +3081,7 @@ msgid "Group name already exists." msgstr "" #: editor/groups_editor.cpp -msgid "invalid Group name." +msgid "Invalid group name." msgstr "" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3314,45 +3328,47 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "سب سکریپشن بنائیں" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "سب سکریپشن بنائیں" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr ".تمام کا انتخاب" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr ".تمام کا انتخاب" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" +msgid "Erase points." msgstr ".تمام کا انتخاب" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3397,17 +3413,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr ".تمام کا انتخاب" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr ".تمام کا انتخاب" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3483,7 +3488,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4020,7 +4024,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4173,15 +4177,15 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4440,7 +4444,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4545,35 +4558,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -4941,6 +4928,10 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -4968,6 +4959,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -4983,11 +4978,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5048,6 +5038,10 @@ msgstr ".تمام کا انتخاب" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5059,7 +5053,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5100,7 +5100,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5125,12 +5134,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "سب سکریپشن بنائیں" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr ".تمام کا انتخاب" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5157,19 +5162,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5307,19 +5312,19 @@ msgid "Error saving file!" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +msgid "Error while saving theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +msgid "Error Saving" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +msgid "Error importing theme." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +msgid "Error Importing" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5340,6 +5345,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5381,7 +5394,7 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" +msgid "Open..." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5410,15 +5423,15 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" +msgid "Import Theme..." msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5527,6 +5540,10 @@ msgstr "" msgid "Go to Function" msgstr ".تمام کا انتخاب" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5559,10 +5576,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6259,11 +6272,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6504,12 +6522,12 @@ msgid "Clear transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr ".تمام کا انتخاب" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6521,13 +6539,33 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr ".تمام کا انتخاب" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6557,15 +6595,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr ".تمام کا انتخاب" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr ".تمام کا انتخاب" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6583,11 +6631,17 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6603,6 +6657,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6639,7 +6697,7 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" +msgid "Export Path" msgstr "" #: editor/project_export.cpp @@ -8102,7 +8160,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "سٹیپ Ú©Û’ ارگمنٹس سÙر Ûیں!" #: modules/gdscript/gdscript_functions.cpp @@ -8955,7 +9014,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -8998,7 +9057,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9086,6 +9147,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9102,6 +9167,10 @@ msgstr "" msgid "Please Confirm..." msgstr "" +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9158,10 +9227,6 @@ msgstr "" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 950964a00c..40496c80b5 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -11,15 +11,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-10-05 02:39+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:44+0100\n" "Last-Translator: 01lifeleft <01lifeleft@gmail.com>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/godot-engine/" "godot/vi/>\n" "Language: vi\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.2-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -263,7 +265,6 @@ msgstr "Tạo %d track má»›i và chèn key?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -540,15 +541,19 @@ msgstr "Thay thế tất cả" msgid "Selection Only" msgstr "Chỉ lá»±a chá»n" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "Phóng to" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "Thu nhá»" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "Äặt lại phóng" @@ -557,9 +562,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "Phóng to" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -727,8 +731,8 @@ msgid "Recent:" msgstr "Gần đây:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "Tìm kiếm:" @@ -776,8 +780,7 @@ msgid "Resource" msgstr "" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "" @@ -1229,8 +1232,7 @@ msgid "Node Name:" msgstr "Tên Node:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "Tên" @@ -1705,6 +1707,12 @@ msgstr "" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2110,7 +2118,7 @@ msgid "Undo" msgstr "" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "" @@ -2134,7 +2142,7 @@ msgstr "" msgid "Export" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2549,6 +2557,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2565,8 +2579,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -2982,7 +2995,7 @@ msgstr "Nhân đôi..." msgid "Move To..." msgstr "Di chuyển đến..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "Tạo Script" @@ -3123,7 +3136,7 @@ msgstr "Lá»–I: Tên animation trùng lặp!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "KÃch thÆ°á»›c font không hợp lệ." #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3374,44 +3387,45 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "Tạo" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "Tạo" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +msgid "Remove Polygon And Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "Tạo Script" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3456,16 +3470,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "Tạo Script" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3543,7 +3547,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4092,7 +4095,7 @@ msgstr "Tất cả" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "" @@ -4241,21 +4244,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "Thu nhá»" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "Thu nhá»" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "Phóng to" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4511,7 +4512,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "Tạo" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4613,35 +4623,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5009,6 +4993,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "Sá»a Node Curve" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5036,6 +5025,10 @@ msgid "Click: Add Point" msgstr "Nhấp: Tạo Point" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "Nhấp chuá»™t phải: Xóa Point" @@ -5051,11 +5044,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "Xóa Point" @@ -5112,6 +5100,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5123,7 +5115,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5165,7 +5163,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "Tạo" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5190,12 +5197,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "Tạo" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "Di chuyển đến..." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5222,20 +5225,20 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "Chá»n má»™t Folder để Quét" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5374,20 +5377,24 @@ msgid "Error saving file!" msgstr "Lá»—i tải font." #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "Lá»—i khi lÆ°u scene." #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "Lá»—i di chuyển:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "Lá»—i khi lÆ°u scene." #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "Lá»—i di chuyển:" #: editor/plugins/script_editor_plugin.cpp msgid "New TextFile..." @@ -5408,6 +5415,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5448,8 +5463,9 @@ msgid "File" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "" +#, fuzzy +msgid "Open..." +msgstr "Mở" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5478,6 +5494,10 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Import Theme..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "" @@ -5486,10 +5506,6 @@ msgid "Save Theme" msgstr "LÆ°u Theme" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "LÆ°u Theme thà nh" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "Äóng Docs" @@ -5596,6 +5612,10 @@ msgstr "" msgid "Go to Function" msgstr "Thêm Hà m" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5628,10 +5648,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6327,14 +6343,19 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "Snap Mode:" +msgid "Set Margin" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "Không có" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" msgstr "" @@ -6571,11 +6592,13 @@ msgid "Clear transform" msgstr "Äổi Transform Animation" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "Chèn Texture(s) và o TileSet" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "Xóa Texture hiện tại từ TileSet" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6587,13 +6610,33 @@ msgid "Merge from Scene" msgstr "Gá»™p từ Scene" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Paste bitmask." +msgstr "Dán Animation" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "Tạo" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6623,15 +6666,25 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "Xoá lá»±a chá»n" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "Tạo" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "" @@ -6649,13 +6702,20 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "This property can't be changed." +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "This property can't be changed." msgstr "" +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "TileSet" +msgstr "Xuất Tile Set" + #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vertex" msgstr "" @@ -6669,6 +6729,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6705,8 +6769,9 @@ msgid "Add..." msgstr "" #: editor/project_export.cpp -msgid "Export Path:" -msgstr "" +#, fuzzy +msgid "Export Path" +msgstr "Xuất Tile Set" #: editor/project_export.cpp msgid "Resources" @@ -8165,7 +8230,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9012,7 +9077,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9055,7 +9120,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9144,6 +9211,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9160,6 +9231,10 @@ msgstr "Cảnh báo!" msgid "Please Confirm..." msgstr "Xin hãy xác nháºn..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9219,10 +9294,6 @@ msgstr "KÃch thÆ°á»›c font không hợp lệ." msgid "Input" msgstr "Nháºp" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "Không có" - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "nguồn vô hiệu cho shader." @@ -9239,6 +9310,21 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "Thu nhá»" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "Phóng to" + +#~ msgid "Save Theme As" +#~ msgstr "LÆ°u Theme thà nh" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "Phóng to" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "Bạn có chắc muốn xóa bá» tất cả kết nối từ \"" @@ -9294,9 +9380,6 @@ msgstr "" #~ msgid "Anim Track Change Interpolation" #~ msgstr "Äổi phép ná»™i suy Anim Track" -#~ msgid "Edit Node Curve" -#~ msgstr "Sá»a Node Curve" - #~ msgid "Anim Add Key" #~ msgstr "Thêm Key Anim" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 169c31c1c3..681ab90e27 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -13,7 +13,7 @@ # Geequlim <geequlim@gmail.com>, 2016-2018. # jie Shi <meishijiemeimeimei@gmail.com>, 2018. # Jingtian Pan <panjingtian@126.com>, 2018. -# lalalaring <783482203@qq.com>, 2017. +# lalalaring <783482203@qq.com>, 2017, 2018. # Luo Jun <vipsbpig@gmail.com>, 2016-2017, 2018. # oberon-tonya <360119124@qq.com>, 2016. # plumsky <x-wolf@163.com>, 2018. @@ -34,12 +34,14 @@ # 刘庆文 <liuqingwen@163.com>, 2018. # Haowen Liu <liu.haowen.andy@gmail.com>, 2018. # tangdou1 <1093505442@qq.com>, 2018. +# yzt <834950797@qq.com>, 2018. +# DKLost <514dklost@gmail.com>, 2018. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2018-11-26 16:10+0000\n" -"Last-Translator: Luo Jun <vipsbpig@gmail.com>\n" +"PO-Revision-Date: 2018-12-13 14:44+0100\n" +"Last-Translator: tangdou1 <1093505442@qq.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" "Language: zh_CN\n" @@ -47,7 +49,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -228,7 +230,7 @@ msgstr "触å‘器" #: editor/animation_track_editor.cpp msgid "Capture" -msgstr "æ•èŽ·" +msgstr "截图" #: editor/animation_track_editor.cpp msgid "Nearest" @@ -280,7 +282,6 @@ msgstr "创建%d个新轨é“并æ’入关键帧?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -425,14 +426,12 @@ msgid "Delete Selection" msgstr "åˆ é™¤å·²é€‰ä¸é¡¹" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" msgstr "å‰å¾€ä¸‹ä¸€æ¥" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "å‰å¾€ä¸Šä¸€æ¥" +msgstr "返回上一æ¥" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -554,15 +553,19 @@ msgstr "全部替æ¢" msgid "Selection Only" msgstr "仅选ä¸" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "放大" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "缩å°" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "é‡ç½®ç¼©æ”¾" @@ -571,8 +574,8 @@ msgid "Warnings:" msgstr "è¦å‘Šï¼š" #: editor/code_editor.cpp -msgid "Zoom:" -msgstr "缩放:" +msgid "Font Size:" +msgstr "å—体大å°:" #: editor/code_editor.cpp msgid "Line:" @@ -683,9 +686,8 @@ msgid "Edit Connection: " msgstr "编辑广æ’订阅: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "ä½ ç¡®å®šè¦ä»Žè¯¥å¹¿æ’ä¿¡å·ä¸ç§»é™¤æ‰€æœ‰è¿žæŽ¥å—?" +msgstr "ä½ ç¡®å®šè¦ä»Žä¿¡å· “%s†ä¸ç§»é™¤æ‰€æœ‰è¿žæŽ¥å—?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -730,8 +732,8 @@ msgid "Recent:" msgstr "最近文件:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "æœç´¢:" @@ -778,8 +780,7 @@ msgid "Resource" msgstr "资æº" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "路径" @@ -833,9 +834,8 @@ msgid "Error loading:" msgstr "åŠ è½½å‡ºé”™:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "åŠ è½½åœºæ™¯å¤±è´¥ï¼Œæ‰¾ä¸åˆ°ä»¥ä¸‹ä¾èµ–项目:" +msgstr "由于缺少ä¾èµ–项, åŠ è½½å¤±è´¥ï¼š" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -1234,8 +1234,7 @@ msgid "Node Name:" msgstr "节点å称:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "å称" @@ -1313,24 +1312,21 @@ msgid "File Exists, Overwrite?" msgstr "文件已å˜åœ¨ï¼Œç¡®å®šè¦è¦†ç›–它å—?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "选择当å‰ç›®å½•" +msgstr "选择æ¤æ–‡ä»¶å¤¹" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" msgstr "æ‹·è´è·¯å¾„" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "在资æºç®¡ç†å™¨ä¸æ‰“å¼€" +msgstr "在文件管ç†å™¨ä¸æ‰“å¼€" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #: editor/project_manager.cpp -#, fuzzy msgid "Show in File Manager" -msgstr "在资æºç®¡ç†å™¨ä¸æ‰“å¼€" +msgstr "在文件管ç†å™¨ä¸æ˜¾ç¤º" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1354,7 +1350,7 @@ msgstr "打开å•ä¸ªæ–‡ä»¶" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open File(s)" -msgstr "打开文件" +msgstr "打开一个或多个文件" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Open a Directory" @@ -1473,19 +1469,16 @@ msgid "Methods" msgstr "方法" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "方法" +msgstr "方法:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "属性" +msgstr "主题属性" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "属性:" +msgstr "Theme Properties:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1512,14 +1505,12 @@ msgid "Constants:" msgstr "常é‡:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "æè¿°" +msgstr "类说明" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "æè¿°:" +msgstr "类说明:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1535,14 +1526,12 @@ msgstr "" "url][/color]çš„æ–¹å¼å¸®åŠ©æˆ‘们完善文档。" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "属性æ述:" +msgstr "属性说明" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "属性æ述:" +msgstr "属性说明:" #: editor/editor_help.cpp msgid "" @@ -1553,14 +1542,12 @@ msgstr "" "[/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "方法æè¿°:" +msgstr "方法说明" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "方法æè¿°:" +msgstr "方法说明:" #: editor/editor_help.cpp msgid "" @@ -1576,49 +1563,40 @@ msgid "Search Help" msgstr "æœç´¢å¸®åŠ©" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "显示法线" +msgstr "全部显示" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "类型" +msgstr "ä»…é™ç±»" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "方法" +msgstr "仅方法" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "ä¿¡å·" +msgstr "ä»…ä¿¡å·" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "常é‡" +msgstr "仅常é‡" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "属性" +msgstr "仅属性" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "属性" +msgstr "仅主题属性" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "æˆå‘˜" +msgstr "æˆå‘˜ç±»åž‹" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "ç±»:" +msgstr "ç±»" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1717,13 +1695,21 @@ msgstr "æ¤æ“作必须在打开一个场景åŽæ‰èƒ½æ‰§è¡Œã€‚" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" +"æ— æ³•ä¿å˜æ¤åœºæ™¯ï¼Œå› 为包å«å¾ªçŽ¯å®žä¾‹åŒ–。\n" +"请解决它,然åŽå°è¯•å†æ¬¡ä¿å˜ã€‚" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "æ— æ³•ä¿å˜åœºæ™¯ï¼Œä¾èµ–项(实例或基类)验è¯å¤±è´¥ã€‚" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "æ— æ³•è¦†ç›–ä»å¤„于打开状æ€çš„场景!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1967,11 +1953,10 @@ msgid "Unable to load addon script from path: '%s'." msgstr "æ— æ³•ä»Žè·¯å¾„ä¸åŠ è½½æ’件脚本: \"%s\"。" #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." -msgstr "æ— æ³•ä»Žè·¯å¾„åŠ è½½æ’件脚本: \"%s\" 脚本ä¸åœ¨å·¥å…·æ¨¡å¼ä¸‹ã€‚" +msgstr "æ— æ³•ä»Žè·¯å¾„åŠ è½½æ’件脚本: ‘%s’ 脚本看上去似乎有代ç 错误,请检查其è¯æ³•ã€‚" #: editor/editor_node.cpp msgid "" @@ -2020,9 +2005,8 @@ 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 msgid "Play This Scene" @@ -2050,7 +2034,7 @@ msgstr "%d 个文件未展示" #: editor/editor_node.cpp msgid "Dock Position" -msgstr "åœé 区ä½ç½®" +msgstr "é¢æ¿ä½ç½®" #: editor/editor_node.cpp msgid "Distraction Free Mode" @@ -2105,7 +2089,6 @@ msgid "Save Scene" msgstr "ä¿å˜åœºæ™¯" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "ä¿å˜æ‰€æœ‰åœºæ™¯" @@ -2135,7 +2118,7 @@ msgid "Undo" msgstr "撤销" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "é‡åš" @@ -2159,9 +2142,9 @@ msgstr "项目设置" msgid "Export" msgstr "导出" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" -msgstr "工具(tools)" +msgstr "工具" #: editor/editor_node.cpp msgid "Open Project Data Folder" @@ -2579,9 +2562,17 @@ msgstr "分é……。" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"æ— æ³•åœ¨ä¿å˜ä¸ºæ–‡ä»¶çš„资æºä¸Šåˆ›å»ºè§†å›¾çº¹ç†ã€‚\n" +"资æºéœ€è¦å±žäºŽåœºæ™¯ã€‚" #: editor/editor_properties.cpp msgid "" @@ -2590,13 +2581,14 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"æ— æ³•åœ¨æ¤èµ„æºä¸Šåˆ›å»ºè§†å›¾çº¹ç†, å› ä¸ºå®ƒæœªè®¾ç½®ä¸ºæœ¬åœ°åˆ°åœºæ™¯ã€‚\n" +"请打开上é¢çš„ `本地到场景` 属性 (以åŠåŒ…å«å®ƒçš„所有资æºåˆ°èŠ‚点)。" #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" msgstr "选择1个视å£" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "新建脚本" @@ -2771,7 +2763,7 @@ msgstr "导入:" msgid "" "No download links found for this version. Direct download is only available " "for official releases." -msgstr "当å‰ç‰ˆæœ¬æ²¡æœ‰ä¸‹è½½é“¾æŽ¥ã€‚仅有官方æ£å¼ç‰ˆæ供直链下载。" +msgstr "没有找到这个版本的下载链接。直接下载åªé€‚用于æ£å¼ç‰ˆæœ¬ã€‚" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -2900,9 +2892,8 @@ msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" msgstr "æ— æ³•ä»¥å¯å†™æ–¹å¼æ‰“å¼€file_type_cache.cchï¼" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "收è—:" +msgstr "收è—夹" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -2985,14 +2976,12 @@ msgid "Instance" msgstr "创建实例节点" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Add to favorites" -msgstr "收è—:" +msgstr "æ·»åŠ åˆ°æ”¶è—夹" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Remove from favorites" -msgstr "从分组ä¸ç§»é™¤" +msgstr "从收è—夹ä¸åˆ 除" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3014,7 +3003,7 @@ msgstr "æ‹·è´..." msgid "Move To..." msgstr "移动..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "New Script..." msgstr "新建脚本…" @@ -3023,14 +3012,12 @@ msgid "New Resource..." msgstr "新建资æºâ€¦" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Expand All" -msgstr "展开所有" +msgstr "全部展开" #: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Collapse All" -msgstr "收起所有" +msgstr "全部折å " #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3052,9 +3039,8 @@ msgid "Re-Scan Filesystem" msgstr "é‡æ–°æ‰«æ文件系统" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Toggle split mode" -msgstr "切æ¢æ¨¡å¼" +msgstr "切æ¢æ‹†åˆ†æ¨¡å¼" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3089,24 +3075,20 @@ msgid "Create Script" msgstr "创建脚本" #: editor/find_in_files.cpp -#, fuzzy msgid "Find in Files" msgstr "在文件ä¸æŸ¥æ‰¾" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "查找: " +msgstr "查找:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "文件夹: " +msgstr "文件夹:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "ç›é€‰" +msgstr "ç›é€‰ï¼š" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3146,7 +3128,8 @@ msgid "Group name already exists." msgstr "分组å称已å˜åœ¨ã€‚" #: editor/groups_editor.cpp -msgid "invalid Group name." +#, fuzzy +msgid "Invalid group name." msgstr "éžæ³•åˆ†ç»„å。" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3207,7 +3190,7 @@ 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" @@ -3283,14 +3266,12 @@ msgid "Failed to load resource." msgstr "åŠ è½½èµ„æºå¤±è´¥ã€‚" #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" msgstr "展开所有属性" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" -msgstr "收起所有属性" +msgstr "折å 所有属性" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -3394,14 +3375,13 @@ msgid "Activate now?" msgstr "现在激活å—?" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" msgstr "创建多边形" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" +#, fuzzy +msgid "Edit Polygon" msgstr "编辑多边形" #: editor/plugins/abstract_polygon_2d_editor.cpp @@ -3409,25 +3389,27 @@ msgid "Insert Point" msgstr "æ’入点" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +#, fuzzy +msgid "Edit Polygon (Remove Point)" msgstr "编辑多边形(移除顶点)" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" +#, fuzzy +msgid "Remove Polygon And Point" msgstr "移除多边形åŠé¡¶ç‚¹" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "创建一个新的多边形" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "创建点。" #: editor/plugins/abstract_polygon_2d_editor.cpp +#, fuzzy msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" "编辑多边形:\n" "LMB: 移动点。\n" @@ -3435,8 +3417,9 @@ msgstr "" "人民å¸ï¼š 擦除点。" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Delete points" -msgstr "åˆ é™¤ç‚¹" +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "擦除点。" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3482,15 +3465,6 @@ msgstr "选择并移动点,使用 RMB 创建点。" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Create points." -msgstr "创建点。" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -msgid "Erase points." -msgstr "擦除点。" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "点" @@ -3566,7 +3540,6 @@ msgid "" msgstr "动画æ’放器没有åˆæ³•çš„æ ¹èŠ‚ç‚¹è·¯å¾„ï¼Œå› æ¤æ— 法获å–轨é“å称。" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "æ·»åŠ èŠ‚ç‚¹.." @@ -4101,7 +4074,7 @@ msgstr "全部" msgid "Plugins" msgstr "æ’件" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "排åº:" @@ -4228,9 +4201,8 @@ msgid "Resize CanvasItem" msgstr "调整 CanvasItem 尺寸" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "旋转 CanvasItem" +msgstr "缩放包å«é¡¹" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" @@ -4253,18 +4225,19 @@ msgid "Paste Pose" msgstr "粘贴姿势" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom out" -msgstr "缩å°" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom reset" +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +#, fuzzy +msgid "Zoom Reset" msgstr "é‡ç½®ç¼©æ”¾" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Zoom in" -msgstr "放大" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "选择模å¼" @@ -4293,9 +4266,8 @@ msgid "Rotate Mode" msgstr "旋转模å¼" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "缩放模å¼ï¼ˆR)" +msgstr "缩放模å¼" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4392,9 +4364,8 @@ msgid "Restores the object's children's ability to be selected." msgstr "æ¢å¤èŠ‚点的åå™èƒ½å¤Ÿè¢«é€‰ä¸ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "骨架" +msgstr "骨架选项" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" @@ -4448,7 +4419,7 @@ msgstr "显示视图窗å£" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "显示组和é”å®šå›¾æ ‡" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4521,8 +4492,17 @@ msgstr "" "拖放+ Alt:更改节点类型" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" -msgstr "创建 Poly3D (多边型3D)" +#, fuzzy +msgid "Create Polygon3D" +msgstr "创建多边形" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "编辑多边形" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "编辑多边形(移除顶点)" #: editor/plugins/collision_shape_2d_editor_plugin.cpp msgid "Set Handle" @@ -4623,37 +4603,9 @@ msgid "Item List Editor" msgstr "列表编辑器" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" -"在这个节点上没有 OccluderPolygon2D 资æºã€‚\n" -"创建和分é…一个å—?" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "æ·»åŠ é®å…‰å¤šè¾¹å½¢" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "从头开始创建一个新的多边形。" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "编辑已å˜åœ¨çš„多边形:" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "é¼ æ ‡å·¦é”®:移动点。" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "Ctrl+é¼ æ ‡å·¦é”®:分割视图å—。" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "é¼ æ ‡å³é”®:移除点。" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "Mesh为空ï¼" @@ -4889,7 +4841,6 @@ msgid "Create Navigation Polygon" msgstr "创建导航多边形" #: editor/plugins/particles_2d_editor_plugin.cpp -#, fuzzy msgid "Generating Visibility Rect" msgstr "生æˆå¯è§†åŒ–区域" @@ -5022,6 +4973,11 @@ msgid "Add Point to Curve" msgstr "å‘æ›²çº¿æ·»åŠ é¡¶ç‚¹" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "å…³é—曲线" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "在曲线ä¸ç§»åŠ¨é¡¶ç‚¹" @@ -5049,6 +5005,11 @@ msgid "Click: Add Point" msgstr "é¼ æ ‡å·¦é”®:æ·»åŠ ç‚¹" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Left Click: Split Segment (in curve)" +msgstr "拆分(曲线)" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "é¼ æ ‡å³é”®:åˆ é™¤ç‚¹" @@ -5064,11 +5025,6 @@ msgstr "æ·»åŠ ç‚¹ï¼ˆåœ¨ç©ºç™½å¤„ï¼‰" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "拆分(曲线)" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "åˆ é™¤é¡¶ç‚¹" @@ -5125,6 +5081,10 @@ msgstr "移除曲线外控制点" msgid "Remove In-Control Point" msgstr "移除曲线内控制点" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "拆分(曲线)" + #: editor/plugins/physical_bone_plugin.cpp msgid "Move joint" msgstr "移动关节" @@ -5135,10 +5095,18 @@ msgid "" msgstr "Polygon2D 的骨架属性并没有指å‘一个 Skeleton2D 节点" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +#, fuzzy +msgid "Sync Bones" msgstr "åŒæ¥éª¨éª¼" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "æ¤èŠ‚点没有贴图,请先为它设置贴图åŽå†è¯•ã€‚" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" msgstr "创建UV贴图" @@ -5175,10 +5143,21 @@ msgid "Transform UV Map" msgstr "å˜æ¢UV贴图" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "å˜æ¢ç±»åž‹" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Paint Bone Weights" msgstr "绘制骨骼æƒé‡" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "2D多边形UV编辑器" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "2D多边形UV编辑器" @@ -5199,16 +5178,13 @@ msgid "Bones" msgstr "骨骼" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Create Polygon" -msgstr "创建多边形" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" +#, fuzzy +msgid "Move Points" msgstr "移动点" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" -msgstr "Ctrl:旋转" +msgstr "Ctrl:旋转" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Shift: Move All" @@ -5231,19 +5207,23 @@ msgid "Scale Polygon" msgstr "缩放多边形" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +#, fuzzy +msgid "Connect two points to make a split." msgstr "连接两个点创建一个拆分" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +#, fuzzy +msgid "Select a split to erase it." msgstr "选择一个拆分以擦除它" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +#, fuzzy +msgid "Paint weights with specified intensity." msgstr "使用指定的强度进行æƒé‡ç»˜åˆ¶" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +#, fuzzy +msgid "Unpaint weights with specified intensity." msgstr "使用指定强度清除æƒé‡ç»˜åˆ¶" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5369,9 +5349,8 @@ msgid "Error writing TextFile:" msgstr "写入文本文件时出错:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error: could not load file." -msgstr "é”™è¯¯ï¼Œæ— æ³•åŠ è½½æ–‡ä»¶ã€‚" +msgstr "é”™è¯¯ï¼šæ— æ³•åŠ è½½æ–‡ä»¶ã€‚" #: editor/plugins/script_editor_plugin.cpp msgid "Error could not load file." @@ -5382,19 +5361,23 @@ msgid "Error saving file!" msgstr "ä¿å˜æ–‡ä»¶æ—¶å‡ºé”™ï¼" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" +#, fuzzy +msgid "Error while saving theme." msgstr "ä¿å˜ä¸»é¢˜å‡ºé”™" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" +#, fuzzy +msgid "Error Saving" msgstr "ä¿å˜å‡ºé”™" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" +#, fuzzy +msgid "Error importing theme." msgstr "导入主题出错" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" +#, fuzzy +msgid "Error Importing" msgstr "导入出错" #: editor/plugins/script_editor_plugin.cpp @@ -5414,6 +5397,14 @@ msgid "Import Theme" msgstr "导入主题" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "ä¿å˜ä¸»é¢˜å‡ºé”™" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "ä¿å˜å‡ºé”™" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "主题å¦å˜ä¸º..." @@ -5454,8 +5445,9 @@ msgid "File" msgstr "文件" #: editor/plugins/script_editor_plugin.cpp -msgid "New TextFile" -msgstr "新建文本文件" +#, fuzzy +msgid "Open..." +msgstr "打开" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5470,7 +5462,6 @@ msgid "Copy Script Path" msgstr "æ‹·è´è„šæœ¬è·¯å¾„" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "åŽé€€" @@ -5484,6 +5475,11 @@ msgid "Theme" msgstr "主题" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy +msgid "Import Theme..." +msgstr "导入主题" + +#: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" msgstr "é‡æ–°åŠ 载主题" @@ -5492,10 +5488,6 @@ msgid "Save Theme" msgstr "ä¿å˜ä¸»é¢˜" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" -msgstr "主题å¦å˜ä¸º" - -#: editor/plugins/script_editor_plugin.cpp msgid "Close Docs" msgstr "å…³é—文档" @@ -5542,7 +5534,6 @@ msgid "Keep Debugger Open" msgstr "ä¿æŒè°ƒè¯•å™¨æ‰“å¼€" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" msgstr "使用外部编辑器进行调试" @@ -5587,7 +5578,6 @@ msgid "Debugger" msgstr "调试器" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" msgstr "æœç´¢ç»“æžœ" @@ -5600,9 +5590,12 @@ msgid "(ignore)" msgstr "(忽略)" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "å‰å¾€å‡½æ•°..." +msgstr "转到函数" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "æ ‡å‡†" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -5636,10 +5629,6 @@ msgstr "首å—æ¯å¤§å†™" msgid "Syntax Highlighter" msgstr "è¯æ³•é«˜äº®æ˜¾ç¤º" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "æ ‡å‡†" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5691,14 +5680,12 @@ msgid "Trim Trailing Whitespace" msgstr "修剪行åŽç©ºç™½" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Spaces" msgstr "å°†ç¼©è¿›è½¬ä¸ºç©ºæ ¼" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Convert Indent to Tabs" -msgstr "将缩进转为Tab" +msgstr "将缩进转为Tabs" #: editor/plugins/script_text_editor.cpp msgid "Auto Indent" @@ -5714,12 +5701,10 @@ msgid "Remove All Breakpoints" msgstr "移除所有æ–点" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "å‰å¾€ä¸‹ä¸€ä¸ªæ–点" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" msgstr "å‰å¾€ä¸Šä¸€ä¸ªæ–点" @@ -5728,19 +5713,16 @@ msgid "Find Previous" msgstr "查找上一项" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." msgstr "在文件ä¸æŸ¥æ‰¾..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." -msgstr "å‰å¾€å‡½æ•°..." +msgstr "转到函数..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." -msgstr "å‰å¾€è¡Œ..." +msgstr "转到行..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" @@ -5836,7 +5818,7 @@ msgstr "音调" #: editor/plugins/spatial_editor_plugin.cpp msgid "Yaw" -msgstr "" +msgstr "å航" #: editor/plugins/spatial_editor_plugin.cpp msgid "Objects Drawn" @@ -6003,7 +5985,6 @@ msgid "Freelook Speed Modifier" msgstr "自由视图速度调整" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" msgstr "é”定视角旋转" @@ -6339,11 +6320,17 @@ msgid "Set Region Rect" msgstr "设置纹ç†åŒºåŸŸ" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy +msgid "Set Margin" +msgstr "设置处ç†ç¨‹åº" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "å¸é™„模å¼:" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "æ— " #: editor/plugins/texture_region_editor_plugin.cpp @@ -6507,9 +6494,8 @@ msgid "Fix Invalid Tiles" msgstr "ä¿®å¤æ— 效的瓦片" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Cut Selection" -msgstr "å±…ä¸æ˜¾ç¤ºé€‰ä¸èŠ‚点" +msgstr "切割选择" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -6556,39 +6542,37 @@ msgid "Pick Tile" msgstr "é€‰æ‹©ç –å—(Tile)" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Copy Selection" -msgstr "移动选ä¸é¡¹" +msgstr "å¤åˆ¶é€‰æ‹©" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate left" -msgstr "旋转模å¼" +msgstr "å‘左旋转" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Rotate right" -msgstr "å‘å³ç§»åŠ¨" +msgstr "å‘å³æ—‹è½¬" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip horizontally" -msgstr "" +msgstr "水平翻转" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Flip vertically" -msgstr "" +msgstr "垂直翻转" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy msgid "Clear transform" -msgstr "å˜æ¢" +msgstr "清除å˜æ¢" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +#, fuzzy +msgid "Add Texture(s) to TileSet." msgstr "æ·»åŠ çº¹ç†åˆ°ç“¦ç‰‡é›†" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Remove current Texture from TileSet" +#, fuzzy +msgid "Remove selected Texture from TileSet." msgstr "从瓦片集ä¸åˆ 除当å‰çº¹ç†" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6600,18 +6584,38 @@ msgid "Merge from Scene" msgstr "从场景ä¸åˆå¹¶" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" -"请选择一个ååœ°ç –(sub-tile)ä½œä¸ºå›¾æ ‡ï¼Œæ¤å›¾æ ‡è¿˜ä¼šè¢«ç»‘å®šä¸ºæ— æ•ˆçš„åœ°ç –(autotile)。" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" -msgstr "显示瓦片的åå—ï¼ˆæŒ‰ä½ Alt 键)" +#, fuzzy +msgid "Paste bitmask." +msgstr "粘贴动画" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "擦除点。" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "从头开始创建一个新的多边形。" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "Display Tile Names (Hold Alt Key)" +msgstr "显示瓦片的åå—ï¼ˆæŒ‰ä½ Alt 键)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove selected texture and ALL TILES which use it?" msgstr "确定移除选ä¸çš„纹ç†ä»¥åŠã€æ‰€æœ‰ã€‘使用它的ã€ç“¦ç‰‡é›†ã€‘å—?" @@ -6628,9 +6632,8 @@ msgid "Merge from scene?" msgstr "确定è¦åˆå¹¶åœºæ™¯ï¼Ÿ" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr " æ–‡ä»¶æ²¡æœ‰è¢«æ·»åŠ ï¼Œå› ä¸ºå·²æ·»åŠ åœ¨åˆ—è¡¨ä¸ã€‚" +msgstr "%s æ–‡ä»¶æ²¡æœ‰è¢«æ·»åŠ ï¼Œå› ä¸ºå·²æ·»åŠ åœ¨åˆ—è¡¨ä¸ã€‚" #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6641,14 +6644,9 @@ msgstr "" "点击å¦ä¸€ä¸ªç“¦ç‰‡è¿›è¡Œç¼–辑。" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" -"Click on another Tile to edit it." -msgstr "" -"é¼ æ ‡å·¦é”®ï¼š å¯ç”¨æ¯”特。\n" -"é¼ æ ‡å³é”®ï¼š å…³é—比特。\n" -"点击å¦ä¸€ä¸ªç“¦ç‰‡è¿›è¡Œç¼–辑。" +#, fuzzy +msgid "Delete selected Rect." +msgstr "åˆ é™¤é€‰ä¸çš„文件?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -6659,6 +6657,22 @@ msgstr "" "点击选择å¦ä¸€ä¸ªç“¦ç‰‡è¿›è¡Œç¼–辑。" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "åˆ é™¤ç‚¹" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Click on another Tile to edit it." +msgstr "" +"é¼ æ ‡å·¦é”®ï¼š å¯ç”¨æ¯”特。\n" +"é¼ æ ‡å³é”®ï¼š å…³é—比特。\n" +"点击å¦ä¸€ä¸ªç“¦ç‰‡è¿›è¡Œç¼–辑。" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "" "Select sub-tile to use as icon, this will be also used on invalid autotile " "bindings.\n" @@ -6676,11 +6690,21 @@ msgstr "" "点击选择å¦ä¸€ä¸ªç“¦ç‰‡è¿›è¡Œç¼–辑。" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" +"选择并修改å瓦片的优先级。\n" +"点击选择å¦ä¸€ä¸ªç“¦ç‰‡è¿›è¡Œç¼–辑。" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "This property can't be changed." msgstr "ä¸èƒ½ä¿®æ”¹è¯¥å±žæ€§ã€‚" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +#, fuzzy +msgid "TileSet" msgstr "ç –å—集" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6696,6 +6720,11 @@ msgid "Light" msgstr "ç¯å…‰" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "æ·»åŠ èŠ‚ç‚¹.." + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "å¯è§†ç€è‰²å™¨" @@ -6716,14 +6745,12 @@ msgid "Export templates for this platform are missing/corrupted:" msgstr "没有æ¤å¹³å°çš„导出模æ¿:" #: editor/project_export.cpp -#, fuzzy msgid "Release" -msgstr "刚好释放" +msgstr "å‘è¡Œ" #: editor/project_export.cpp -#, fuzzy msgid "Exporting All" -msgstr "æ£åœ¨å¯¼å‡º %s" +msgstr "全部导出" #: editor/project_export.cpp msgid "Presets" @@ -6735,8 +6762,8 @@ msgstr "æ·»åŠ ..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" -msgstr "导出预设:" +msgid "Export Path" +msgstr "导出路径:" #: editor/project_export.cpp msgid "Resources" @@ -6797,14 +6824,12 @@ msgid "Export PCK/Zip" msgstr "导出 PCK/ZIP" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "导出模å¼:" +msgstr "导出模å¼ï¼Ÿ" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "导出" +msgstr "全部导出" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7482,16 +7507,14 @@ msgid "Step" msgstr "æ¥é•¿" #: editor/rename_dialog.cpp -#, fuzzy msgid "Amount by which counter is incremented for each node" msgstr "由计数器增é‡å¾—到的æ¯ä¸ªèŠ‚点的总é‡" #: editor/rename_dialog.cpp msgid "Padding" -msgstr "内边è·" +msgstr "å¡«å……" #: editor/rename_dialog.cpp -#, fuzzy msgid "" "Minimum number of digits for the counter.\n" "Missing digits are padded with leading zeros." @@ -7637,7 +7660,7 @@ msgstr "将新场景å¦å˜ä¸º..." msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." -msgstr "" +msgstr "ç¦ç”¨â€œå¯ç¼–辑实例â€å°†å¯¼è‡´èŠ‚点的所有属性æ¢å¤ä¸ºå…¶é»˜è®¤å€¼ã€‚" #: editor/scene_tree_dock.cpp msgid "Editable Children" @@ -7710,9 +7733,8 @@ msgid "Clear Inheritance" msgstr "清除继承" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Open documentation" -msgstr "打开Godot在线文档" +msgstr "打开Godot文档" #: editor/scene_tree_dock.cpp msgid "Delete Node(s)" @@ -7727,7 +7749,6 @@ msgid "Change Type" msgstr "更改类型" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Extend Script" msgstr "打开脚本" @@ -7890,9 +7911,8 @@ msgid "Path is empty" msgstr "文件路径为空" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Filename is empty" -msgstr "Sprite 是空的ï¼" +msgstr "文件å为空" #: editor/script_create_dialog.cpp msgid "Path is not local" @@ -7983,9 +8003,8 @@ msgid "Bytes:" msgstr "å—节:" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Stack Trace" -msgstr "å †æ ˆå¸§ï¼ˆStack Frames)" +msgstr "æ ˆè¿½è¸ª" #: editor/script_editor_debugger.cpp msgid "Pick one or more items from the list to display the graph." @@ -8212,7 +8231,8 @@ msgid "GDNative" msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "stepå‚数为0ï¼" #: modules/gdscript/gdscript_functions.cpp @@ -8433,7 +8453,7 @@ msgstr "å†…éƒ¨å¼‚å¸¸å †æ ˆè¿½æœ”ç»“æŸ" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "" +msgstr "烘焙导航网" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -8806,12 +8826,11 @@ msgstr "æœç´¢å¯è§†åŒ–脚本节点" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "得到 %s" #: modules/visual_script/visual_script_property_selector.cpp -#, fuzzy msgid "Set %s" -msgstr "设值 " +msgstr "设值 %s" #: platform/javascript/export/export.cpp msgid "Run in Browser" @@ -8903,7 +8922,7 @@ msgstr "形状资æºå¿…须是通过CollisionShape2D节点的shape属性创建的 msgid "" "CPUParticles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." -msgstr "" +msgstr "CPUParticles2D动画需è¦ä½¿ç”¨å¯ç”¨äº†â€œç²’å动画â€çš„CanvasItemMaterial。" #: scene/2d/light_2d.cpp msgid "" @@ -8951,7 +8970,7 @@ msgstr "ç²’åæè´¨æ²¡æœ‰æŒ‡å®šï¼Œè¯¥è¡Œä¸ºæ— æ•ˆã€‚" msgid "" "Particles2D animation requires the usage of a CanvasItemMaterial with " "\"Particles Animation\" enabled." -msgstr "" +msgstr "Particles2D 动画需è¦ä½¿ç”¨å¯ç”¨äº†â€œç²’å动画â€çš„CanvasItemMaterial。" #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." @@ -9083,15 +9102,14 @@ msgstr "" "æºï¼" #: scene/3d/cpu_particles.cpp -#, fuzzy -msgid "Nothing is visible because no mesh has not been assigned." -msgstr "ç²’åä¸å¯è§ï¼Œå› ä¸ºæ²¡æœ‰ç½‘æ ¼(meshe)指定到绘制通é“(draw passes)。" +msgid "Nothing is visible because no mesh has been assigned." +msgstr "æ— ç‰©å¯è§ï¼Œå› ä¸ºæ²¡æœ‰æŒ‡å®šç½‘æ ¼ã€‚" #: scene/3d/cpu_particles.cpp msgid "" "CPUParticles animation requires the usage of a SpatialMaterial with " "\"Billboard Particles\" enabled." -msgstr "" +msgstr "CPUParticles动画需è¦ä½¿ç”¨å¯åŠ¨äº†â€œBillboard Particlesâ€çš„SpatialMaterial。" #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -9117,21 +9135,23 @@ msgstr "ç²’åä¸å¯è§ï¼Œå› ä¸ºæ²¡æœ‰ç½‘æ ¼(meshe)指定到绘制通é“(draw pa msgid "" "Particles animation requires the usage of a SpatialMaterial with \"Billboard " "Particles\" enabled." -msgstr "" +msgstr "ç²’å动画需è¦ä½¿ç”¨å¯ç”¨äº†â€œBillboard Particlesâ€çš„SpatialMaterial。" #: scene/3d/path.cpp -#, fuzzy msgid "PathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D类型的节点åªæœ‰ä½œä¸ºPath2Dçš„å节点节æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" +msgstr "PathFollow类型的节点åªæœ‰ä½œä¸ºPath类型节点的å节点æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" #: scene/3d/path.cpp -#, fuzzy msgid "OrientedPathFollow only works when set as a child of a Path node." -msgstr "PathFollow2D类型的节点åªæœ‰ä½œä¸ºPath2Dçš„å节点节æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" +msgstr "" +"OrientedPathFollow 类型的节点åªæœ‰ä½œä¸ºPath类型节点的å节点æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." -msgstr "" +#, fuzzy +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." +msgstr "OrientedPathFollow 需è¦å†å…¶çˆ¶è·¯å¾„ä¸å¯ç”¨up vectors。" #: scene/3d/physics_body.cpp msgid "" @@ -9169,7 +9189,6 @@ msgid "This body will be ignored until you set a mesh" msgstr "这个物体将被忽略,除éžè®¾ç½®ä¸€ä¸ªç½‘æ ¼" #: scene/3d/soft_body.cpp -#, fuzzy msgid "" "Size changes to SoftBody will be overridden by the physics engine when " "running.\n" @@ -9230,6 +9249,10 @@ msgstr "动画æ’æ”¾å™¨çš„è·¯å¾„æ²¡æœ‰åŠ è½½ä¸€ä¸ª AnimationPlayer 节点。" msgid "AnimationPlayer root is not a valid node." msgstr "AnimationPlayer çš„æ ¹èŠ‚ç‚¹ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„节点。" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Raw 模å¼" @@ -9246,6 +9269,10 @@ msgstr "æ示ï¼" msgid "Please Confirm..." msgstr "请确认..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9257,7 +9284,7 @@ msgstr "" #: scene/gui/range.cpp msgid "If exp_edit is true min_value must be > 0." -msgstr "" +msgstr "如果exp_edit为true, 则min_value必须为>0。" #: scene/gui/scroll_container.cpp msgid "" @@ -9309,10 +9336,6 @@ msgstr "å—体大å°éžæ³•ã€‚" msgid "Input" msgstr "输入" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "æ— " - #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for shader." msgstr "éžæ³•çš„ç€è‰²å™¨æºã€‚" @@ -9329,6 +9352,59 @@ msgstr "对uniform的赋值。" msgid "Varyings can only be assigned in vertex function." msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" +#~ msgid "Create Poly" +#~ msgstr "创建多边形" + +#~ msgid "Create a new polygon from scratch" +#~ msgstr "创建一个新的多边形" + +#~ msgid "Zoom out" +#~ msgstr "缩å°" + +#~ msgid "Zoom in" +#~ msgstr "放大" + +#~ msgid "Create Poly3D" +#~ msgstr "创建 Poly3D (多边型3D)" + +#~ msgid "" +#~ "No OccluderPolygon2D resource on this node.\n" +#~ "Create and assign one?" +#~ msgstr "" +#~ "在这个节点上没有 OccluderPolygon2D 资æºã€‚\n" +#~ "创建和分é…一个å—?" + +#~ msgid "Edit existing polygon:" +#~ msgstr "编辑已å˜åœ¨çš„多边形:" + +#~ msgid "LMB: Move Point." +#~ msgstr "é¼ æ ‡å·¦é”®:移动点。" + +#~ msgid "Ctrl+LMB: Split Segment." +#~ msgstr "Ctrl+é¼ æ ‡å·¦é”®:分割视图å—。" + +#~ msgid "RMB: Erase Point." +#~ msgstr "é¼ æ ‡å³é”®:移除点。" + +#~ msgid "New TextFile" +#~ msgstr "新建文本文件" + +#~ msgid "Save Theme As" +#~ msgstr "主题å¦å˜ä¸º" + +#~ msgid "<None>" +#~ msgstr "æ— " + +#~ msgid "" +#~ "Select sub-tile to use as icon, this will be also used on invalid " +#~ "autotile bindings." +#~ msgstr "" +#~ "请选择一个ååœ°ç –(sub-tile)ä½œä¸ºå›¾æ ‡ï¼Œæ¤å›¾æ ‡è¿˜ä¼šè¢«ç»‘å®šä¸ºæ— æ•ˆçš„åœ°ç –" +#~ "(autotile)。" + +#~ msgid "Zoom:" +#~ msgstr "缩放:" + #~ msgid "Are you sure you want to remove all connections from the \"" #~ msgstr "您确定è¦ç§»é™¤æ‰€æœ‰å¹¿æ’连接从 \"" @@ -10045,9 +10121,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Source Font:" #~ msgstr "æºå—体文件:" -#~ msgid "Source Font Size:" -#~ msgstr "æºå—体大å°:" - #~ msgid "Dest Resource:" #~ msgstr "ç›®æ ‡èµ„æº:" @@ -10851,11 +10924,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Scale Region Editor" #~ msgstr "缩放区域编辑" -#~ msgid "" -#~ "No texture in this node.\n" -#~ "Set a texture to be able to edit region." -#~ msgstr "æ¤èŠ‚点没有贴图,请先为它设置贴图åŽå†è¯•ã€‚" - #~ msgid "Inherit Scene" #~ msgstr "继承场景" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 41ac16cd12..02ac08be3d 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -8,7 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2017-11-26 14:45+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:44+0100\n" "Last-Translator: zx-wt <ZX_WT@ymail.com>\n" "Language-Team: Chinese (Hong Kong) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant_HK/>\n" @@ -17,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2.18-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -269,7 +270,6 @@ msgstr "新增 %d 個新軌跡並æ’入關éµå¹€ï¼Ÿ" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp #, fuzzy @@ -563,15 +563,19 @@ msgstr "全部å–代" msgid "Selection Only" msgstr "åªé™é¸ä¸" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "放大" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "縮å°" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "é‡è¨ç¸®æ”¾æ¯”例" @@ -580,9 +584,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "放大" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp #, fuzzy @@ -750,8 +753,8 @@ msgid "Recent:" msgstr "最近:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "æœå°‹ï¼š" @@ -798,8 +801,7 @@ msgid "Resource" msgstr "資æº" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "路徑" @@ -1290,8 +1292,7 @@ msgid "Node Name:" msgstr "" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "å稱" @@ -1788,6 +1789,12 @@ msgstr "ä¸èƒ½åŸ·è¡Œé€™å€‹å‹•ä½œï¼Œå› 為沒有tree root." #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2215,7 +2222,7 @@ msgid "Undo" msgstr "復原" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "é‡è£½" @@ -2239,7 +2246,7 @@ msgstr "專案è¨å®š" msgid "Export" msgstr "匯出" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "工具" @@ -2668,6 +2675,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2684,8 +2697,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp #, fuzzy msgid "New Script" msgstr "下一個腳本" @@ -3135,7 +3147,7 @@ msgstr "複製" msgid "Move To..." msgstr "æ¬åˆ°..." -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "下一個腳本" @@ -3274,7 +3286,7 @@ msgstr "錯誤:動畫å稱已å˜åœ¨ï¼" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "無效å稱" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3537,46 +3549,48 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "縮放selection" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "æ’件" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr "åªé™é¸ä¸" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "刪除" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" -msgstr "刪除" +msgid "Erase points." +msgstr "縮放selection" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3622,17 +3636,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "刪除" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "縮放selection" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3711,7 +3714,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Add Node.." msgstr "新增節點" @@ -4270,7 +4272,7 @@ msgstr "全部" msgid "Plugins" msgstr "æ’件" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "排åºï¼š" @@ -4423,21 +4425,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "縮å°" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "縮å°" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "放大" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "é¸æ“‡æ¨¡å¼" @@ -4696,7 +4696,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "縮放selection" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4803,35 +4812,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5202,6 +5185,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "編輯Node Curve" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5229,6 +5217,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5244,11 +5236,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5309,6 +5296,10 @@ msgstr "åªé™é¸ä¸" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5320,7 +5311,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5364,10 +5361,20 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "縮放selection" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Open Polygon 2D UV editor." +msgstr "開啟資料夾" + +#: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" msgstr "" @@ -5389,12 +5396,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "縮放selection" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "下移" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5421,19 +5424,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5578,20 +5581,24 @@ msgid "Error saving file!" msgstr "儲å˜TileSet時出ç¾éŒ¯èª¤ï¼" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "儲å˜æ™‚出ç¾éŒ¯èª¤" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "載入錯誤:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "è¼‰å…¥å ´æ™¯æ™‚å‡ºç¾éŒ¯èª¤" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "載入錯誤:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5613,6 +5620,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5655,8 +5670,8 @@ msgstr "檔案" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "檔案" +msgid "Open..." +msgstr "é–‹å•Ÿ" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5686,15 +5701,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "如來如æ¤" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5808,6 +5824,10 @@ msgstr "" msgid "Go to Function" msgstr "行為" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5841,10 +5861,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6565,11 +6581,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6815,12 +6836,12 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "由主幹新增節點" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "åªé™é¸ä¸" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6832,13 +6853,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "貼上動畫" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "縮放selection" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "縮放selection" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6868,16 +6910,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "è¦åˆªé™¤é¸ä¸æª”案?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "新增資料夾" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "刪除" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "新增資料夾" @@ -6896,12 +6949,19 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "新增資料夾" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "ä¸èƒ½åŸ·è¡Œé€™å€‹å‹•ä½œï¼Œå› 為沒有tree root." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Tile Set" +msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6917,6 +6977,11 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add Node..." +msgstr "新增節點" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6958,7 +7023,7 @@ msgstr "æ·»åŠ ..." #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "匯出" #: editor/project_export.cpp @@ -8471,7 +8536,7 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +msgid "Step argument is zero!" msgstr "" #: modules/gdscript/gdscript_functions.cpp @@ -9354,7 +9419,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9397,7 +9462,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9489,6 +9556,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9505,6 +9576,10 @@ msgstr "è¦å‘Š!" msgid "Please Confirm..." msgstr "請確èª..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9561,10 +9636,6 @@ msgstr "無效å—åž‹" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9583,6 +9654,22 @@ msgid "Varyings can only be assigned in vertex function." msgstr "" #, fuzzy +#~ msgid "Zoom out" +#~ msgstr "縮å°" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "放大" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "檔案" + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "放大" + +#, fuzzy #~ msgid "Public Methods" #~ msgstr "é¸æ“‡æ¨¡å¼" @@ -9647,9 +9734,6 @@ msgstr "" #~ msgid "Anim Track Change Value Mode" #~ msgstr "動畫軌跡變化數值模å¼" -#~ msgid "Edit Node Curve" -#~ msgstr "編輯Node Curve" - #~ msgid "Edit Selection Curve" #~ msgstr "編輯Selection Curve" @@ -9700,9 +9784,6 @@ msgstr "" #~ msgid "Thanks!" #~ msgstr "多è¬!" -#~ msgid "I see..." -#~ msgstr "如來如æ¤" - #, fuzzy #~ msgid "Can't open '%s'." #~ msgstr "ä¸èƒ½é€£æŽ¥ã€‚" @@ -9807,9 +9888,6 @@ msgstr "" #~ msgid "Removed:" #~ msgstr "已移除:" -#~ msgid "Error loading scene." -#~ msgstr "è¼‰å…¥å ´æ™¯æ™‚å‡ºç¾éŒ¯èª¤" - #, fuzzy #~ msgid "Tiles" #~ msgstr "檔案" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index fe162ba39e..3bf35bb328 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -15,15 +15,17 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2018-11-10 20:07+0000\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2018-12-13 14:44+0100\n" "Last-Translator: ken l <macauhome@gmail.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hant/>\n" "Language: zh_TW\n" +"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.3-dev\n" +"X-Generator: Poedit 2.2\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -266,7 +268,6 @@ msgstr "創建 %d 個新軌並æ’å…¥ç•«æ ¼?" #: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp #: editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp msgid "Create" @@ -544,15 +545,19 @@ msgstr "å–代全部" msgid "Selection Only" msgstr "僅é¸æ“‡å€åŸŸ" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom In" msgstr "放大" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp msgid "Zoom Out" msgstr "縮å°" -#: editor/code_editor.cpp editor/plugins/tile_set_editor_plugin.cpp +#: editor/code_editor.cpp msgid "Reset Zoom" msgstr "é‡è¨ç¸®æ”¾å¤§å°" @@ -561,9 +566,8 @@ msgid "Warnings:" msgstr "" #: editor/code_editor.cpp -#, fuzzy -msgid "Zoom:" -msgstr "放大" +msgid "Font Size:" +msgstr "" #: editor/code_editor.cpp msgid "Line:" @@ -726,8 +730,8 @@ msgid "Recent:" msgstr "最近å˜å–:" #: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp -#: editor/quick_open.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Search:" msgstr "æœå°‹:" @@ -778,8 +782,7 @@ msgid "Resource" msgstr "資æº" #: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp -#: editor/project_manager.cpp editor/project_settings_editor.cpp -#: editor/script_create_dialog.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp msgid "Path" msgstr "路徑" @@ -1254,8 +1257,7 @@ msgid "Node Name:" msgstr "節點å稱:" #: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp -#: editor/editor_profiler.cpp editor/project_manager.cpp -#: editor/settings_config_dialog.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp msgid "Name" msgstr "å稱" @@ -1743,6 +1745,12 @@ msgstr "æ¤æ“作無法復原, 確定è¦é‚„原嗎?" #: editor/editor_node.cpp msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" @@ -2151,7 +2159,7 @@ msgid "Undo" msgstr "復原" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp -#: scene/gui/line_edit.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" msgstr "å–消「復原ã€" @@ -2176,7 +2184,7 @@ msgstr "專案è¨å®š" msgid "Export" msgstr "輸出" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "工具" @@ -2591,6 +2599,12 @@ msgstr "" #: editor/editor_properties.cpp msgid "" +"The selected resource (%s) does not match the type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" @@ -2607,8 +2621,7 @@ msgstr "" msgid "Pick a Viewport" msgstr "" -#: editor/editor_properties.cpp editor/plugins/script_editor_plugin.cpp -#: editor/property_editor.cpp +#: editor/editor_properties.cpp editor/property_editor.cpp msgid "New Script" msgstr "" @@ -3045,7 +3058,7 @@ msgstr "複製動畫關éµç•«æ ¼" msgid "Move To..." msgstr "" -#: editor/filesystem_dock.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New Script..." msgstr "新增資料夾..." @@ -3184,7 +3197,7 @@ msgstr "Autoload「%sã€å·²ç¶“å˜åœ¨!" #: editor/groups_editor.cpp #, fuzzy -msgid "invalid Group name." +msgid "Invalid group name." msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。" #: editor/groups_editor.cpp editor/node_dock.cpp @@ -3437,46 +3450,48 @@ msgid "Activate now?" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create Poly" -msgstr "" +#: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy +msgid "Create Polygon" +msgstr "新增資料夾" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly" -msgstr "" +#, fuzzy +msgid "Edit Polygon" +msgstr "新增資料夾" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -#: editor/plugins/collision_polygon_editor_plugin.cpp -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit Poly (Remove Point)" +msgid "Edit Polygon (Remove Point)" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Remove Poly And Point" -msgstr "" +#, fuzzy +msgid "Remove Polygon And Point" +msgstr "移除" #: editor/plugins/abstract_polygon_2d_editor.cpp -msgid "Create a new polygon from scratch" -msgstr "" +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#, fuzzy +msgid "Create points." +msgstr "刪除" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "" -"Edit existing polygon:\n" -"LMB: Move Point.\n" -"Ctrl+LMB: Split Segment.\n" -"RMB: Erase Point." +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" msgstr "" #: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy -msgid "Delete points" -msgstr "刪除" +msgid "Erase points." +msgstr "所有的é¸æ“‡" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3521,17 +3536,6 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy -msgid "Create points." -msgstr "刪除" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy -msgid "Erase points." -msgstr "所有的é¸æ“‡" - -#: editor/plugins/animation_blend_space_1d_editor.cpp -#: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Point" msgstr "" @@ -3610,7 +3614,6 @@ msgid "" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add Node.." msgstr "" @@ -4160,7 +4163,7 @@ msgstr "全部" msgid "Plugins" msgstr "" -#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp msgid "Sort:" msgstr "排åº:" @@ -4311,21 +4314,19 @@ msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom out" -msgstr "縮å°" +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp #, fuzzy -msgid "Zoom reset" +msgid "Zoom Reset" msgstr "縮å°" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Zoom in" -msgstr "放大" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" msgstr "" @@ -4581,7 +4582,16 @@ msgid "" msgstr "" #: editor/plugins/collision_polygon_editor_plugin.cpp -msgid "Create Poly3D" +#, fuzzy +msgid "Create Polygon3D" +msgstr "新增資料夾" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" msgstr "" #: editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -4687,35 +4697,9 @@ msgid "Item List Editor" msgstr "" #: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "" -"No OccluderPolygon2D resource on this node.\n" -"Create and assign one?" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp msgid "Create Occluder Polygon" msgstr "" -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Create a new polygon from scratch." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Edit existing polygon:" -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "LMB: Move Point." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "Ctrl+LMB: Split Segment." -msgstr "" - -#: editor/plugins/light_occluder_2d_editor_plugin.cpp -msgid "RMB: Erase Point." -msgstr "" - #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" msgstr "" @@ -5086,6 +5070,11 @@ msgid "Add Point to Curve" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +#, fuzzy +msgid "Split Curve" +msgstr "編輯節點曲線" + +#: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" msgstr "" @@ -5113,6 +5102,10 @@ msgid "Click: Add Point" msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Right Click: Delete Point" msgstr "" @@ -5128,11 +5121,6 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp -msgid "Split Segment (in curve)" -msgstr "" - -#: editor/plugins/path_2d_editor_plugin.cpp -#: editor/plugins/path_editor_plugin.cpp msgid "Delete Point" msgstr "" @@ -5192,6 +5180,10 @@ msgstr "" msgid "Remove In-Control Point" msgstr "" +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + #: editor/plugins/physical_bone_plugin.cpp #, fuzzy msgid "Move joint" @@ -5203,7 +5195,13 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Sync bones" +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5246,7 +5244,16 @@ msgid "Transform UV Map" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint bone weights" +#, fuzzy +msgid "Transform Polygon" +msgstr "新增資料夾" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5271,12 +5278,8 @@ msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy -msgid "Create Polygon" -msgstr "新增資料夾" - -#: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Move Point" -msgstr "" +msgid "Move Points" +msgstr "移除" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5303,19 +5306,19 @@ msgid "Scale Polygon" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Connect two points to make a split" +msgid "Connect two points to make a split." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Select a split to erase it" +msgid "Select a split to erase it." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "Paint weights with specified intensity" +msgid "Paint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -msgid "UnPaint weights with specified intensity" +msgid "Unpaint weights with specified intensity." msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5460,20 +5463,24 @@ msgid "Error saving file!" msgstr "儲å˜è³‡æºéŒ¯èª¤!" #: editor/plugins/script_editor_plugin.cpp -msgid "Error while saving theme" -msgstr "" +#, fuzzy +msgid "Error while saving theme." +msgstr "儲å˜ä¸ç™¼ç”Ÿäº†éŒ¯èª¤ã€‚" #: editor/plugins/script_editor_plugin.cpp -msgid "Error saving" -msgstr "" +#, fuzzy +msgid "Error Saving" +msgstr "載入時發生錯誤:" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing theme" -msgstr "" +#, fuzzy +msgid "Error importing theme." +msgstr "讀å–å—體錯誤。" #: editor/plugins/script_editor_plugin.cpp -msgid "Error importing" -msgstr "" +#, fuzzy +msgid "Error Importing" +msgstr "載入時發生錯誤:" #: editor/plugins/script_editor_plugin.cpp #, fuzzy @@ -5495,6 +5502,14 @@ msgid "Import Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Save Theme As..." msgstr "" @@ -5537,8 +5552,8 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "New TextFile" -msgstr "éŽæ¿¾æª”案..." +msgid "Open..." +msgstr "é–‹å•Ÿ" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5567,15 +5582,16 @@ msgid "Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Reload Theme" -msgstr "" +#, fuzzy +msgid "Import Theme..." +msgstr "我知é“了" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme" +msgid "Reload Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Save Theme As" +msgid "Save Theme" msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5686,6 +5702,10 @@ msgstr "" msgid "Go to Function" msgstr "建立函å¼" +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5719,10 +5739,6 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6433,11 +6449,16 @@ msgid "Set Region Rect" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp msgid "Snap Mode:" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp -msgid "<None>" +#: scene/resources/visual_shader.cpp +msgid "None" msgstr "" #: editor/plugins/texture_region_editor_plugin.cpp @@ -6681,12 +6702,12 @@ msgid "Clear transform" msgstr "動畫更改座標" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Add Texture(s) to TileSet" +msgid "Add Texture(s) to TileSet." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy -msgid "Remove current Texture from TileSet" +msgid "Remove selected Texture from TileSet." msgstr "移除" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6698,13 +6719,34 @@ msgid "Merge from Scene" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "" -"Select sub-tile to use as icon, this will be also used on invalid autotile " -"bindings." +msgid "Copy bitmask." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Display tile's names (hold Alt Key)" +#, fuzzy +msgid "Paste bitmask." +msgstr "貼上åƒæ•¸" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Erase bitmask." +msgstr "所有的é¸æ“‡" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Create a new polygon." +msgstr "新增資料夾" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6734,16 +6776,27 @@ msgid "" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete selected Rect." +msgstr "確定刪除所é¸æ“‡çš„檔案嗎?" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" -"LMB: set bit on.\n" -"RMB: set bit off.\n" +"Select current edited sub-tile.\n" "Click on another Tile to edit it." -msgstr "" +msgstr "新增資料夾" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Delete polygon." +msgstr "刪除" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" -"Select current edited sub-tile.\n" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" "Click on another Tile to edit it." msgstr "新增資料夾" @@ -6762,11 +6815,18 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "新增資料夾" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "This property can't be changed." msgstr "æ¤æ“ä½œç„¡æ³•åœ¨æ²’æœ‰æ ¹ç¯€é»žçš„æƒ…æ³ä¸‹é€²è¡Œã€‚" #: editor/plugins/tile_set_editor_plugin.cpp -msgid "Tile Set" +msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp @@ -6783,6 +6843,10 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -6821,7 +6885,7 @@ msgstr "" #: editor/project_export.cpp #, fuzzy -msgid "Export Path:" +msgid "Export Path" msgstr "輸出" #: editor/project_export.cpp @@ -8319,7 +8383,8 @@ msgid "GDNative" msgstr "" #: modules/gdscript/gdscript_functions.cpp -msgid "step argument is zero!" +#, fuzzy +msgid "Step argument is zero!" msgstr "step引數為0!" #: modules/gdscript/gdscript_functions.cpp @@ -9200,7 +9265,7 @@ msgid "" msgstr "" #: scene/3d/cpu_particles.cpp -msgid "Nothing is visible because no mesh has not been assigned." +msgid "Nothing is visible because no mesh has been assigned." msgstr "" #: scene/3d/cpu_particles.cpp @@ -9243,7 +9308,9 @@ msgid "OrientedPathFollow only works when set as a child of a Path node." msgstr "" #: scene/3d/path.cpp -msgid "OrientedPathFollow requires up vectors enabled in its parent Path." +msgid "" +"OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve " +"resource." msgstr "" #: scene/3d/physics_body.cpp @@ -9335,6 +9402,10 @@ msgstr "" msgid "AnimationPlayer root is not a valid node." msgstr "" +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "" @@ -9351,6 +9422,10 @@ msgstr "è¦å‘Š!" msgid "Please Confirm..." msgstr "請確èª..." +#: scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9409,10 +9484,6 @@ msgstr "無效的å—體大å°ã€‚" msgid "Input" msgstr "" -#: scene/resources/visual_shader.cpp -msgid "None" -msgstr "" - #: scene/resources/visual_shader_nodes.cpp #, fuzzy msgid "Invalid source for shader." @@ -9430,6 +9501,22 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#, fuzzy +#~ msgid "Zoom out" +#~ msgstr "縮å°" + +#, fuzzy +#~ msgid "Zoom in" +#~ msgstr "放大" + +#, fuzzy +#~ msgid "New TextFile" +#~ msgstr "éŽæ¿¾æª”案..." + +#, fuzzy +#~ msgid "Zoom:" +#~ msgstr "放大" + #~ msgid "Class List:" #~ msgstr "Class 列表:" @@ -9498,9 +9585,6 @@ msgstr "" #~ msgid "Anim Track Change Wrap Mode" #~ msgstr "動畫軌é“更改環繞模å¼" -#~ msgid "Edit Node Curve" -#~ msgstr "編輯節點曲線" - #~ msgid "Edit Selection Curve" #~ msgstr "編輯所é¸æ›²ç·š" @@ -9562,9 +9646,6 @@ msgstr "" #~ msgid "Thanks!" #~ msgstr "è¬è¬!" -#~ msgid "I see..." -#~ msgstr "我知é“了" - #~ msgid "Can't open '%s'." #~ msgstr "無法開啟 \"%s\"。" diff --git a/main/main.cpp b/main/main.cpp index db23a6c214..7383294167 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1697,12 +1697,17 @@ bool Main::start() { #ifdef TOOLS_ENABLED if (editor) { - Error serr = editor_node->load_scene(local_game_path); - if (serr != OK) - ERR_PRINT("Failed to load scene"); + if (game_path != GLOBAL_GET("application/run/main_scene") || !editor_node->has_scenes_in_session()) { + Error serr = editor_node->load_scene(local_game_path); + if (serr != OK) + ERR_PRINT("Failed to load scene"); + } OS::get_singleton()->set_context(OS::CONTEXT_EDITOR); } #endif + if (!editor) { + OS::get_singleton()->set_context(OS::CONTEXT_ENGINE); + } } if (!project_manager && !editor) { // game diff --git a/main/tests/test_io.cpp b/main/tests/test_io.cpp deleted file mode 100644 index 4e43ee6a54..0000000000 --- a/main/tests/test_io.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/*************************************************************************/ -/* test_io.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 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_io.h" - -#ifdef MINIZIP_ENABLED - -#include "core/io/resource_loader.h" -#include "core/io/resource_saver.h" -#include "core/os/dir_access.h" -#include "core/os/main_loop.h" -#include "core/os/os.h" -#include "core/print_string.h" -#include "core/project_settings.h" -#include "scene/resources/texture.h" - -#include "core/io/file_access_memory.h" - -namespace TestIO { - -class TestMainLoop : public MainLoop { - - bool quit; - -public: - virtual void input_event(const Ref<InputEvent> &p_event) { - } - virtual bool idle(float p_time) { - return false; - } - - virtual void request_quit() { - - quit = true; - } - virtual void init() { - - quit = true; - } - virtual bool iteration(float p_time) { - - return quit; - } - virtual void finish() { - } -}; - -MainLoop *test() { - - print_line("this is test io"); - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - da->change_dir("."); - print_line("Opening current dir " + da->get_current_dir()); - String entry; - da->list_dir_begin(); - while ((entry = da->get_next()) != "") { - - print_line("entry " + entry + " is dir: " + Variant(da->current_is_dir())); - }; - da->list_dir_end(); - - RES texture = ResourceLoader::load("test_data/rock.png"); - ERR_FAIL_COND_V(texture.is_null(), NULL); - - ResourceSaver::save("test_data/rock.xml", texture); - - print_line("localize paths"); - print_line(ProjectSettings::get_singleton()->localize_path("algo.xml")); - print_line(ProjectSettings::get_singleton()->localize_path("c:\\windows\\algo.xml")); - print_line(ProjectSettings::get_singleton()->localize_path(ProjectSettings::get_singleton()->get_resource_path() + "/something/something.xml")); - print_line(ProjectSettings::get_singleton()->localize_path("somedir/algo.xml")); - - { - - FileAccess *z = FileAccess::open("test_data/archive.zip", FileAccess::READ); - int len = z->get_len(); - Vector<uint8_t> zip; - zip.resize(len); - z->get_buffer(zip.ptrw(), len); - z->close(); - memdelete(z); - - FileAccessMemory::register_file("a_package", zip); - FileAccess::make_default<FileAccessMemory>(FileAccess::ACCESS_RESOURCES); - FileAccess::make_default<FileAccessMemory>(FileAccess::ACCESS_FILESYSTEM); - FileAccess::make_default<FileAccessMemory>(FileAccess::ACCESS_USERDATA); - - print_line("archive test"); - }; - - print_line("test done"); - - return memnew(TestMainLoop); -} -} // namespace TestIO - -#else - -namespace TestIO { - -MainLoop *test() { - - return NULL; -} -} // namespace TestIO -#endif diff --git a/main/tests/test_main.cpp b/main/tests/test_main.cpp index 714a254371..a36b619ba0 100644 --- a/main/tests/test_main.cpp +++ b/main/tests/test_main.cpp @@ -37,7 +37,6 @@ #include "test_gdscript.h" #include "test_gui.h" #include "test_image.h" -#include "test_io.h" #include "test_math.h" #include "test_oa_hash_map.h" #include "test_ordered_hash_map.h" @@ -57,7 +56,6 @@ const char **tests_get_names() { "render", "oa_hash_map", "gui", - "io", "shaderlang", "gd_tokenizer", "gd_parser", @@ -111,11 +109,6 @@ MainLoop *test_main(String p_test, const List<String> &p_args) { } #endif - if (p_test == "io") { - - return TestIO::test(); - } - if (p_test == "shaderlang") { return TestShaderLang::test(); diff --git a/main/tests/test_shader_lang.cpp b/main/tests/test_shader_lang.cpp index 9df5973376..357143e499 100644 --- a/main/tests/test_shader_lang.cpp +++ b/main/tests/test_shader_lang.cpp @@ -180,7 +180,7 @@ static String dump_node_code(SL::Node *p_node, int p_level) { String scode = dump_node_code(bnode->statements[i], p_level); - if (bnode->statements[i]->type == SL::Node::TYPE_CONTROL_FLOW || bnode->statements[i]->type == SL::Node::TYPE_CONTROL_FLOW) { + if (bnode->statements[i]->type == SL::Node::TYPE_CONTROL_FLOW) { code += scode; //use directly } else { code += _mktab(p_level) + scode + ";\n"; diff --git a/methods.py b/methods.py index 5fcbc94298..f8fc6c64ef 100644 --- a/methods.py +++ b/methods.py @@ -6,7 +6,7 @@ import glob import string import datetime import subprocess -from compat import iteritems, isbasestring +from compat import iteritems, isbasestring, decode_utf8 def add_source_files(self, sources, filetype, lib_env=None, shared=False): @@ -645,7 +645,7 @@ def detect_darwin_sdk_path(platform, env): if not env[var_name]: try: - sdk_path = subprocess.check_output(['xcrun', '--sdk', sdk_name, '--show-sdk-path']).strip() + sdk_path = decode_utf8(subprocess.check_output(['xcrun', '--sdk', sdk_name, '--show-sdk-path']).strip()) if sdk_path: env[var_name] = sdk_path except (subprocess.CalledProcessError, OSError) as e: diff --git a/misc/dist/document_icon.svg b/misc/dist/document_icon.svg deleted file mode 100644 index 2652110fa5..0000000000 --- a/misc/dist/document_icon.svg +++ /dev/null @@ -1,12 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024"> -<path d="M159.143 69.856v884.288h705.714v-665.51L646.08 69.856z" fill="#fff" stroke="#d2d2d2" stroke-width="20"/> -<g stroke-width=".32"> - <path d="M723.128 594.284s-.701-4.304-1.111-4.265l-78.083 7.534a12.691 12.691 0 0 0-11.474 11.78l-2.145 30.747-60.408 4.31-4.11-27.866c-.914-6.198-6.326-10.87-12.591-10.87h-82.412c-6.263 0-11.675 4.672-12.59 10.87l-4.111 27.865-60.408-4.31-2.145-30.745a12.692 12.692 0 0 0-11.475-11.783l-78.12-7.532c-.404-.039-.7 4.269-1.104 4.269l-.105 16.897 66.161 10.67 2.167 31.02c.438 6.28 5.505 11.357 11.79 11.808l83.194 5.935c.315.022.626.035.937.035 6.252 0 11.655-4.675 12.57-10.873l4.228-28.671h60.436l4.228 28.671c.913 6.196 6.323 10.87 12.583 10.87.307 0 .613-.01.913-.032l83.206-5.935c6.282-.45 11.351-5.528 11.79-11.808l2.164-31.02 66.133-10.717z" fill="#fff"/> - <path d="M300.84 466.87v127.413c.233.003.466.011.697.033l78.113 7.531a8.41 8.41 0 0 1 7.583 7.789l2.409 34.481 68.138 4.862 4.694-31.825a8.41 8.41 0 0 1 8.321-7.184h82.412a8.41 8.41 0 0 1 8.32 7.184l4.693 31.825 68.14-4.862 2.407-34.481a8.414 8.414 0 0 1 7.583-7.789l78.082-7.531c.231-.022.462-.03.695-.033v-10.166l.033-.01V466.87h.289c10.348-13.207 19.923-27.124 29.105-41.972-12.195-20.76-27.137-39.313-43.109-56.502-14.813 7.456-29.2 15.903-42.79 24.891-6.8-6.759-14.458-12.288-21.981-18.067-7.392-5.937-15.722-10.29-23.622-15.361 2.352-17.517 3.515-34.762 3.983-52.76-20.385-10.26-42.123-17.062-64.111-21.947-8.779 14.754-16.807 30.732-23.799 46.352-8.291-1.385-16.621-1.899-24.962-1.998v-.013c-.058 0-.112.013-.162.013-.052 0-.106-.013-.157-.013v.013c-8.356.1-16.68.613-24.973 1.998-6.988-15.62-15.012-31.598-23.804-46.352-21.977 4.885-43.717 11.688-64.1 21.947.466 17.998 1.63 35.243 3.988 52.76-7.916 5.071-16.235 9.424-23.629 15.36-7.512 5.78-15.184 11.31-21.986 18.068-13.589-8.988-27.972-17.435-42.79-24.89-15.971 17.188-30.905 35.74-43.104 56.501 9.178 14.848 18.76 28.765 29.105 41.972z" fill="#478cbf"/> - <path d="M653.052 617.91l-2.42 34.664a8.413 8.413 0 0 1-7.792 7.803l-83.204 5.937a8.412 8.412 0 0 1-8.92-7.165l-4.77-32.357h-67.89l-4.772 32.358c-.64 4.354-4.534 7.486-8.92 7.164l-83.203-5.937a8.413 8.413 0 0 1-7.792-7.803l-2.42-34.665-70.238-6.772c.033 7.55.13 15.819.13 17.465 0 74.181 94.102 109.836 211.016 110.246h.287c116.915-.41 210.984-36.065 210.984-110.246 0-1.676.101-9.912.136-17.465z" fill="#478cbf"/> - <path d="M448.344 518.591c0 26.01-21.074 47.078-47.074 47.078-25.987 0-47.067-21.069-47.067-47.078 0-25.991 21.08-47.05 47.067-47.05 26 0 47.074 21.059 47.074 47.05" fill="#fff"/> - <path d="M437.017 521.384c0 17.251-13.982 31.233-31.246 31.233-17.256 0-31.247-13.982-31.247-31.233 0-17.252 13.99-31.247 31.247-31.247 17.264 0 31.246 13.995 31.246 31.247" fill="#414042"/> - <path d="M511.997 569.952c-8.37 0-15.152-6.168-15.152-13.77v-43.336c0-7.596 6.783-13.77 15.152-13.77 8.368 0 15.166 6.174 15.166 13.77v43.336c0 7.602-6.798 13.77-15.166 13.77M575.657 518.591c0 26.01 21.074 47.078 47.078 47.078 25.985 0 47.063-21.069 47.063-47.078 0-25.991-21.078-47.05-47.063-47.05-26.004 0-47.078 21.059-47.078 47.05" fill="#fff"/> - <path d="M586.987 521.384c0 17.251 13.978 31.233 31.23 31.233 17.268 0 31.245-13.982 31.245-31.233 0-17.252-13.977-31.247-31.246-31.247-17.251 0-31.23 13.995-31.23 31.247" fill="#414042"/> -</g> -</svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/gdscript.svg b/misc/dist/document_icons/gdscript.svg new file mode 100644 index 0000000000..ec65eb098a --- /dev/null +++ b/misc/dist/document_icons/gdscript.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024"><path d="M812.681 293.783c-23.575-32.543-141.93-39.865-197.505-34.983 2.17-68.048 31.457-117.656-37.966-177.026M161.89 49.151H464c77.128-2.02 126.554 37.835 178.444 84.881l123.665 109.83c63.819 56.94 89.13 110.625 96 188.174v542.886H161.89z" fill="#eff1f5" stroke="#9f9fa1" stroke-width="19.603" stroke-linecap="round" stroke-linejoin="round"/><text style="line-height:1.25;-inkscape-font-specification:'Montserrat Ultra-Bold'" x="207.666" y="878.644" font-weight="800" font-size="16" font-family="Montserrat" letter-spacing="0" word-spacing="0" fill="#333f67"><tspan x="207.666" y="878.644" font-size="112">GDSCRIPT</tspan></text><path d="M481.818 300.713l-17.037 68.149a150.92 150.92 0 0 0-20.81 8.43l-60.015-36.021-42.683 42.683 36.079 60.19a150.92 150.92 0 0 0-8.608 20.693l-68.031 16.978v60.368l68.149 17.037a150.92 150.92 0 0 0 8.43 20.752l-36.021 60.072 42.683 42.683 60.19-36.079a150.92 150.92 0 0 0 20.693 8.608l16.978 68.031h60.368l17.037-68.149a150.92 150.92 0 0 0 20.752-8.43l60.072 36.021 42.683-42.683-36.079-60.19a150.92 150.92 0 0 0 8.608-20.693l68.031-16.978v-60.368l-68.149-17.037a150.92 150.92 0 0 0-8.43-20.752l36.021-60.072-42.683-42.683-60.19 36.079a150.92 150.92 0 0 0-20.693-8.608l-16.978-68.031h-60.368zm30.184 150.92A60.368 60.368 0 0 1 572.37 512a60.368 60.368 0 0 1-60.368 60.368A60.368 60.368 0 0 1 451.634 512a60.368 60.368 0 0 1 60.368-60.368z" fill="#478cbf"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/gdscript_extra_small.svg b/misc/dist/document_icons/gdscript_extra_small.svg new file mode 100644 index 0000000000..1c3545ef9d --- /dev/null +++ b/misc/dist/document_icons/gdscript_extra_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M12.698 4.59c-.368-.508-2.218-.623-3.086-.546.034-1.064.492-1.839-.593-2.766m-6.49-.51H7.25c1.205-.032 1.977.591 2.788 1.326L11.97 3.81c.998.89 1.393 1.729 1.5 2.94v8.483H2.53z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><path d="M7.39 4.721l-.346 1.38a3.056 3.056 0 0 0-.421.171l-1.216-.73-.864.865.73 1.219a3.056 3.056 0 0 0-.174.419l-1.377.344V9.61l1.38.345a3.056 3.056 0 0 0 .17.42l-.729 1.217.864.864 1.22-.73a3.056 3.056 0 0 0 .418.174l.344 1.377h1.222l.345-1.38a3.056 3.056 0 0 0 .42-.17l1.217.73.864-.865-.73-1.219a3.056 3.056 0 0 0 .174-.42l1.378-.343V8.39l-1.38-.345a3.056 3.056 0 0 0-.17-.42l.729-1.217-.865-.864-1.219.73a3.056 3.056 0 0 0-.419-.174L8.611 4.72H7.39zM8 7.777A1.222 1.222 0 0 1 9.223 9 1.222 1.222 0 0 1 8 10.222 1.222 1.222 0 0 1 6.778 9 1.222 1.222 0 0 1 8 7.777z" fill="#478cbf"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/gdscript_small.svg b/misc/dist/document_icons/gdscript_small.svg new file mode 100644 index 0000000000..468f4243a2 --- /dev/null +++ b/misc/dist/document_icons/gdscript_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M25.396 9.18c-.736-1.016-4.435-1.245-6.172-1.093.068-2.126.983-3.676-1.186-5.532M5.059 1.536H14.5c2.41-.063 3.955 1.182 5.576 2.652l3.865 3.433c1.994 1.779 2.785 3.457 3 5.88v16.965H5.059z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><path d="M15.057 11.397l-.532 2.13a4.716 4.716 0 0 0-.65.263l-1.876-1.126-1.334 1.334 1.128 1.881a4.716 4.716 0 0 0-.27.647l-2.125.53v1.887l2.13.532a4.716 4.716 0 0 0 .263.649L10.665 22 12 23.335l1.881-1.127a4.716 4.716 0 0 0 .647.269l.53 2.125h1.887l.532-2.13a4.716 4.716 0 0 0 .649-.263l1.877 1.126 1.334-1.334-1.128-1.88a4.716 4.716 0 0 0 .27-.647l2.125-.531v-1.886l-2.13-.533a4.716 4.716 0 0 0-.263-.648l1.126-1.878-1.334-1.333-1.881 1.127a4.716 4.716 0 0 0-.647-.269l-.53-2.126h-1.887zm.944 4.716A1.887 1.887 0 0 1 17.887 18a1.887 1.887 0 0 1-1.886 1.886A1.887 1.887 0 0 1 14.114 18a1.887 1.887 0 0 1 1.887-1.887z" fill="#478cbf"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/project.svg b/misc/dist/document_icons/project.svg new file mode 100644 index 0000000000..aa9b936f27 --- /dev/null +++ b/misc/dist/document_icons/project.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024"><path d="M812.681 293.783c-23.575-32.542-141.93-39.864-197.505-34.983 2.17-68.048 31.457-117.655-37.966-177.025M161.89 49.15H464c77.128-2.02 126.554 37.836 178.444 84.882l123.665 109.83c63.819 56.94 89.13 110.624 96 188.174v542.885H161.89z" fill="#eff1f5" stroke="#9f9fa1" stroke-width="19.603" stroke-linecap="round" stroke-linejoin="round"/><g stroke-width=".32"><path d="M712.572 590.17s-.666-4.089-1.056-4.052l-74.179 7.157a12.056 12.056 0 0 0-10.9 11.191l-2.038 29.21-57.387 4.094-3.905-26.472c-.868-5.888-6.01-10.327-11.961-10.327h-78.292c-5.95 0-11.09 4.439-11.96 10.327l-3.906 26.472-57.387-4.095-2.038-29.208a12.057 12.057 0 0 0-10.901-11.194l-74.214-7.155c-.384-.037-.665 4.056-1.049 4.056l-.1 16.052 62.853 10.136 2.059 29.47c.416 5.965 5.23 10.788 11.2 11.217l79.035 5.638c.299.021.594.033.89.033 5.94 0 11.072-4.44 11.941-10.329l4.017-27.237h57.414l4.017 27.237c.867 5.886 6.006 10.326 11.953 10.326.292 0 .583-.009.868-.03l79.046-5.638c5.967-.428 10.783-5.252 11.2-11.218l2.056-29.469 62.826-10.18z" fill="#fff"/><path d="M311.398 469.127v121.042c.221.003.443.01.662.031l74.207 7.155a7.99 7.99 0 0 1 7.204 7.4l2.289 32.756 64.731 4.619 4.46-30.234a7.99 7.99 0 0 1 7.904-6.824h78.292a7.99 7.99 0 0 1 7.904 6.824l4.458 30.234 64.733-4.619 2.287-32.757a7.993 7.993 0 0 1 7.203-7.4l74.178-7.154c.22-.02.44-.028.66-.031v-9.658l.032-.01V469.128h.275c9.83-12.547 18.926-25.768 27.65-39.874-11.586-19.722-25.78-37.347-40.954-53.677-14.073 7.083-27.74 15.108-40.65 23.647-6.46-6.421-13.736-11.674-20.883-17.164-7.022-5.64-14.936-9.775-22.44-14.593 2.234-16.641 3.339-33.024 3.783-50.122-19.366-9.747-40.017-16.209-60.905-20.85-8.34 14.017-15.967 29.196-22.61 44.035-7.876-1.316-15.79-1.804-23.713-1.898v-.013c-.055 0-.107.013-.154.013-.05 0-.1-.013-.15-.013v.013c-7.937.095-15.845.582-23.724 1.898-6.638-14.84-14.261-30.018-22.613-44.035-20.879 4.641-41.532 11.104-60.895 20.85.442 17.098 1.548 33.48 3.788 50.122-7.52 4.818-15.423 8.953-22.447 14.592-7.137 5.491-14.425 10.745-20.887 17.165-12.91-8.539-26.573-16.564-40.65-23.646-15.173 16.329-29.36 33.953-40.95 53.676 8.72 14.106 17.823 27.327 27.65 39.874z" fill="#478cbf"/><path d="M646 612.615l-2.3 32.93a7.992 7.992 0 0 1-7.402 7.413l-79.044 5.64a7.991 7.991 0 0 1-8.474-6.806l-4.531-30.74h-64.496l-4.533 30.74c-.608 4.137-4.308 7.112-8.474 6.806l-79.043-5.64a7.992 7.992 0 0 1-7.402-7.413l-2.3-32.931-66.726-6.434c.032 7.173.124 15.028.124 16.592 0 70.472 89.397 104.344 200.465 104.734h.273c111.07-.39 200.435-34.262 200.435-104.734 0-1.592.096-9.416.129-16.592z" fill="#478cbf"/><path d="M451.527 518.261c0 24.71-20.02 44.725-44.72 44.725-24.688 0-44.714-20.016-44.714-44.725 0-24.691 20.026-44.697 44.713-44.697 24.7 0 44.72 20.006 44.72 44.697" fill="#fff"/><path d="M440.766 520.915c0 16.388-13.283 29.671-29.684 29.671-16.393 0-29.684-13.283-29.684-29.671 0-16.39 13.29-29.685 29.684-29.685 16.401 0 29.684 13.295 29.684 29.685" fill="#414042"/><path d="M511.997 567.054c-7.951 0-14.394-5.86-14.394-13.081v-41.17c0-7.216 6.444-13.08 14.394-13.08s14.408 5.864 14.408 13.08v41.17c0 7.222-6.458 13.081-14.408 13.081m60.477-48.793c0 24.71 20.02 44.725 44.724 44.725 24.686 0 44.71-20.016 44.71-44.725 0-24.691-20.024-44.697-44.71-44.697-24.704 0-44.724 20.006-44.724 44.697" fill="#fff"/><path d="M583.238 520.915c0 16.388 13.279 29.671 29.668 29.671 16.405 0 29.683-13.283 29.683-29.671 0-16.39-13.278-29.685-29.684-29.685-16.388 0-29.668 13.295-29.668 29.685" fill="#414042"/></g><text style="line-height:1.25;-inkscape-font-specification:'Montserrat Ultra-Bold'" x="234.416" y="878.644" font-weight="800" font-size="16" font-family="Montserrat" letter-spacing="0" word-spacing="0" fill="#333f67"><tspan x="234.416" y="878.644" font-size="112">PROJECT</tspan></text></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/project_extra_small.svg b/misc/dist/document_icons/project_extra_small.svg new file mode 100644 index 0000000000..5482d27033 --- /dev/null +++ b/misc/dist/document_icons/project_extra_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M12.698 4.59c-.368-.508-2.218-.623-3.086-.546.034-1.064.492-1.839-.593-2.766m-6.49-.51H7.25c1.205-.032 1.977.591 2.788 1.326L11.97 3.81c.998.89 1.393 1.729 1.5 2.94v8.483H2.53z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><g stroke-width=".32"><path d="M12.062 10.583s-.014-.083-.022-.082l-1.502.145a.244.244 0 0 0-.22.226l-.042.592-1.162.083-.079-.536a.246.246 0 0 0-.242-.21H7.208c-.12 0-.225.09-.243.21l-.079.536-1.162-.083-.041-.592a.244.244 0 0 0-.22-.226L3.958 10.5c-.007-.001-.013.082-.02.082l-.003.325 1.273.205.042.597c.008.12.105.218.226.227l1.6.114h.019c.12 0 .224-.089.242-.208l.081-.552h1.163l.08.552a.246.246 0 0 0 .26.208l1.601-.114a.246.246 0 0 0 .227-.227l.042-.597 1.272-.206z" fill="#fff"/><path d="M3.938 8.132v2.45l.013.001 1.503.145a.162.162 0 0 1 .146.15l.046.663 1.311.094.09-.612a.162.162 0 0 1 .16-.138h1.586a.162.162 0 0 1 .16.138l.09.612 1.311-.094.046-.663a.162.162 0 0 1 .146-.15l1.502-.145h.014V8.132h.006c.2-.254.383-.522.56-.808a6.285 6.285 0 0 0-.83-1.087 8.105 8.105 0 0 0-.823.48c-.13-.13-.278-.237-.422-.348-.143-.115-.303-.198-.455-.296a9.38 9.38 0 0 0 .077-1.015 5.275 5.275 0 0 0-1.234-.422 8.781 8.781 0 0 0-.457.892 3.13 3.13 0 0 0-.48-.039H8h-.003c-.16.002-.32.012-.48.039a8.71 8.71 0 0 0-.458-.892 5.276 5.276 0 0 0-1.233.422c.009.346.031.678.076 1.015-.152.098-.312.181-.454.296-.145.11-.292.217-.423.347a8.093 8.093 0 0 0-.823-.479c-.307.331-.595.688-.83 1.087.177.286.361.554.56.808z" fill="#478cbf"/><path d="M10.714 11.037l-.047.667a.162.162 0 0 1-.15.15l-1.6.114a.162.162 0 0 1-.172-.137l-.092-.623H7.347l-.092.623a.162.162 0 0 1-.171.137l-1.6-.114a.162.162 0 0 1-.15-.15l-.047-.667-1.351-.13.002.336c0 1.427 1.81 2.113 4.06 2.12h.005c2.25-.007 4.059-.693 4.059-2.12l.002-.336z" fill="#478cbf"/><path d="M6.776 9.127a.905.905 0 1 1-1.811 0 .905.905 0 0 1 1.81 0" fill="#fff"/><path d="M6.558 9.18a.6.6 0 1 1-1.202 0 .6.6 0 0 1 1.202 0" fill="#414042"/><path d="M8 10.115c-.16 0-.291-.119-.291-.265v-.834c0-.146.13-.265.291-.265.161 0 .292.119.292.265v.834c0 .146-.13.265-.292.265m1.225-.988a.906.906 0 1 0 1.81 0 .906.906 0 0 0-1.81 0" fill="#fff"/><path d="M9.443 9.18a.6.6 0 1 0 1.201 0 .6.6 0 0 0-1.201 0" fill="#414042"/></g></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/project_small.svg b/misc/dist/document_icons/project_small.svg new file mode 100644 index 0000000000..76f501b80d --- /dev/null +++ b/misc/dist/document_icons/project_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M25.396 9.18c-.736-1.016-4.435-1.245-6.172-1.093.068-2.126.983-3.676-1.186-5.532M5.059 1.536H14.5c2.41-.063 3.955 1.182 5.576 2.652l3.865 3.433c1.994 1.779 2.785 3.457 3 5.88v16.965H5.059z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><g stroke-width=".32"><path d="M22.268 20.443s-.02-.128-.033-.127l-2.318.224a.377.377 0 0 0-.34.35l-.064.912-1.793.128-.122-.827a.38.38 0 0 0-.374-.323h-2.447a.38.38 0 0 0-.374.323l-.122.827-1.793-.128-.064-.913a.377.377 0 0 0-.34-.35l-2.32-.223c-.011-.001-.02.127-.032.127l-.003.501 1.964.317.064.921a.38.38 0 0 0 .35.35l2.47.177h.028a.38.38 0 0 0 .373-.322l.125-.851h1.795l.125.851a.38.38 0 0 0 .4.322l2.471-.176a.38.38 0 0 0 .35-.351l.064-.92 1.964-.32z" fill="#fff"/><path d="M9.732 16.66v3.783h.02l2.32.224a.25.25 0 0 1 .224.231l.072 1.024 2.023.144.14-.945a.25.25 0 0 1 .246-.213h2.447a.25.25 0 0 1 .247.213l.14.945 2.022-.144.072-1.024a.25.25 0 0 1 .225-.23l2.318-.225h.02v-.302h.001V16.66h.009c.307-.392.591-.805.864-1.246a9.7 9.7 0 0 0-1.28-1.677c-.44.22-.867.472-1.27.738-.202-.2-.43-.364-.653-.536-.22-.176-.466-.305-.701-.456.07-.52.104-1.032.118-1.566a8.14 8.14 0 0 0-1.903-.652c-.26.438-.499.913-.707 1.376a4.832 4.832 0 0 0-.74-.059h-.01a4.837 4.837 0 0 0-.742.06 13.44 13.44 0 0 0-.706-1.377 8.142 8.142 0 0 0-1.903.652c.014.534.048 1.046.118 1.566-.235.15-.482.28-.701.456-.223.172-.451.336-.653.536-.403-.266-.83-.517-1.27-.738a9.704 9.704 0 0 0-1.28 1.677c.273.44.557.854.864 1.246z" fill="#478cbf"/><path d="M20.188 21.144l-.072 1.029a.25.25 0 0 1-.231.232l-2.47.176a.25.25 0 0 1-.265-.213l-.142-.96h-2.015l-.142.96a.25.25 0 0 1-.265.213l-2.47-.176a.25.25 0 0 1-.231-.232l-.072-1.03-2.085-.2c0 .224.004.47.004.518 0 2.203 2.793 3.261 6.264 3.273h.009c3.47-.012 6.263-1.07 6.263-3.273l.004-.518z" fill="#478cbf"/><path d="M14.11 18.195a1.397 1.397 0 1 1-2.794.001 1.397 1.397 0 0 1 2.795 0" fill="#fff"/><path d="M13.774 18.278a.927.927 0 1 1-1.854 0 .927.927 0 0 1 1.854 0" fill="#414042"/><path d="M16 19.72c-.248 0-.45-.183-.45-.409v-1.286c0-.226.202-.409.45-.409.249 0 .45.183.45.409v1.286c0 .226-.201.41-.45.41m1.89-1.526a1.397 1.397 0 1 0 2.795 0 1.397 1.397 0 0 0-2.795 0" fill="#fff"/><path d="M18.227 18.278a.927.927 0 1 0 1.854 0 .927.927 0 0 0-1.854 0" fill="#414042"/></g></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/resource.svg b/misc/dist/document_icons/resource.svg new file mode 100644 index 0000000000..2555e8f5c0 --- /dev/null +++ b/misc/dist/document_icons/resource.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024"><path d="M812.681 293.783c-23.575-32.543-141.93-39.865-197.505-34.983 2.17-68.048 31.457-117.656-37.966-177.026M161.89 49.151H464c77.128-2.02 126.554 37.835 178.444 84.881l123.665 109.83c63.819 56.94 89.13 110.625 96 188.174v542.886H161.89z" fill="#eff1f5" stroke="#9f9fa1" stroke-width="19.603" stroke-linecap="round" stroke-linejoin="round"/><text style="line-height:1.25;-inkscape-font-specification:'Montserrat Ultra-Bold'" x="183.282" y="878.644" font-weight="800" font-size="16" letter-spacing="0" word-spacing="0" font-family="Montserrat" fill="#333f67"><tspan x="183.282" y="878.644" font-size="112">RESOURCE</tspan></text><path style="text-indent:0;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;isolation:auto;mix-blend-mode:normal" d="M510.825 290.281a31.683 31.683 0 0 0-12.994 3.28L307.75 388.6a31.683 31.683 0 0 0-17.51 28.339v190.08a31.683 31.683 0 0 0 17.51 28.338l190.08 95.04a31.683 31.683 0 0 0 28.338 0l190.08-95.04a31.683 31.683 0 0 0 17.51-28.338V416.94a31.683 31.683 0 0 0-17.51-28.34l-190.08-95.04a31.683 31.683 0 0 0-15.345-3.279zM512 357.354l119.234 59.587-43.747 21.904-119.234-59.647L512 357.356zm-158.4 110.88l126.72 63.36v119.234l-126.72-63.36zm316.8 0v119.234l-126.72 63.36V531.594z" color="#000" white-space="normal" fill-rule="evenodd" fill="#478cbf"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/resource_extra_small.svg b/misc/dist/document_icons/resource_extra_small.svg new file mode 100644 index 0000000000..4ba41b0073 --- /dev/null +++ b/misc/dist/document_icons/resource_extra_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M12.698 4.59c-.368-.508-2.218-.623-3.086-.546.034-1.064.492-1.839-.593-2.766m-6.49-.51H7.25c1.205-.032 1.977.591 2.788 1.326L11.97 3.81c.998.89 1.393 1.729 1.5 2.94v8.483H2.53z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><path style="text-indent:0;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;isolation:auto;mix-blend-mode:normal" d="M7.976 4.51a.642.642 0 0 0-.263.067L3.864 6.5a.642.642 0 0 0-.354.574v3.849a.642.642 0 0 0 .354.574l3.85 1.924a.642.642 0 0 0 .573 0l3.85-1.924a.642.642 0 0 0 .354-.574v-3.85a.642.642 0 0 0-.355-.573L8.287 4.576a.642.642 0 0 0-.31-.066zM8 5.868l2.415 1.207-.886.444L7.114 6.31 8 5.868zM4.793 8.114l2.566 1.283v2.414l-2.566-1.283zm6.415 0v2.414l-2.566 1.283V9.397z" color="#000" white-space="normal" fill="#478cbf" fill-rule="evenodd"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/resource_small.svg b/misc/dist/document_icons/resource_small.svg new file mode 100644 index 0000000000..502a4c6c36 --- /dev/null +++ b/misc/dist/document_icons/resource_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M25.396 9.18c-.736-1.016-4.435-1.245-6.172-1.093.068-2.126.983-3.676-1.186-5.532M5.059 1.536H14.5c2.41-.063 3.955 1.182 5.576 2.652l3.865 3.433c1.994 1.779 2.785 3.457 3 5.88v16.965H5.059z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><path style="text-indent:0;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;isolation:auto;mix-blend-mode:normal" d="M15.964 11.071a.99.99 0 0 0-.406.103l-5.94 2.97a.99.99 0 0 0-.547.885v5.94a.99.99 0 0 0 .547.886l5.94 2.97a.99.99 0 0 0 .885 0l5.94-2.97a.99.99 0 0 0 .547-.886v-5.94a.99.99 0 0 0-.547-.885l-5.94-2.97a.99.99 0 0 0-.48-.103zM16 13.167l3.726 1.862-1.367.685-3.727-1.864 1.368-.683zm-4.95 3.465l3.96 1.98v3.726l-3.96-1.98zm9.9 0v3.726l-3.96 1.98v-3.726z" color="#000" white-space="normal" fill="#478cbf" fill-rule="evenodd"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/scene.svg b/misc/dist/document_icons/scene.svg new file mode 100644 index 0000000000..a4e1ca809e --- /dev/null +++ b/misc/dist/document_icons/scene.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024"><path d="M812.681 293.783c-23.575-32.542-141.93-39.864-197.505-34.983 2.17-68.048 31.457-117.655-37.966-177.025M161.89 49.15H464c77.128-2.02 126.554 37.836 178.444 84.882l123.665 109.83c63.819 56.94 89.13 110.624 96 188.174v542.885H161.89z" fill="#eff1f5" stroke="#9f9fa1" stroke-width="19.603" stroke-linecap="round" stroke-linejoin="round"/><text style="line-height:1.25;-inkscape-font-specification:'Montserrat Ultra-Bold'" x="315.088" y="878.644" font-weight="800" font-size="16" font-family="Montserrat" letter-spacing="0" word-spacing="0" fill="#333f67"><tspan x="315.088" y="878.644" font-size="112">SCENE</tspan></text><path d="M714.504 315.805l-67.735 9.904 24.7 57.361 51.76-7.546zm-127.458 18.57l-59.719 8.725 24.702 57.419 59.719-8.725zm-119.498 17.45l-59.719 8.725 24.701 57.419 59.72-8.725zm-119.438 17.45l-51.76 7.546 8.725 59.719 67.736-9.904zm-43.036 97.449v181.104c0 33.34 27.027 60.368 60.368 60.368H727.65V466.724z" fill="#478cbf"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/scene_extra_small.svg b/misc/dist/document_icons/scene_extra_small.svg new file mode 100644 index 0000000000..155aa843b2 --- /dev/null +++ b/misc/dist/document_icons/scene_extra_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M12.698 4.59c-.368-.508-2.218-.623-3.086-.546.034-1.064.492-1.839-.593-2.766m-6.49-.51H7.25c1.205-.032 1.977.591 2.788 1.326L11.97 3.81c.998.89 1.393 1.729 1.5 2.94v8.483H2.53z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><path d="M12.101 5.027l-1.372.2.5 1.162 1.049-.153zm-2.581.376l-1.21.177.5 1.162 1.21-.176zm-2.42.353l-1.21.177.501 1.163 1.21-.177zm-2.419.354l-1.048.152.177 1.21 1.372-.2zM3.81 8.083v3.667c0 .676.547 1.223 1.222 1.223h7.335v-4.89z" fill="#478cbf"/></svg>
\ No newline at end of file diff --git a/misc/dist/document_icons/scene_small.svg b/misc/dist/document_icons/scene_small.svg new file mode 100644 index 0000000000..d36d42f458 --- /dev/null +++ b/misc/dist/document_icons/scene_small.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M25.396 9.18c-.736-1.016-4.435-1.245-6.172-1.093.068-2.126.983-3.676-1.186-5.532M5.059 1.536H14.5c2.41-.063 3.955 1.182 5.576 2.652l3.865 3.433c1.994 1.779 2.785 3.457 3 5.88v16.965H5.059z" fill="#eff1f5" stroke="#9f9fa1" stroke-linecap="round" stroke-linejoin="round"/><path d="M22.329 11.869l-2.117.31.772 1.792 1.617-.236zm-3.983.58l-1.867.273.772 1.794 1.867-.273zm-3.735.545l-1.866.273.772 1.794 1.866-.272zm-3.732.546l-1.618.235.273 1.867 2.117-.31zm-1.345 3.045v5.66c0 1.041.845 1.886 1.887 1.886H22.74v-7.546z" fill="#478cbf"/></svg>
\ No newline at end of file diff --git a/misc/dist/linux/godot.6 b/misc/dist/linux/godot.6 index 50cb420e4e..43ca4e9d10 100644 --- a/misc/dist/linux/godot.6 +++ b/misc/dist/linux/godot.6 @@ -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', 'io', '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', 'image', 'ordered_hash_map'). .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 faa929b818..a001fdf9d2 100755 --- a/misc/dist/osx_tools.app/Contents/Info.plist +++ b/misc/dist/osx_tools.app/Contents/Info.plist @@ -72,22 +72,67 @@ <key>UTTypeDescription</key> <string>Godot Scene</string> <key>UTTypeIconFile</key> - <string>Document.icns</string> + <string>Scene.icns</string> <key>UTTypeConformsTo</key> <array> <string>public.data</string> </array> <key>UTTypeTagSpecification</key> <dict> - <key>com.apple.ostype</key> - <string>TSCN</string> <key>public.filename-extension</key> <array> <string>scn</string> <string>tscn</string> </array> <key>public.mime-type</key> - <string>scene/x-scn</string> + <string>application/x-godot-scene</string> + </dict> + </dict> + <dict> + <key>UTTypeIdentifier</key> + <string>public.gd</string> + <key>UTTypeReferenceURL</key> + <string></string> + <key>UTTypeDescription</key> + <string>Godot Script</string> + <key>UTTypeIconFile</key> + <string>GDScript.icns</string> + <key>UTTypeConformsTo</key> + <array> + <string>public.data</string> + </array> + <key>UTTypeTagSpecification</key> + <dict> + <key>public.filename-extension</key> + <array> + <string>gd</string> + </array> + <key>public.mime-type</key> + <string>text/x-gdscript</string> + </dict> + </dict> + <dict> + <key>UTTypeIdentifier</key> + <string>public.res</string> + <key>UTTypeReferenceURL</key> + <string></string> + <key>UTTypeDescription</key> + <string>Godot Resource</string> + <key>UTTypeIconFile</key> + <string>Resource.icns</string> + <key>UTTypeConformsTo</key> + <array> + <string>public.data</string> + </array> + <key>UTTypeTagSpecification</key> + <dict> + <key>public.filename-extension</key> + <array> + <string>res</string> + <string>tres</string> + </array> + <key>public.mime-type</key> + <string>application/x-godot-resource</string> </dict> </dict> <dict> @@ -98,21 +143,19 @@ <key>UTTypeDescription</key> <string>Godot Project</string> <key>UTTypeIconFile</key> - <string>Document.icns</string> + <string>Project.icns</string> <key>UTTypeConformsTo</key> <array> <string>public.data</string> </array> <key>UTTypeTagSpecification</key> <dict> - <key>com.apple.ostype</key> - <string>GODP</string> <key>public.filename-extension</key> <array> <string>godot</string> </array> <key>public.mime-type</key> - <string>project/x-godot</string> + <string>text/x-godot-project</string> </dict> </dict> </array> diff --git a/misc/dist/osx_tools.app/Contents/Resources/Document.icns b/misc/dist/osx_tools.app/Contents/Resources/Document.icns Binary files differdeleted file mode 100644 index 06d7c65298..0000000000 --- a/misc/dist/osx_tools.app/Contents/Resources/Document.icns +++ /dev/null diff --git a/misc/dist/osx_tools.app/Contents/Resources/GDScript.icns b/misc/dist/osx_tools.app/Contents/Resources/GDScript.icns Binary files differnew file mode 100644 index 0000000000..b08e8df339 --- /dev/null +++ b/misc/dist/osx_tools.app/Contents/Resources/GDScript.icns diff --git a/misc/dist/osx_tools.app/Contents/Resources/Project.icns b/misc/dist/osx_tools.app/Contents/Resources/Project.icns Binary files differnew file mode 100644 index 0000000000..10e31528e4 --- /dev/null +++ b/misc/dist/osx_tools.app/Contents/Resources/Project.icns diff --git a/misc/dist/osx_tools.app/Contents/Resources/Resource.icns b/misc/dist/osx_tools.app/Contents/Resources/Resource.icns Binary files differnew file mode 100644 index 0000000000..9648cb616e --- /dev/null +++ b/misc/dist/osx_tools.app/Contents/Resources/Resource.icns diff --git a/misc/dist/osx_tools.app/Contents/Resources/Scene.icns b/misc/dist/osx_tools.app/Contents/Resources/Scene.icns Binary files differnew file mode 100644 index 0000000000..c8c3dee07e --- /dev/null +++ b/misc/dist/osx_tools.app/Contents/Resources/Scene.icns diff --git a/modules/bullet/bullet_physics_server.cpp b/modules/bullet/bullet_physics_server.cpp index 315afe3d72..7bc731e75e 100644 --- a/modules/bullet/bullet_physics_server.cpp +++ b/modules/bullet/bullet_physics_server.cpp @@ -1471,6 +1471,22 @@ bool BulletPhysicsServer::generic_6dof_joint_get_flag(RID p_joint, Vector3::Axis return generic_6dof_joint->get_flag(p_axis, p_flag); } +void BulletPhysicsServer::generic_6dof_joint_set_precision(RID p_joint, int p_precision) { + JointBullet *joint = joint_owner.get(p_joint); + ERR_FAIL_COND(!joint); + ERR_FAIL_COND(joint->get_type() != JOINT_6DOF); + Generic6DOFJointBullet *generic_6dof_joint = static_cast<Generic6DOFJointBullet *>(joint); + generic_6dof_joint->set_precision(p_precision); +} + +int BulletPhysicsServer::generic_6dof_joint_get_precision(RID p_joint) { + JointBullet *joint = joint_owner.get(p_joint); + ERR_FAIL_COND_V(!joint, 0); + ERR_FAIL_COND_V(joint->get_type() != JOINT_6DOF, 0); + Generic6DOFJointBullet *generic_6dof_joint = static_cast<Generic6DOFJointBullet *>(joint); + return generic_6dof_joint->get_precision(); +} + void BulletPhysicsServer::free(RID p_rid) { if (shape_owner.owns(p_rid)) { diff --git a/modules/bullet/bullet_physics_server.h b/modules/bullet/bullet_physics_server.h index c8c782267e..0cea3f5ba6 100644 --- a/modules/bullet/bullet_physics_server.h +++ b/modules/bullet/bullet_physics_server.h @@ -375,6 +375,9 @@ public: virtual void generic_6dof_joint_set_flag(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisFlag p_flag, bool p_enable); virtual bool generic_6dof_joint_get_flag(RID p_joint, Vector3::Axis p_axis, G6DOFJointAxisFlag p_flag); + virtual void generic_6dof_joint_set_precision(RID p_joint, int precision); + virtual int generic_6dof_joint_get_precision(RID p_joint); + /* MISC */ virtual void free(RID p_rid); diff --git a/modules/bullet/generic_6dof_joint_bullet.cpp b/modules/bullet/generic_6dof_joint_bullet.cpp index a94b88d566..812dcd2d56 100644 --- a/modules/bullet/generic_6dof_joint_bullet.cpp +++ b/modules/bullet/generic_6dof_joint_bullet.cpp @@ -265,3 +265,11 @@ bool Generic6DOFJointBullet::get_flag(Vector3::Axis p_axis, PhysicsServer::G6DOF ERR_FAIL_INDEX_V(p_axis, 3, false); return flags[p_axis][p_flag]; } + +void Generic6DOFJointBullet::set_precision(int p_precision) { + sixDOFConstraint->setOverrideNumSolverIterations(MAX(1, p_precision)); +} + +int Generic6DOFJointBullet::get_precision() const { + return sixDOFConstraint->getOverrideNumSolverIterations(); +} diff --git a/modules/bullet/generic_6dof_joint_bullet.h b/modules/bullet/generic_6dof_joint_bullet.h index 176127ed6c..848c3a10cd 100644 --- a/modules/bullet/generic_6dof_joint_bullet.h +++ b/modules/bullet/generic_6dof_joint_bullet.h @@ -68,6 +68,9 @@ public: void set_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag, bool p_value); bool get_flag(Vector3::Axis p_axis, PhysicsServer::G6DOFJointAxisFlag p_flag) const; + + void set_precision(int p_precision); + int get_precision() const; }; #endif diff --git a/modules/bullet/godot_result_callbacks.cpp b/modules/bullet/godot_result_callbacks.cpp index 3b44ab838e..0117bb375f 100644 --- a/modules/bullet/godot_result_callbacks.cpp +++ b/modules/bullet/godot_result_callbacks.cpp @@ -102,6 +102,9 @@ bool GodotAllConvexResultCallback::needsCollision(btBroadphaseProxy *proxy0) con } btScalar GodotAllConvexResultCallback::addSingleResult(btCollisionWorld::LocalConvexResult &convexResult, bool normalInWorldSpace) { + if (count >= m_resultMax) + return 1; // not used by bullet + CollisionObjectBullet *gObj = static_cast<CollisionObjectBullet *>(convexResult.m_hitCollisionObject->getUserPointer()); PhysicsDirectSpaceState::ShapeResult &result = m_results[count]; @@ -172,6 +175,9 @@ btScalar GodotClosestConvexResultCallback::addSingleResult(btCollisionWorld::Loc } bool GodotAllContactResultCallback::needsCollision(btBroadphaseProxy *proxy0) const { + if (m_count >= m_resultMax) + return false; + const bool needs = GodotFilterCallback::test_collision_filters(m_collisionFilterGroup, m_collisionFilterMask, proxy0->m_collisionFilterGroup, proxy0->m_collisionFilterMask); if (needs) { btCollisionObject *btObj = static_cast<btCollisionObject *>(proxy0->m_clientObject); @@ -249,6 +255,8 @@ bool GodotContactPairContactResultCallback::needsCollision(btBroadphaseProxy *pr } btScalar GodotContactPairContactResultCallback::addSingleResult(btManifoldPoint &cp, const btCollisionObjectWrapper *colObj0Wrap, int partId0, int index0, const btCollisionObjectWrapper *colObj1Wrap, int partId1, int index1) { + if (m_count >= m_resultMax) + return 1; // not used by bullet if (m_self_object == colObj0Wrap->getCollisionObject()) { B_TO_G(cp.m_localPointA, m_results[m_count * 2 + 0]); // Local contact diff --git a/modules/bullet/shape_bullet.cpp b/modules/bullet/shape_bullet.cpp index 8bb621a863..2027d8e1eb 100644 --- a/modules/bullet/shape_bullet.cpp +++ b/modules/bullet/shape_bullet.cpp @@ -461,7 +461,47 @@ void HeightMapShapeBullet::set_data(const Variant &p_data) { int l_width = d["width"]; int l_depth = d["depth"]; - PoolVector<real_t> l_heights = d["heights"]; + + // TODO This code will need adjustments if real_t is set to `double`, + // because that precision is unnecessary for a heightmap and Bullet doesn't support it... + + PoolVector<real_t> l_heights; + Variant l_heights_v = d["heights"]; + + if (l_heights_v.get_type() == Variant::POOL_REAL_ARRAY) { + // Ready-to-use heights can be passed + + l_heights = l_heights_v; + + } else if (l_heights_v.get_type() == Variant::OBJECT) { + // If an image is passed, we have to convert it to a format Bullet supports. + // this would be expensive to do with a script, so it's nice to have it here. + + Ref<Image> l_image = l_heights_v; + ERR_FAIL_COND(l_image.is_null()); + + // Float is the only common format between Godot and Bullet that can be used for decent collision. + // (Int16 would be nice too but we still don't have it) + // We could convert here automatically but it's better to not be intrusive and let the caller do it if necessary. + ERR_FAIL_COND(l_image->get_format() != Image::FORMAT_RF); + + PoolByteArray im_data = l_image->get_data(); + + l_heights.resize(l_image->get_width() * l_image->get_width()); + + PoolRealArray::Write w = l_heights.write(); + PoolByteArray::Read r = im_data.read(); + float *rp = (float *)r.ptr(); + // At this point, `rp` could be used directly for Bullet, but I don't know how safe it would be. + + for (int i = 0; i < l_heights.size(); ++i) { + w[i] = rp[i]; + } + + } else { + ERR_EXPLAIN("Expected PoolRealArray or float Image."); + ERR_FAIL(); + } ERR_FAIL_COND(l_width <= 0); ERR_FAIL_COND(l_depth <= 0); @@ -497,19 +537,8 @@ PhysicsServer::ShapeType HeightMapShapeBullet::get_type() const { void HeightMapShapeBullet::setup(PoolVector<real_t> &p_heights, int p_width, int p_depth, real_t p_min_height, real_t p_max_height) { // TODO cell size must be tweaked using localScaling, which is a shared property for all Bullet shapes - { // Copy - - // TODO If Godot supported 16-bit integer image format, we could share the same memory block for heightfields - // without having to copy anything, optimizing memory and loading performance (Bullet only reads and doesn't take ownership of the data). - - const int heights_size = p_heights.size(); - heights.resize(heights_size); - PoolVector<real_t>::Read p_heights_r = p_heights.read(); - PoolVector<real_t>::Write heights_w = heights.write(); - for (int i = heights_size - 1; 0 <= i; --i) { - heights_w[i] = p_heights_r[i]; - } - } + // If this array is resized outside of here, it should be preserved due to CoW + heights = p_heights; width = p_width; depth = p_depth; diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp index a4c34e7583..f4b061f494 100644 --- a/modules/csg/csg_shape.cpp +++ b/modules/csg/csg_shape.cpp @@ -47,6 +47,7 @@ void CSGShape::set_use_collision(bool p_enable) { PhysicsServer::get_singleton()->body_set_state(root_collision_instance, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform()); PhysicsServer::get_singleton()->body_add_shape(root_collision_instance, root_collision_shape->get_rid()); PhysicsServer::get_singleton()->body_set_space(root_collision_instance, get_world()->get_space()); + PhysicsServer::get_singleton()->body_attach_object_instance_id(root_collision_instance, get_instance_id()); _make_dirty(); //force update } else { PhysicsServer::get_singleton()->free(root_collision_instance); @@ -196,17 +197,6 @@ void CSGShape::mikktGetTexCoord(const SMikkTSpaceContext *pContext, float fvTexc fvTexcOut[1] = t.y; } -void CSGShape::mikktSetTSpaceBasic(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fSign, const int iFace, const int iVert) { - ShapeUpdateSurface &surface = *((ShapeUpdateSurface *)pContext->m_pUserData); - - int i = (iFace * 3 + iVert) * 4; - - surface.tansw[i++] = fvTangent[0]; - surface.tansw[i++] = fvTangent[1]; - surface.tansw[i++] = fvTangent[2]; - surface.tansw[i++] = fSign; -} - void CSGShape::mikktSetTSpaceDefault(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fvBiTangent[], const float fMagS, const float fMagT, const tbool bIsOrientationPreserving, const int iFace, const int iVert) { @@ -215,7 +205,7 @@ void CSGShape::mikktSetTSpaceDefault(const SMikkTSpaceContext *pContext, const f int i = iFace * 3 + iVert; Vector3 normal = surface.normalsw[i]; Vector3 tangent = Vector3(fvTangent[0], fvTangent[1], fvTangent[2]); - Vector3 bitangent = Vector3(fvBiTangent[0], fvBiTangent[1], fvBiTangent[2]); + Vector3 bitangent = Vector3(-fvBiTangent[0], -fvBiTangent[1], -fvBiTangent[2]); // for some reason these are reversed, something with the coordinate system in Godot float d = bitangent.dot(normal.cross(tangent)); i *= 4; @@ -468,6 +458,7 @@ void CSGShape::_notification(int p_what) { PhysicsServer::get_singleton()->body_set_state(root_collision_instance, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform()); PhysicsServer::get_singleton()->body_add_shape(root_collision_instance, root_collision_shape->get_rid()); PhysicsServer::get_singleton()->body_set_space(root_collision_instance, get_world()->get_space()); + PhysicsServer::get_singleton()->body_attach_object_instance_id(root_collision_instance, get_instance_id()); } _make_dirty(); diff --git a/modules/csg/csg_shape.h b/modules/csg/csg_shape.h index 0a4bb5f665..7326f3d36a 100644 --- a/modules/csg/csg_shape.h +++ b/modules/csg/csg_shape.h @@ -97,7 +97,6 @@ private: static void mikktGetPosition(const SMikkTSpaceContext *pContext, float fvPosOut[], const int iFace, const int iVert); static void mikktGetNormal(const SMikkTSpaceContext *pContext, float fvNormOut[], const int iFace, const int iVert); static void mikktGetTexCoord(const SMikkTSpaceContext *pContext, float fvTexcOut[], const int iFace, const int iVert); - static void mikktSetTSpaceBasic(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fSign, const int iFace, const int iVert); static void mikktSetTSpaceDefault(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fvBiTangent[], const float fMagS, const float fMagT, const tbool bIsOrientationPreserving, const int iFace, const int iVert); diff --git a/modules/gdnative/nativescript/nativescript.cpp b/modules/gdnative/nativescript/nativescript.cpp index eb133502c4..bcaf3f346e 100644 --- a/modules/gdnative/nativescript/nativescript.cpp +++ b/modules/gdnative/nativescript/nativescript.cpp @@ -294,6 +294,10 @@ MethodInfo NativeScript::get_method_info(const StringName &p_method) const { return MethodInfo(); } +bool NativeScript::is_valid() const { + return true; +} + bool NativeScript::is_tool() const { NativeScriptDesc *script_data = get_script_desc(); diff --git a/modules/gdnative/nativescript/nativescript.h b/modules/gdnative/nativescript/nativescript.h index 51370f5fbf..e6f3c06ee5 100644 --- a/modules/gdnative/nativescript/nativescript.h +++ b/modules/gdnative/nativescript/nativescript.h @@ -160,6 +160,7 @@ public: virtual MethodInfo get_method_info(const StringName &p_method) const; virtual bool is_tool() const; + virtual bool is_valid() const; virtual ScriptLanguage *get_language() const; diff --git a/modules/gdnative/pluginscript/pluginscript_script.h b/modules/gdnative/pluginscript/pluginscript_script.h index 31c6c4d67f..3ade8ac004 100644 --- a/modules/gdnative/pluginscript/pluginscript_script.h +++ b/modules/gdnative/pluginscript/pluginscript_script.h @@ -102,6 +102,7 @@ public: PropertyInfo get_property_info(const StringName &p_property) const; bool is_tool() const { return _tool; } + bool is_valid() const { return true; } virtual ScriptLanguage *get_language() const; diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index 1f5f5035f9..538249c8e2 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -867,7 +867,6 @@ bool GDScript::has_script_signal(const StringName &p_signal) const { else if (base_cache.is_valid()) { return base_cache->has_script_signal(p_signal); } - #endif return false; } diff --git a/modules/gdscript/gdscript.h b/modules/gdscript/gdscript.h index f344beba9f..752d660ffb 100644 --- a/modules/gdscript/gdscript.h +++ b/modules/gdscript/gdscript.h @@ -141,7 +141,7 @@ protected: static void _bind_methods(); public: - bool is_valid() const { return valid; } + virtual bool is_valid() const { return valid; } const Map<StringName, Ref<GDScript> > &get_subclasses() const { return subclasses; } const Map<StringName, Variant> &get_constants() const { return constants; } diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp index 310c4e21f2..caa7fbfeca 100644 --- a/modules/gdscript/gdscript_compiler.cpp +++ b/modules/gdscript/gdscript_compiler.cpp @@ -132,7 +132,7 @@ GDScriptDataType GDScriptCompiler::_gdtype_from_datatype(const GDScriptParser::D result.kind = GDScriptDataType::SCRIPT; result.script_type = p_datatype.script_type; result.native_type = result.script_type->get_instance_base_type(); - } + } break; case GDScriptParser::DataType::GDSCRIPT: { result.kind = GDScriptDataType::GDSCRIPT; result.script_type = p_datatype.script_type; diff --git a/modules/gdscript/gdscript_functions.cpp b/modules/gdscript/gdscript_functions.cpp index 2f31d59c46..2485e6f04a 100644 --- a/modules/gdscript/gdscript_functions.cpp +++ b/modules/gdscript/gdscript_functions.cpp @@ -758,22 +758,14 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_ r_ret = Variant(); return; } + r_ret = *p_args[0]; VariantParser::StreamString ss; ss.s = *p_args[0]; String errs; int line; - Error err = VariantParser::parse(&ss, r_ret, errs, line); - - if (err != OK) { - r_error.error = Variant::CallError::CALL_ERROR_INVALID_ARGUMENT; - r_error.argument = 0; - r_error.expected = Variant::STRING; - r_ret = "Parse error at line " + itos(line) + ": " + errs; - return; - } - + (void)VariantParser::parse(&ss, r_ret, errs, line); } break; case VAR_TO_BYTES: { VALIDATE_ARG_COUNT(1); @@ -890,7 +882,7 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_ int incr = *p_args[2]; if (incr == 0) { - r_ret = RTR("step argument is zero!"); + r_ret = RTR("Step argument is zero!"); r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD; return; } diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 0926c1a1ab..6ea0dbcb19 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -5746,18 +5746,23 @@ bool GDScriptParser::_is_type_compatible(const DataType &p_container, const Data if (p_container.kind == DataType::BUILTIN && p_expression.kind == DataType::BUILTIN) { bool valid = p_container.builtin_type == p_expression.builtin_type; if (p_allow_implicit_conversion) { - valid = valid || (p_container.builtin_type == Variant::INT && p_expression.builtin_type == Variant::REAL); - valid = valid || (p_container.builtin_type == Variant::REAL && p_expression.builtin_type == Variant::INT); - valid = valid || (p_container.builtin_type == Variant::STRING && p_expression.builtin_type == Variant::NODE_PATH); - valid = valid || (p_container.builtin_type == Variant::NODE_PATH && p_expression.builtin_type == Variant::STRING); - valid = valid || (p_container.builtin_type == Variant::BOOL && p_expression.builtin_type == Variant::REAL); - valid = valid || (p_container.builtin_type == Variant::BOOL && p_expression.builtin_type == Variant::INT); - valid = valid || (p_container.builtin_type == Variant::INT && p_expression.builtin_type == Variant::BOOL); - valid = valid || (p_container.builtin_type == Variant::REAL && p_expression.builtin_type == Variant::BOOL); + valid = valid || Variant::can_convert_strict(p_expression.builtin_type, p_container.builtin_type); } return valid; } + if (p_container.kind == DataType::BUILTIN && p_container.builtin_type == Variant::OBJECT) { + // Object built-in is a special case, it's compatible with any object and with null + if (p_expression.kind == DataType::BUILTIN && p_expression.builtin_type == Variant::NIL) { + return true; + } + if (p_expression.kind == DataType::BUILTIN) { + return false; + } + // If it's not a built-in, must be an object + return true; + } + if (p_container.kind == DataType::BUILTIN || (p_expression.kind == DataType::BUILTIN && p_expression.builtin_type != Variant::NIL)) { // Can't mix built-ins with objects return false; diff --git a/modules/mono/SCsub b/modules/mono/SCsub index 0e5dd9b4cf..e1f5e2ef28 100644 --- a/modules/mono/SCsub +++ b/modules/mono/SCsub @@ -103,6 +103,16 @@ import os def find_nuget_unix(): + import os + + if 'NUGET_PATH' in os.environ: + hint_path = os.environ['NUGET_PATH'] + if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): + return hint_path + hint_path = os.path.join(hint_path, 'nuget') + if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): + return hint_path + import os.path import sys @@ -129,6 +139,16 @@ def find_nuget_unix(): def find_nuget_windows(): + import os + + if 'NUGET_PATH' in os.environ: + hint_path = os.environ['NUGET_PATH'] + if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): + return hint_path + hint_path = os.path.join(hint_path, 'nuget.exe') + if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): + return hint_path + import mono_reg_utils as monoreg mono_root = '' @@ -160,14 +180,6 @@ def find_nuget_windows(): if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): return hint_path - if 'NUGET_PATH' in os.environ: - hint_path = os.environ['NUGET_PATH'] - if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): - return hint_path - hint_path = os.path.join(hint_path, 'nuget.exe') - if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): - return hint_path - return None diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 700e518cfc..943d95bfc9 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -50,6 +50,7 @@ #include "mono_gd/gd_mono_marshal.h" #include "signal_awaiter_utils.h" #include "utils/macros.h" +#include "utils/mutex_utils.h" #include "utils/string_utils.h" #include "utils/thread_local.h" @@ -378,60 +379,72 @@ static String variant_type_to_managed_name(const String &p_var_type_name) { return "object"; if (!ClassDB::class_exists(p_var_type_name)) { - Variant::Type var_types[] = { - Variant::BOOL, - Variant::INT, - Variant::REAL, - Variant::STRING, - Variant::VECTOR2, - Variant::RECT2, - Variant::VECTOR3, - Variant::TRANSFORM2D, - Variant::PLANE, - Variant::QUAT, - Variant::AABB, - Variant::BASIS, - Variant::TRANSFORM, - Variant::COLOR, - Variant::NODE_PATH, - Variant::_RID - }; - - for (int i = 0; i < sizeof(var_types) / sizeof(Variant::Type); i++) { - if (p_var_type_name == Variant::get_type_name(var_types[i])) - return p_var_type_name; - } + return p_var_type_name; + } - if (p_var_type_name == "String") - return "string"; // I prefer this one >:[ + if (p_var_type_name == Variant::get_type_name(Variant::OBJECT)) + return "Godot.Object"; - // TODO these will be rewritten later into custom containers + if (p_var_type_name == Variant::get_type_name(Variant::REAL)) { +#ifdef REAL_T_IS_DOUBLE + return "double"; +#else + return "float"; +#endif + } - if (p_var_type_name == "Array") - return "object[]"; + if (p_var_type_name == Variant::get_type_name(Variant::STRING)) + return "string"; // I prefer this one >:[ - if (p_var_type_name == "Dictionary") - return "Dictionary<object, object>"; + if (p_var_type_name == Variant::get_type_name(Variant::DICTIONARY)) + return "Collections.Dictionary"; - if (p_var_type_name == "PoolByteArray") - return "byte[]"; - if (p_var_type_name == "PoolIntArray") - return "int[]"; - if (p_var_type_name == "PoolRealArray") - return "float[]"; - if (p_var_type_name == "PoolStringArray") - return "string[]"; - if (p_var_type_name == "PoolVector2Array") - return "Vector2[]"; - if (p_var_type_name == "PoolVector3Array") - return "Vector3[]"; - if (p_var_type_name == "PoolColorArray") - return "Color[]"; + if (p_var_type_name == Variant::get_type_name(Variant::ARRAY)) + return "Collections.Array"; - return "object"; + if (p_var_type_name == Variant::get_type_name(Variant::POOL_BYTE_ARRAY)) + return "byte[]"; + if (p_var_type_name == Variant::get_type_name(Variant::POOL_INT_ARRAY)) + return "int[]"; + if (p_var_type_name == Variant::get_type_name(Variant::POOL_REAL_ARRAY)) { +#ifdef REAL_T_IS_DOUBLE + return "double[]"; +#else + return "float[]"; +#endif + } + if (p_var_type_name == Variant::get_type_name(Variant::POOL_STRING_ARRAY)) + return "string[]"; + if (p_var_type_name == Variant::get_type_name(Variant::POOL_VECTOR2_ARRAY)) + return "Vector2[]"; + if (p_var_type_name == Variant::get_type_name(Variant::POOL_VECTOR3_ARRAY)) + return "Vector3[]"; + if (p_var_type_name == Variant::get_type_name(Variant::POOL_COLOR_ARRAY)) + return "Color[]"; + + Variant::Type var_types[] = { + Variant::BOOL, + Variant::INT, + Variant::VECTOR2, + Variant::RECT2, + Variant::VECTOR3, + Variant::TRANSFORM2D, + Variant::PLANE, + Variant::QUAT, + Variant::AABB, + Variant::BASIS, + Variant::TRANSFORM, + Variant::COLOR, + Variant::NODE_PATH, + Variant::_RID + }; + + for (int i = 0; i < sizeof(var_types) / sizeof(Variant::Type); i++) { + if (p_var_type_name == Variant::get_type_name(var_types[i])) + return p_var_type_name; } - return p_var_type_name; + return "object"; } String CSharpLanguage::make_function(const String &, const String &p_name, const PoolStringArray &p_args) const { @@ -507,8 +520,7 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::stack_trace_get_info(MonoObjec MonoException *exc = NULL; - GDMonoUtils::StackTrace_GetFrames st_get_frames = CACHED_METHOD_THUNK(System_Diagnostics_StackTrace, GetFrames); - MonoArray *frames = st_get_frames(p_stack_trace, (MonoObject **)&exc); + MonoArray *frames = invoke_method_thunk(CACHED_METHOD_THUNK(System_Diagnostics_StackTrace, GetFrames), p_stack_trace, (MonoObject **)&exc); if (exc) { GDMonoUtils::debug_print_unhandled_exception(exc); @@ -532,7 +544,7 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::stack_trace_get_info(MonoObjec MonoString *file_name; int file_line_num; MonoString *method_decl; - get_sf_info(frame, &file_name, &file_line_num, &method_decl, (MonoObject **)&exc); + invoke_method_thunk(get_sf_info, frame, &file_name, &file_line_num, &method_decl, (MonoObject **)&exc); if (exc) { GDMonoUtils::debug_print_unhandled_exception(exc); @@ -561,10 +573,8 @@ void CSharpLanguage::frame() { MonoObject *task_scheduler = task_scheduler_handle->get_target(); if (task_scheduler) { - GDMonoUtils::GodotTaskScheduler_Activate thunk = CACHED_METHOD_THUNK(GodotTaskScheduler, Activate); - MonoException *exc = NULL; - thunk(task_scheduler, (MonoObject **)&exc); + invoke_method_thunk(CACHED_METHOD_THUNK(GodotTaskScheduler, Activate), task_scheduler, (MonoObject **)&exc); if (exc) { GDMonoUtils::debug_unhandled_exception(exc); @@ -599,24 +609,20 @@ void CSharpLanguage::reload_all_scripts() { #ifdef DEBUG_ENABLED -#ifndef NO_THREADS - lock->lock(); -#endif - List<Ref<CSharpScript> > scripts; - SelfList<CSharpScript> *elem = script_list.first(); - while (elem) { - if (elem->self()->get_path().is_resource_file()) { - scripts.push_back(Ref<CSharpScript>(elem->self())); //cast to gdscript to avoid being erased by accident + { + SCOPED_MUTEX_LOCK(script_instances_mutex); + + SelfList<CSharpScript> *elem = script_list.first(); + while (elem) { + if (elem->self()->get_path().is_resource_file()) { + scripts.push_back(Ref<CSharpScript>(elem->self())); //cast to gdscript to avoid being erased by accident + } + elem = elem->next(); } - elem = elem->next(); } -#ifndef NO_THREADS - lock->unlock(); -#endif - //as scripts are going to be reloaded, must proceed without locking here scripts.sort_custom<CSharpScriptDepSort>(); //update in inheritance dependency order @@ -625,6 +631,7 @@ void CSharpLanguage::reload_all_scripts() { E->get()->load_source_code(E->get()->get_path()); E->get()->reload(true); } + #endif } @@ -634,15 +641,17 @@ void CSharpLanguage::reload_tool_script(const Ref<Script> &p_script, bool p_soft #ifdef TOOLS_ENABLED MonoReloadNode::get_singleton()->restart_reload_timer(); - reload_assemblies_if_needed(p_soft_reload); + if (is_assembly_reloading_needed()) { + reload_assemblies(p_soft_reload); + } #endif } #ifdef TOOLS_ENABLED -void CSharpLanguage::reload_assemblies_if_needed(bool p_soft_reload) { +bool CSharpLanguage::is_assembly_reloading_needed() { if (!gdmono->is_runtime_initialized()) - return; + return false; GDMonoAssembly *proj_assembly = gdmono->get_project_assembly(); @@ -660,164 +669,208 @@ void CSharpLanguage::reload_assemblies_if_needed(bool p_soft_reload) { // Maybe it wasn't loaded from the default path, so check this as well proj_asm_path = GodotSharpDirs::get_res_temp_assemblies_dir().plus_file(name); if (!FileAccess::exists(proj_asm_path)) - return; // No assembly to load + return false; // No assembly to load } if (FileAccess::get_modified_time(proj_asm_path) <= proj_assembly->get_modified_time()) - return; // Already up to date + return false; // Already up to date } else { if (!FileAccess::exists(GodotSharpDirs::get_res_temp_assemblies_dir().plus_file(name))) - return; // No assembly to load + return false; // No assembly to load } if (!gdmono->get_core_api_assembly() && gdmono->metadata_is_api_assembly_invalidated(APIAssembly::API_CORE)) - return; // The core API assembly to load is invalidated + return false; // The core API assembly to load is invalidated if (!gdmono->get_editor_api_assembly() && gdmono->metadata_is_api_assembly_invalidated(APIAssembly::API_EDITOR)) - return; // The editor API assembly to load is invalidated + return false; // The editor API assembly to load is invalidated -#ifndef NO_THREADS - lock->lock(); -#endif + return true; +} + +void CSharpLanguage::reload_assemblies(bool p_soft_reload) { + + if (!gdmono->is_runtime_initialized()) + return; + + // There is no soft reloading with Mono. It's always hard reloading. List<Ref<CSharpScript> > scripts; - SelfList<CSharpScript> *elem = script_list.first(); - while (elem) { - if (elem->self()->get_path().is_resource_file()) { + { + SCOPED_MUTEX_LOCK(script_instances_mutex); - scripts.push_back(Ref<CSharpScript>(elem->self())); //cast to CSharpScript to avoid being erased by accident + for (SelfList<CSharpScript> *elem = script_list.first(); elem; elem = elem->next()) { + if (elem->self()->get_path().is_resource_file()) { + // Cast to CSharpScript to avoid being erased by accident + scripts.push_back(Ref<CSharpScript>(elem->self())); + } } - elem = elem->next(); } -#ifndef NO_THREADS - lock->unlock(); -#endif + List<Ref<CSharpScript> > to_reload; - //when someone asks you why dynamically typed languages are easier to write.... + // As scripts are going to be reloaded, must proceed without locking here - Map<Ref<CSharpScript>, Map<ObjectID, List<Pair<StringName, Variant> > > > to_reload; + scripts.sort_custom<CSharpScriptDepSort>(); // Update in inheritance dependency order - //as scripts are going to be reloaded, must proceed without locking here + for (List<Ref<CSharpScript> >::Element *E = scripts.front(); E; E = E->next()) { - scripts.sort_custom<CSharpScriptDepSort>(); //update in inheritance dependency order + Ref<CSharpScript> &script = E->get(); - for (List<Ref<CSharpScript> >::Element *E = scripts.front(); E; E = E->next()) { + to_reload.push_back(script); - to_reload.insert(E->get(), Map<ObjectID, List<Pair<StringName, Variant> > >()); + // Script::instances are deleted during managed object disposal, which happens on domain finalize. + // Only placeholders are kept. Therefore we need to keep a copy before that happens. - if (!p_soft_reload) { + for (Set<Object *>::Element *E = script->instances.front(); E; E = E->next()) { + script->pending_reload_instances.insert(E->get()->get_instance_id()); + } - //save state and remove script from instances - Map<ObjectID, List<Pair<StringName, Variant> > > &map = to_reload[E->get()]; +#ifdef TOOLS_ENABLED + for (Set<PlaceHolderScriptInstance *>::Element *E = script->placeholders.front(); E; E = E->next()) { + script->pending_reload_instances.insert(E->get()->get_owner()->get_instance_id()); + } +#endif - while (E->get()->instances.front()) { - Object *obj = E->get()->instances.front()->get(); - //save instance info - List<Pair<StringName, Variant> > state; - if (obj->get_script_instance()) { + // FIXME: What about references? Need to keep them alive if only managed code references them. - obj->get_script_instance()->get_property_state(state); + // Save state and remove script from instances + Map<ObjectID, CSharpScript::StateBackup> &owners_map = script->pending_reload_state; - Ref<MonoGCHandle> gchandle = CAST_CSHARP_INSTANCE(obj->get_script_instance())->gchandle; - if (gchandle.is_valid()) - gchandle->release(); + while (script->instances.front()) { + Object *obj = script->instances.front()->get(); + // Save instance info + CSharpScript::StateBackup state; - map[obj->get_instance_id()] = state; - obj->set_script(RefPtr()); - } - } + ERR_CONTINUE(!obj->get_script_instance()); - //same thing for placeholders - while (E->get()->placeholders.size()) { - - Object *obj = E->get()->placeholders.front()->get()->get_owner(); - //save instance info - List<Pair<StringName, Variant> > state; - if (obj->get_script_instance()) { - obj->get_script_instance()->get_property_state(state); - map[obj->get_instance_id()] = state; - obj->set_script(RefPtr()); - } else { - // no instance found. Let's remove it so we don't loop forever - E->get()->placeholders.erase(E->get()->placeholders.front()->get()); - } - } + // TODO: Proper state backup (Not only variants, serialize managed state of scripts) + obj->get_script_instance()->get_property_state(state.properties); - for (Map<ObjectID, List<Pair<StringName, Variant> > >::Element *F = E->get()->pending_reload_state.front(); F; F = F->next()) { - map[F->key()] = F->get(); //pending to reload, use this one instead - } + Ref<MonoGCHandle> gchandle = CAST_CSHARP_INSTANCE(obj->get_script_instance())->gchandle; + if (gchandle.is_valid()) + gchandle->release(); - E->get()->_clear(); + owners_map[obj->get_instance_id()] = state; + obj->set_script(RefPtr()); // Remove script and existing script instances (placeholder are not removed before domain reload) } + + script->_clear(); } + // Do domain reload if (gdmono->reload_scripts_domain() != OK) { // Failed to reload the scripts domain // Make sure to add the scripts back to their owners before returning - for (Map<Ref<CSharpScript>, Map<ObjectID, List<Pair<StringName, Variant> > > >::Element *E = to_reload.front(); E; E = E->next()) { - Ref<CSharpScript> scr = E->key(); - for (Map<ObjectID, List<Pair<StringName, Variant> > >::Element *F = E->get().front(); F; F = F->next()) { + for (List<Ref<CSharpScript> >::Element *E = to_reload.front(); E; E = E->next()) { + Ref<CSharpScript> scr = E->get(); + + for (const Map<ObjectID, CSharpScript::StateBackup>::Element *F = scr->pending_reload_state.front(); F; F = F->next()) { Object *obj = ObjectDB::get_instance(F->key()); + if (!obj) continue; + + ObjectID obj_id = obj->get_instance_id(); + + // Use a placeholder for now to avoid losing the state when saving a scene + obj->set_script(scr.get_ref_ptr()); - // Save reload state for next time if not saved - if (!scr->pending_reload_state.has(obj->get_instance_id())) { - scr->pending_reload_state[obj->get_instance_id()] = F->get(); + + PlaceHolderScriptInstance *placeholder = scr->placeholder_instance_create(obj); + obj->set_script_instance(placeholder); + + // Even though build didn't fail, this tells the placeholder to keep properties and + // it allows using property_set_fallback for restoring the state without a valid script. + placeholder->set_build_failed(true); + + // Restore Variant properties state, it will be kept by the placeholder until the next script reloading + for (List<Pair<StringName, Variant> >::Element *G = scr->pending_reload_state[obj_id].properties.front(); G; G = G->next()) { + placeholder->property_set_fallback(G->get().first, G->get().second, NULL); } + + scr->pending_reload_state.erase(obj_id); } } return; } - for (Map<Ref<CSharpScript>, Map<ObjectID, List<Pair<StringName, Variant> > > >::Element *E = to_reload.front(); E; E = E->next()) { + for (List<Ref<CSharpScript> >::Element *E = to_reload.front(); E; E = E->next()) { - Ref<CSharpScript> scr = E->key(); + Ref<CSharpScript> scr = E->get(); scr->exports_invalidated = true; scr->signals_invalidated = true; scr->reload(p_soft_reload); scr->update_exports(); - //restore state if saved - for (Map<ObjectID, List<Pair<StringName, Variant> > >::Element *F = E->get().front(); F; F = F->next()) { + { +#ifdef DEBUG_ENABLED + for (Set<ObjectID>::Element *F = scr->pending_reload_instances.front(); F; F = F->next()) { + ObjectID obj_id = F->get(); + Object *obj = ObjectDB::get_instance(obj_id); - Object *obj = ObjectDB::get_instance(F->key()); - if (!obj) - continue; + if (!obj) { + scr->pending_reload_state.erase(obj_id); + continue; + } - if (!p_soft_reload) { - //clear it just in case (may be a pending reload state) - obj->set_script(RefPtr()); - } - obj->set_script(scr.get_ref_ptr()); - if (!obj->get_script_instance()) { - //failed, save reload state for next time if not saved - if (!scr->pending_reload_state.has(obj->get_instance_id())) { - scr->pending_reload_state[obj->get_instance_id()] = F->get(); + ScriptInstance *si = obj->get_script_instance(); + +#ifdef TOOLS_ENABLED + if (si) { + // If the script instance is not null, then it must be a placeholder. + // Non-placeholder script instances are removed in godot_icall_Object_Disposed. + CRASH_COND(!si->is_placeholder()); + + if (scr->is_tool() || ScriptServer::is_scripting_enabled()) { + // Replace placeholder with a script instance + + CSharpScript::StateBackup &state_backup = scr->pending_reload_state[obj_id]; + + // Backup placeholder script instance state before replacing it with a script instance + obj->get_script_instance()->get_property_state(state_backup.properties); + + ScriptInstance *script_instance = scr->instance_create(obj); + + if (script_instance) { + scr->placeholders.erase(static_cast<PlaceHolderScriptInstance *>(si)); + obj->set_script_instance(script_instance); + } + + // TODO: Restore serialized state + + for (List<Pair<StringName, Variant> >::Element *G = state_backup.properties.front(); G; G = G->next()) { + script_instance->set(G->get().first, G->get().second); + } + + scr->pending_reload_state.erase(obj_id); + } + + continue; } - continue; - } +#else + CRASH_COND(si != NULL); +#endif + // Re-create script instance - if (scr->valid && scr->is_tool() && obj->get_script_instance()->is_placeholder()) { - // Script instance was a placeholder, but now the script was built successfully and is a tool script. - // We have to replace the placeholder with an actual C# script instance. - scr->placeholders.erase(static_cast<PlaceHolderScriptInstance *>(obj->get_script_instance())); - ScriptInstance *script_instance = scr->instance_create(obj); - obj->set_script_instance(script_instance); // Not necessary as it's already done in instance_create, but just in case... - } + obj->set_script(scr.get_ref_ptr()); // will create the script instance as well + + // TODO: Restore serialized state - for (List<Pair<StringName, Variant> >::Element *G = F->get().front(); G; G = G->next()) { - obj->get_script_instance()->set(G->get().first, G->get().second); + for (List<Pair<StringName, Variant> >::Element *G = scr->pending_reload_state[obj_id].properties.front(); G; G = G->next()) { + obj->get_script_instance()->set(G->get().first, G->get().second); + } + + scr->pending_reload_state.erase(obj_id); } +#endif - scr->pending_reload_state.erase(obj->get_instance_id()); //as it reloaded, remove pending state + scr->pending_reload_instances.clear(); } - - //if instance states were saved, set them! } + // FIXME: Hack to refresh editor in order to display new properties and signals. See if there is a better alternative. if (Engine::get_singleton()->is_editor_hint()) { EditorNode::get_singleton()->get_inspector()->update_tree(); NodeDock::singleton->update_lists(); @@ -940,27 +993,18 @@ void CSharpLanguage::set_language_index(int p_idx) { void CSharpLanguage::release_script_gchandle(Ref<MonoGCHandle> &p_gchandle) { - if (!p_gchandle->is_released()) { // Do not locking unnecessarily -#ifndef NO_THREADS - get_singleton()->script_gchandle_release_lock->lock(); -#endif - + if (!p_gchandle->is_released()) { // Do not lock unnecessarily + SCOPED_MUTEX_LOCK(get_singleton()->script_gchandle_release_mutex); p_gchandle->release(); - -#ifndef NO_THREADS - get_singleton()->script_gchandle_release_lock->unlock(); -#endif } } -void CSharpLanguage::release_script_gchandle(MonoObject *p_pinned_expected_obj, Ref<MonoGCHandle> &p_gchandle) { +void CSharpLanguage::release_script_gchandle(MonoObject *p_expected_obj, Ref<MonoGCHandle> &p_gchandle) { - uint32_t pinned_gchandle = MonoGCHandle::new_strong_handle_pinned(p_pinned_expected_obj); // we might lock after this, so pin it + uint32_t pinned_gchandle = MonoGCHandle::new_strong_handle_pinned(p_expected_obj); // We might lock after this, so pin it - if (!p_gchandle->is_released()) { // Do not locking unnecessarily -#ifndef NO_THREADS - get_singleton()->script_gchandle_release_lock->lock(); -#endif + if (!p_gchandle->is_released()) { // Do not lock unnecessarily + SCOPED_MUTEX_LOCK(get_singleton()->script_gchandle_release_mutex); MonoObject *target = p_gchandle->get_target(); @@ -968,13 +1012,9 @@ void CSharpLanguage::release_script_gchandle(MonoObject *p_pinned_expected_obj, // already released and could have been replaced) or if we can't get its target MonoObject* // (which doesn't necessarily mean it was released, and we want it released in order to // avoid locking other threads unnecessarily). - if (target == p_pinned_expected_obj || target == NULL) { + if (target == p_expected_obj || target == NULL) { p_gchandle->release(); } - -#ifndef NO_THREADS - get_singleton()->script_gchandle_release_lock->unlock(); -#endif } MonoGCHandle::free_handle(pinned_gchandle); @@ -990,13 +1030,13 @@ CSharpLanguage::CSharpLanguage() { gdmono = NULL; #ifdef NO_THREADS - lock = NULL; - gchandle_bind_lock = NULL; - script_gchandle_release_lock = NULL; + script_instances_mutex = NULL; + script_gchandle_release_mutex = NULL; + language_bind_mutex = NULL; #else - lock = Mutex::create(); - script_bind_lock = Mutex::create(); - script_gchandle_release_lock = Mutex::create(); + script_instances_mutex = Mutex::create(); + script_gchandle_release_mutex = Mutex::create(); + language_bind_mutex = Mutex::create(); #endif lang_idx = -1; @@ -1006,19 +1046,19 @@ CSharpLanguage::~CSharpLanguage() { finish(); - if (lock) { - memdelete(lock); - lock = NULL; + if (script_instances_mutex) { + memdelete(script_instances_mutex); + script_instances_mutex = NULL; } - if (script_bind_lock) { - memdelete(script_bind_lock); - script_bind_lock = NULL; + if (language_bind_mutex) { + memdelete(language_bind_mutex); + language_bind_mutex = NULL; } - if (script_gchandle_release_lock) { - memdelete(script_gchandle_release_lock); - script_gchandle_release_lock = NULL; + if (script_gchandle_release_mutex) { + memdelete(script_gchandle_release_mutex); + script_gchandle_release_mutex = NULL; } singleton = NULL; @@ -1055,15 +1095,12 @@ void *CSharpLanguage::alloc_instance_binding_data(Object *p_object) { script_binding.wrapper_class = type_class; // cache script_binding.gchandle = MonoGCHandle::create_strong(mono_object); -#ifndef NO_THREADS - script_bind_lock->lock(); -#endif - - void *data = (void *)script_bindings.insert(p_object, script_binding); + void *data; -#ifndef NO_THREADS - script_bind_lock->unlock(); -#endif + { + SCOPED_MUTEX_LOCK(language_bind_mutex); + data = (void *)script_bindings.insert(p_object, script_binding); + } // Tie managed to unmanaged Reference *ref = Object::cast_to<Reference>(p_object); @@ -1093,23 +1130,19 @@ void CSharpLanguage::free_instance_binding_data(void *p_data) { if (finalizing) return; // inside CSharpLanguage::finish(), all the gchandle bindings are released there -#ifndef NO_THREADS - script_bind_lock->lock(); -#endif + { + SCOPED_MUTEX_LOCK(language_bind_mutex); - Map<Object *, CSharpScriptBinding>::Element *data = (Map<Object *, CSharpScriptBinding>::Element *)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); - } - - script_bindings.erase(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); + } -#ifndef NO_THREADS - script_bind_lock->unlock(); -#endif + script_bindings.erase(data); + } } void CSharpLanguage::refcount_incremented_instance_binding(Object *p_object) { @@ -1524,7 +1557,7 @@ void CSharpInstance::mono_object_disposed_baseref(MonoObject *p_obj, bool p_is_f } else { r_owner_deleted = false; CSharpLanguage::get_singleton()->release_script_gchandle(p_obj, gchandle); - if (p_is_finalizer) { + 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. @@ -1651,6 +1684,8 @@ void CSharpInstance::notification(int p_notification) { // It's safe to call Dispose() multiple times and NOTIFICATION_PREDELETE is guaranteed // to be sent at least once, which happens right before the call to the destructor. + predelete_notified = true; + if (base_ref) { // It's not safe to proceed if the owner derives Reference and the refcount reached 0. // At this point, Dispose() was already called (manually or from the finalizer) so @@ -1666,10 +1701,8 @@ void CSharpInstance::notification(int p_notification) { MonoObject *mono_object = get_mono_object(); ERR_FAIL_NULL(mono_object); - GDMonoUtils::GodotObject_Dispose thunk = CACHED_METHOD_THUNK(GodotObject, Dispose); - MonoException *exc = NULL; - thunk(mono_object, (MonoObject **)&exc); + GDMonoUtils::dispose(mono_object, &exc); if (exc) { GDMonoUtils::set_pending_exception(exc); @@ -1720,12 +1753,35 @@ CSharpInstance::CSharpInstance() : owner(NULL), base_ref(false), ref_dying(false), - unsafe_referenced(false) { + unsafe_referenced(false), + predelete_notified(false), + destructing_script_instance(false) { } CSharpInstance::~CSharpInstance() { if (gchandle.is_valid()) { + if (!predelete_notified && !ref_dying) { + // This destructor is not called from the owners destructor. + // This could be being called from the owner's set_script_instance method, + // meaning this script is being replaced with another one. If this is the case, + // we must call Dispose here, because Dispose calls owner->set_script_instance(NULL) + // and that would mess up with the new script instance if called later. + + MonoObject *mono_object = gchandle->get_target(); + + 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); + } + } + } + gchandle->release(); // Make sure it's released } @@ -1734,9 +1790,7 @@ CSharpInstance::~CSharpInstance() { } if (script.is_valid() && owner) { -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->lock(); -#endif + SCOPED_MUTEX_LOCK(CSharpLanguage::get_singleton()->script_instances_mutex); #ifdef DEBUG_ENABLED // CSharpInstance must not be created unless it's going to be added to the list for sure @@ -1746,10 +1800,6 @@ CSharpInstance::~CSharpInstance() { #else script->instances.erase(owner); #endif - -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->unlock(); -#endif } } @@ -1882,10 +1932,8 @@ bool CSharpScript::_update_exports() { // Dispose the temporary managed instance - GDMonoUtils::GodotObject_Dispose thunk = CACHED_METHOD_THUNK(GodotObject, Dispose); - MonoException *exc = NULL; - thunk(tmp_object, (MonoObject **)&exc); + GDMonoUtils::dispose(tmp_object, &exc); if (exc) { ERR_PRINT("Exception thrown from method Dispose() of temporary MonoObject:"); @@ -2312,17 +2360,13 @@ CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_arg ERR_FAIL_V(NULL); } - uint32_t pinned_gchandle = MonoGCHandle::new_strong_handle_pinned(mono_object); // we might lock after this, so pin it - -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->lock(); -#endif - - instances.insert(instance->owner); + // Tie managed to unmanaged + instance->gchandle = MonoGCHandle::create_strong(mono_object); -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->unlock(); -#endif + { + SCOPED_MUTEX_LOCK(CSharpLanguage::get_singleton()->script_instances_mutex); + instances.insert(instance->owner); + } CACHED_FIELD(GodotObject, ptr)->set_value_raw(mono_object, instance->owner); @@ -2330,13 +2374,8 @@ CSharpInstance *CSharpScript::_create_instance(const Variant **p_args, int p_arg GDMonoMethod *ctor = script_class->get_method(CACHED_STRING_NAME(dotctor), p_argcount); ctor->invoke(mono_object, p_args); - // Tie managed to unmanaged - instance->gchandle = MonoGCHandle::create_strong(mono_object); - /* STEP 3, PARTY */ - MonoGCHandle::free_handle(pinned_gchandle); - //@TODO make thread safe return instance; } @@ -2411,17 +2450,8 @@ PlaceHolderScriptInstance *CSharpScript::placeholder_instance_create(Object *p_t bool CSharpScript::instance_has(const Object *p_this) const { -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->lock(); -#endif - - bool ret = instances.has((Object *)p_this); - -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->unlock(); -#endif - - return ret; + SCOPED_MUTEX_LOCK(CSharpLanguage::get_singleton()->script_instances_mutex); + return instances.has((Object *)p_this); } bool CSharpScript::has_source_code() const { @@ -2444,6 +2474,18 @@ void CSharpScript::set_source_code(const String &p_code) { #endif } +void CSharpScript::get_script_method_list(List<MethodInfo> *p_list) const { + + if (!script_class) + return; + + // TODO: Filter out things unsuitable for explicit calls, like constructors. + const Vector<GDMonoMethod *> &methods = script_class->get_all_methods(); + for (int i = 0; i < methods.size(); ++i) { + p_list->push_back(methods[i]->get_method_info()); + } +} + bool CSharpScript::has_method(const StringName &p_method) const { if (!script_class) @@ -2452,17 +2494,32 @@ bool CSharpScript::has_method(const StringName &p_method) const { return script_class->has_fetched_method_unknown_params(p_method); } -Error CSharpScript::reload(bool p_keep_state) { +MethodInfo CSharpScript::get_method_info(const StringName &p_method) const { -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->lock(); -#endif + if (!script_class) + return MethodInfo(); - bool has_instances = instances.size(); + GDMonoClass *top = script_class; -#ifndef NO_THREADS - CSharpLanguage::singleton->lock->unlock(); -#endif + while (top && top != native) { + GDMonoMethod *params = top->get_fetched_method_unknown_params(p_method); + if (params) { + return params->get_method_info(); + } + + top = top->get_parent_class(); + } + + return MethodInfo(); +} + +Error CSharpScript::reload(bool p_keep_state) { + + bool has_instances; + { + SCOPED_MUTEX_LOCK(CSharpLanguage::get_singleton()->script_instances_mutex); + has_instances = instances.size(); + } ERR_FAIL_COND_V(!p_keep_state && has_instances, ERR_ALREADY_IN_USE); @@ -2648,35 +2705,19 @@ CSharpScript::CSharpScript() : _resource_path_changed(); #ifdef DEBUG_ENABLED - -#ifndef NO_THREADS - CSharpLanguage::get_singleton()->lock->lock(); -#endif - - CSharpLanguage::get_singleton()->script_list.add(&script_list); - -#ifndef NO_THREADS - CSharpLanguage::get_singleton()->lock->unlock(); + { + SCOPED_MUTEX_LOCK(CSharpLanguage::get_singleton()->script_instances_mutex); + CSharpLanguage::get_singleton()->script_list.add(&this->script_list); + } #endif - -#endif // DEBUG_ENABLED } CSharpScript::~CSharpScript() { #ifdef DEBUG_ENABLED - -#ifndef NO_THREADS - CSharpLanguage::get_singleton()->lock->lock(); + SCOPED_MUTEX_LOCK(CSharpLanguage::get_singleton()->script_instances_mutex); + CSharpLanguage::get_singleton()->script_list.remove(&this->script_list); #endif - - CSharpLanguage::get_singleton()->script_list.remove(&script_list); - -#ifndef NO_THREADS - CSharpLanguage::get_singleton()->lock->unlock(); -#endif - -#endif // DEBUG_ENABLED } /*************** RESOURCE ***************/ diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h index fc604df2a0..08466bae58 100644 --- a/modules/mono/csharp_script.h +++ b/modules/mono/csharp_script.h @@ -82,6 +82,21 @@ class CSharpScript : public Script { Set<Object *> instances; +#ifdef DEBUG_ENABLED + Set<ObjectID> pending_reload_instances; +#endif + + struct StateBackup { + // TODO + // Replace with buffer containing the serialized state of managed scripts. + // Keep variant state backup to use only with script instance placeholders. + List<Pair<StringName, Variant> > properties; + }; + +#ifdef TOOLS_ENABLED + Map<ObjectID, CSharpScript::StateBackup> pending_reload_state; +#endif + String source; StringName name; @@ -105,10 +120,6 @@ class CSharpScript : public Script { virtual void _placeholder_erased(PlaceHolderScriptInstance *p_placeholder); #endif -#ifdef DEBUG_ENABLED - Map<ObjectID, List<Pair<StringName, Variant> > > pending_reload_state; -#endif - Map<StringName, PropertyInfo> member_info; void _clear(); @@ -158,12 +169,14 @@ public: virtual void update_exports(); virtual bool is_tool() const { return tool; } + virtual bool is_valid() const { return valid; } + virtual Ref<Script> get_base_script() const; virtual ScriptLanguage *get_language() const; - /* TODO */ virtual void get_script_method_list(List<MethodInfo> *p_list) const {} + virtual void get_script_method_list(List<MethodInfo> *p_list) const; bool has_method(const StringName &p_method) const; - /* TODO */ MethodInfo get_method_info(const StringName &p_method) const { return MethodInfo(); } + MethodInfo get_method_info(const StringName &p_method) const; virtual int get_member_line(const StringName &p_member) const; @@ -184,6 +197,8 @@ class CSharpInstance : public ScriptInstance { bool base_ref; bool ref_dying; bool unsafe_referenced; + bool predelete_notified; + bool destructing_script_instance; Ref<CSharpScript> script; Ref<MonoGCHandle> gchandle; @@ -204,6 +219,8 @@ class CSharpInstance : public ScriptInstance { public: MonoObject *get_mono_object() const; + _FORCE_INLINE_ bool is_destructing_script_instance() { return destructing_script_instance; } + 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; @@ -253,11 +270,9 @@ class CSharpLanguage : public ScriptLanguage { GDMono *gdmono; SelfList<CSharpScript>::List script_list; - Mutex *lock; - Mutex *script_bind_lock; - Mutex *script_gchandle_release_lock; - - Map<Ref<CSharpScript>, Map<ObjectID, List<Pair<StringName, Variant> > > > to_reload; + Mutex *script_instances_mutex; + Mutex *script_gchandle_release_mutex; + Mutex *language_bind_mutex; Map<Object *, CSharpScriptBinding> script_bindings; @@ -294,7 +309,8 @@ public: bool debug_break_parse(const String &p_file, int p_line, const String &p_error); #ifdef TOOLS_ENABLED - void reload_assemblies_if_needed(bool p_soft_reload); + bool is_assembly_reloading_needed(); + void reload_assemblies(bool p_soft_reload); #endif void project_assembly_loaded(); diff --git a/modules/mono/editor/godotsharp_editor.cpp b/modules/mono/editor/godotsharp_editor.cpp index f27511ad5e..cce86efbf5 100644 --- a/modules/mono/editor/godotsharp_editor.cpp +++ b/modules/mono/editor/godotsharp_editor.cpp @@ -475,7 +475,9 @@ MonoReloadNode *MonoReloadNode::singleton = NULL; void MonoReloadNode::_reload_timer_timeout() { - CSharpLanguage::get_singleton()->reload_assemblies_if_needed(false); + if (CSharpLanguage::get_singleton()->is_assembly_reloading_needed()) { + CSharpLanguage::get_singleton()->reload_assemblies(false); + } } void MonoReloadNode::restart_reload_timer() { @@ -493,7 +495,9 @@ void MonoReloadNode::_notification(int p_what) { switch (p_what) { case MainLoop::NOTIFICATION_WM_FOCUS_IN: { restart_reload_timer(); - CSharpLanguage::get_singleton()->reload_assemblies_if_needed(true); + if (CSharpLanguage::get_singleton()->is_assembly_reloading_needed()) { + CSharpLanguage::get_singleton()->reload_assemblies(false); + } } break; default: { } break; diff --git a/modules/mono/editor/mono_bottom_panel.cpp b/modules/mono/editor/mono_bottom_panel.cpp index d7bfa54aba..e89d21d92d 100644 --- a/modules/mono/editor/mono_bottom_panel.cpp +++ b/modules/mono/editor/mono_bottom_panel.cpp @@ -154,10 +154,14 @@ void MonoBottomPanel::_build_project_pressed() { Error metadata_err = CSharpProject::generate_scripts_metadata(GodotSharpDirs::get_project_csproj_path(), scripts_metadata_path); ERR_FAIL_COND(metadata_err != OK); - GodotSharpBuilds::get_singleton()->build_project_blocking("Tools"); + bool build_success = GodotSharpBuilds::get_singleton()->build_project_blocking("Tools"); - MonoReloadNode::get_singleton()->restart_reload_timer(); - CSharpLanguage::get_singleton()->reload_assemblies_if_needed(true); + if (build_success) { + MonoReloadNode::get_singleton()->restart_reload_timer(); + if (CSharpLanguage::get_singleton()->is_assembly_reloading_needed()) { + CSharpLanguage::get_singleton()->reload_assemblies(false); + } + } } void MonoBottomPanel::_view_log_pressed() { diff --git a/modules/mono/glue/base_object_glue.cpp b/modules/mono/glue/base_object_glue.cpp index d718c3cc61..58916c5283 100644 --- a/modules/mono/glue/base_object_glue.cpp +++ b/modules/mono/glue/base_object_glue.cpp @@ -54,8 +54,10 @@ void godot_icall_Object_Disposed(MonoObject *p_obj, Object *p_ptr) { if (p_ptr->get_script_instance()) { CSharpInstance *cs_instance = CAST_CSHARP_INSTANCE(p_ptr->get_script_instance()); if (cs_instance) { - cs_instance->mono_object_disposed(p_obj); - p_ptr->set_script_instance(NULL); + if (!cs_instance->is_destructing_script_instance()) { + cs_instance->mono_object_disposed(p_obj); + p_ptr->set_script_instance(NULL); + } return; } } @@ -82,12 +84,14 @@ void godot_icall_Reference_Disposed(MonoObject *p_obj, Object *p_ptr, bool p_is_ if (ref->get_script_instance()) { CSharpInstance *cs_instance = CAST_CSHARP_INSTANCE(ref->get_script_instance()); if (cs_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. - ref->set_script_instance(NULL); + 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. + ref->set_script_instance(NULL); + } } return; } diff --git a/modules/mono/mono_gd/gd_mono_class.cpp b/modules/mono/mono_gd/gd_mono_class.cpp index 4e515cde28..c55f9160bd 100644 --- a/modules/mono/mono_gd/gd_mono_class.cpp +++ b/modules/mono/mono_gd/gd_mono_class.cpp @@ -151,6 +151,7 @@ void GDMonoClass::fetch_methods_with_godot_api_checks(GDMonoClass *p_native_base while ((raw_method = mono_class_get_methods(get_mono_ptr(), &iter)) != NULL) { StringName name = mono_method_get_name(raw_method); + // get_method implicitly fetches methods and adds them to this->methods GDMonoMethod *method = get_method(raw_method, name); ERR_CONTINUE(!method); @@ -449,6 +450,21 @@ const Vector<GDMonoClass *> &GDMonoClass::get_all_delegates() { return delegates_list; } +const Vector<GDMonoMethod *> &GDMonoClass::get_all_methods() { + + if (!method_list_fetched) { + void *iter = NULL; + MonoMethod *raw_method = NULL; + while ((raw_method = mono_class_get_methods(get_mono_ptr(), &iter)) != NULL) { + method_list.push_back(memnew(GDMonoMethod(mono_method_get_name(raw_method), raw_method))); + } + + method_list_fetched = true; + } + + return method_list; +} + GDMonoClass::GDMonoClass(const StringName &p_namespace, const StringName &p_name, MonoClass *p_class, GDMonoAssembly *p_assembly) { namespace_name = p_namespace; @@ -460,6 +476,7 @@ GDMonoClass::GDMonoClass(const StringName &p_namespace, const StringName &p_name attributes = NULL; methods_fetched = false; + method_list_fetched = false; fields_fetched = false; properties_fetched = false; delegates_fetched = false; @@ -512,4 +529,8 @@ GDMonoClass::~GDMonoClass() { methods.clear(); } + + for (int i = 0; i < method_list.size(); ++i) { + memdelete(method_list[i]); + } } diff --git a/modules/mono/mono_gd/gd_mono_class.h b/modules/mono/mono_gd/gd_mono_class.h index 477305d503..689001f494 100644 --- a/modules/mono/mono_gd/gd_mono_class.h +++ b/modules/mono/mono_gd/gd_mono_class.h @@ -79,9 +79,14 @@ class GDMonoClass { bool attrs_fetched; MonoCustomAttrInfo *attributes; + // This contains both the original method names and remapped method names from the native Godot identifiers to the C# functions. + // Most method-related functions refer to this and it's possible this is unintuitive for outside users; this may be a prime location for refactoring or renaming. bool methods_fetched; HashMap<MethodKey, GDMonoMethod *, MethodKey::Hasher> methods; + bool method_list_fetched; + Vector<GDMonoMethod *> method_list; + bool fields_fetched; Map<StringName, GDMonoField *> fields; Vector<GDMonoField *> fields_list; @@ -143,6 +148,8 @@ public: const Vector<GDMonoClass *> &get_all_delegates(); + const Vector<GDMonoMethod *> &get_all_methods(); + ~GDMonoClass(); }; diff --git a/modules/mono/mono_gd/gd_mono_field.cpp b/modules/mono/mono_gd/gd_mono_field.cpp index 5d9b9213e7..f09e93e662 100644 --- a/modules/mono/mono_gd/gd_mono_field.cpp +++ b/modules/mono/mono_gd/gd_mono_field.cpp @@ -423,7 +423,7 @@ void GDMonoField::set_value_from_variant(MonoObject *p_object, const Variant &p_ MonoException *exc = NULL; GDMonoUtils::IsDictionaryGenericType type_is_dict = CACHED_METHOD_THUNK(MarshalUtils, IsDictionaryGenericType); - MonoBoolean is_dict = type_is_dict((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_dict = invoke_method_thunk(type_is_dict, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_dict) { @@ -435,7 +435,7 @@ void GDMonoField::set_value_from_variant(MonoObject *p_object, const Variant &p_ exc = NULL; GDMonoUtils::IsArrayGenericType type_is_array = CACHED_METHOD_THUNK(MarshalUtils, IsArrayGenericType); - MonoBoolean is_array = type_is_array((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_array = invoke_method_thunk(type_is_array, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_array) { diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp index 2543f5dc47..3f0a5d6e50 100644 --- a/modules/mono/mono_gd/gd_mono_marshal.cpp +++ b/modules/mono/mono_gd/gd_mono_marshal.cpp @@ -163,7 +163,7 @@ Variant::Type managed_to_variant_type(const ManagedType &p_type) { MonoException *exc = NULL; GDMonoUtils::IsDictionaryGenericType type_is_dict = CACHED_METHOD_THUNK(MarshalUtils, IsDictionaryGenericType); - MonoBoolean is_dict = type_is_dict((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_dict = invoke_method_thunk(type_is_dict, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_dict) { @@ -172,7 +172,7 @@ Variant::Type managed_to_variant_type(const ManagedType &p_type) { exc = NULL; GDMonoUtils::IsArrayGenericType type_is_array = CACHED_METHOD_THUNK(MarshalUtils, IsArrayGenericType); - MonoBoolean is_array = type_is_array((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_array = invoke_method_thunk(type_is_array, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_array) { @@ -192,8 +192,11 @@ String mono_to_utf8_string(MonoString *p_mono_string) { MonoError error; char *utf8 = mono_string_to_utf8_checked(p_mono_string, &error); - ERR_EXPLAIN("Conversion of MonoString to UTF8 failed."); - ERR_FAIL_COND_V(!mono_error_ok(&error), String()); + if (!mono_error_ok(&error)) { + ERR_PRINTS(String("Failed to convert MonoString* to UTF-8: ") + mono_error_get_message(&error)); + mono_error_cleanup(&error); + return String(); + } String ret = String::utf8(utf8); @@ -546,7 +549,7 @@ MonoObject *variant_to_mono_object(const Variant *p_var, const ManagedType &p_ty MonoException *exc = NULL; GDMonoUtils::IsDictionaryGenericType type_is_dict = CACHED_METHOD_THUNK(MarshalUtils, IsDictionaryGenericType); - MonoBoolean is_dict = type_is_dict((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_dict = invoke_method_thunk(type_is_dict, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_dict) { @@ -555,7 +558,7 @@ MonoObject *variant_to_mono_object(const Variant *p_var, const ManagedType &p_ty exc = NULL; GDMonoUtils::IsArrayGenericType type_is_array = CACHED_METHOD_THUNK(MarshalUtils, IsArrayGenericType); - MonoBoolean is_array = type_is_array((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_array = invoke_method_thunk(type_is_array, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_array) { @@ -710,16 +713,14 @@ Variant mono_object_to_variant(MonoObject *p_obj) { if (CACHED_CLASS(Array) == type_class) { MonoException *exc = NULL; - GDMonoUtils::Array_GetPtr get_ptr = CACHED_METHOD_THUNK(Array, GetPtr); - Array *ptr = get_ptr(p_obj, (MonoObject **)&exc); + Array *ptr = invoke_method_thunk(CACHED_METHOD_THUNK(Array, GetPtr), p_obj, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); return ptr ? Variant(*ptr) : Variant(); } if (CACHED_CLASS(Dictionary) == type_class) { MonoException *exc = NULL; - GDMonoUtils::Dictionary_GetPtr get_ptr = CACHED_METHOD_THUNK(Dictionary, GetPtr); - Dictionary *ptr = get_ptr(p_obj, (MonoObject **)&exc); + Dictionary *ptr = invoke_method_thunk(CACHED_METHOD_THUNK(Dictionary, GetPtr), p_obj, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); return ptr ? Variant(*ptr) : Variant(); } @@ -731,7 +732,7 @@ Variant mono_object_to_variant(MonoObject *p_obj) { MonoException *exc = NULL; GDMonoUtils::IsDictionaryGenericType type_is_dict = CACHED_METHOD_THUNK(MarshalUtils, IsDictionaryGenericType); - MonoBoolean is_dict = type_is_dict((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_dict = invoke_method_thunk(type_is_dict, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_dict) { @@ -744,7 +745,7 @@ Variant mono_object_to_variant(MonoObject *p_obj) { exc = NULL; GDMonoUtils::IsArrayGenericType type_is_array = CACHED_METHOD_THUNK(MarshalUtils, IsArrayGenericType); - MonoBoolean is_array = type_is_array((MonoObject *)reftype, (MonoObject **)&exc); + MonoBoolean is_array = invoke_method_thunk(type_is_array, (MonoObject *)reftype, (MonoObject **)&exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); if (is_array) { diff --git a/modules/mono/mono_gd/gd_mono_method.cpp b/modules/mono/mono_gd/gd_mono_method.cpp index 630bda8b4e..6ef6e97f5a 100644 --- a/modules/mono/mono_gd/gd_mono_method.cpp +++ b/modules/mono/mono_gd/gd_mono_method.cpp @@ -68,6 +68,10 @@ void GDMonoMethod::_update_signature(MonoMethodSignature *p_method_sig) { param_types.push_back(param_type); } + + // clear the cache + method_info_fetched = false; + method_info = MethodInfo(); } bool GDMonoMethod::is_static() { @@ -246,11 +250,34 @@ void GDMonoMethod::get_parameter_types(Vector<ManagedType> &types) const { } } +const MethodInfo &GDMonoMethod::get_method_info() { + + if (!method_info_fetched) { + method_info.name = name; + method_info.return_val = PropertyInfo(GDMonoMarshal::managed_to_variant_type(return_type), ""); + + Vector<StringName> names; + get_parameter_names(names); + + for (int i = 0; i < params_count; ++i) { + method_info.arguments.push_back(PropertyInfo(GDMonoMarshal::managed_to_variant_type(param_types[i]), names[i])); + } + + // TODO: default arguments + + method_info_fetched = true; + } + + return method_info; +} + GDMonoMethod::GDMonoMethod(StringName p_name, MonoMethod *p_method) { name = p_name; mono_method = p_method; + method_info_fetched = false; + attrs_fetched = false; attributes = NULL; diff --git a/modules/mono/mono_gd/gd_mono_method.h b/modules/mono/mono_gd/gd_mono_method.h index 444ec2a67d..6c3ae5fce0 100644 --- a/modules/mono/mono_gd/gd_mono_method.h +++ b/modules/mono/mono_gd/gd_mono_method.h @@ -43,6 +43,9 @@ class GDMonoMethod : public GDMonoClassMember { ManagedType return_type; Vector<ManagedType> param_types; + bool method_info_fetched; + MethodInfo method_info; + bool attrs_fetched; MonoCustomAttrInfo *attributes; @@ -83,6 +86,8 @@ public: void get_parameter_names(Vector<StringName> &names) const; void get_parameter_types(Vector<ManagedType> &types) const; + const MethodInfo &get_method_info(); + GDMonoMethod(StringName p_name, MonoMethod *p_method); ~GDMonoMethod(); }; diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp index fe2c09799c..211987d242 100644 --- a/modules/mono/mono_gd/gd_mono_utils.cpp +++ b/modules/mono/mono_gd/gd_mono_utils.cpp @@ -694,4 +694,8 @@ uint64_t unbox_enum_value(MonoObject *p_boxed, MonoType *p_enum_basetype, bool & } } +void dispose(MonoObject *p_mono_object, MonoException **r_exc) { + invoke_method_thunk(CACHED_METHOD_THUNK(GodotObject, Dispose), p_mono_object, (MonoObject **)r_exc); +} + } // namespace GDMonoUtils diff --git a/modules/mono/mono_gd/gd_mono_utils.h b/modules/mono/mono_gd/gd_mono_utils.h index f00680ff03..170df32991 100644 --- a/modules/mono/mono_gd/gd_mono_utils.h +++ b/modules/mono/mono_gd/gd_mono_utils.h @@ -243,6 +243,8 @@ MonoObject *property_get_value(MonoProperty *p_prop, void *p_obj, void **p_param uint64_t unbox_enum_value(MonoObject *p_boxed, MonoType *p_enum_basetype, bool &r_error); +void dispose(MonoObject *p_mono_object, MonoException **r_exc); + } // namespace GDMonoUtils #define NATIVE_GDMONOCLASS_NAME(m_class) (GDMonoMarshal::mono_string_to_godot((MonoString *)m_class->get_field(BINDINGS_NATIVE_NAME_FIELD)->get_value(NULL))) @@ -267,4 +269,93 @@ uint64_t unbox_enum_value(MonoObject *p_boxed, MonoType *p_enum_basetype, bool & #define GD_MONO_END_RUNTIME_INVOKE \ _runtime_invoke_count_ref -= 1; +inline void invoke_method_thunk(void (*p_method_thunk)()) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + p_method_thunk(); + GD_MONO_END_RUNTIME_INVOKE; +} + +template <class R> +R invoke_method_thunk(R (*p_method_thunk)()) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + R r = p_method_thunk(); + GD_MONO_END_RUNTIME_INVOKE; + return r; +} + +template <class P1> +void invoke_method_thunk(void (*p_method_thunk)(P1), P1 p_arg1) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + p_method_thunk(p_arg1); + GD_MONO_END_RUNTIME_INVOKE; +} + +template <class R, class P1> +R invoke_method_thunk(R (*p_method_thunk)(P1), P1 p_arg1) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + R r = p_method_thunk(p_arg1); + GD_MONO_END_RUNTIME_INVOKE; + return r; +} + +template <class P1, class P2> +void invoke_method_thunk(void (*p_method_thunk)(P1, P2), P1 p_arg1, P2 p_arg2) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + p_method_thunk(p_arg1, p_arg2); + GD_MONO_END_RUNTIME_INVOKE; +} + +template <class R, class P1, class P2> +R invoke_method_thunk(R (*p_method_thunk)(P1, P2), P1 p_arg1, P2 p_arg2) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + R r = p_method_thunk(p_arg1, p_arg2); + GD_MONO_END_RUNTIME_INVOKE; + return r; +} + +template <class P1, class P2, class P3> +void invoke_method_thunk(void (*p_method_thunk)(P1, P2, P3), P1 p_arg1, P2 p_arg2, P3 p_arg3) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + p_method_thunk(p_arg1, p_arg2, p_arg3); + GD_MONO_END_RUNTIME_INVOKE; +} + +template <class R, class P1, class P2, class P3> +R invoke_method_thunk(R (*p_method_thunk)(P1, P2, P3), P1 p_arg1, P2 p_arg2, P3 p_arg3) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + R r = p_method_thunk(p_arg1, p_arg2, p_arg3); + GD_MONO_END_RUNTIME_INVOKE; + return r; +} + +template <class P1, class P2, class P3, class P4> +void invoke_method_thunk(void (*p_method_thunk)(P1, P2, P3, P4), P1 p_arg1, P2 p_arg2, P3 p_arg3, P4 p_arg4) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + p_method_thunk(p_arg1, p_arg2, p_arg3, p_arg4); + GD_MONO_END_RUNTIME_INVOKE; +} + +template <class R, class P1, class P2, class P3, class P4> +R invoke_method_thunk(R (*p_method_thunk)(P1, P2, P3, P4), P1 p_arg1, P2 p_arg2, P3 p_arg3, P4 p_arg4) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + R r = p_method_thunk(p_arg1, p_arg2, p_arg3, p_arg4); + GD_MONO_END_RUNTIME_INVOKE; + return r; +} + +template <class P1, class P2, class P3, class P4, class P5> +void invoke_method_thunk(void (*p_method_thunk)(P1, P2, P3, P4, P5), P1 p_arg1, P2 p_arg2, P3 p_arg3, P4 p_arg4, P5 p_arg5) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + p_method_thunk(p_arg1, p_arg2, p_arg3, p_arg4, p_arg5); + GD_MONO_END_RUNTIME_INVOKE; +} + +template <class R, class P1, class P2, class P3, class P4, class P5> +R invoke_method_thunk(R (*p_method_thunk)(P1, P2, P3, P4, P5), P1 p_arg1, P2 p_arg2, P3 p_arg3, P4 p_arg4, P5 p_arg5) { + GD_MONO_BEGIN_RUNTIME_INVOKE; + R r = p_method_thunk(p_arg1, p_arg2, p_arg3, p_arg4, p_arg5); + GD_MONO_END_RUNTIME_INVOKE; + return r; +} + #endif // GD_MONOUTILS_H diff --git a/modules/mono/signal_awaiter_utils.cpp b/modules/mono/signal_awaiter_utils.cpp index fa1fbebb16..c6748309f3 100644 --- a/modules/mono/signal_awaiter_utils.cpp +++ b/modules/mono/signal_awaiter_utils.cpp @@ -98,11 +98,9 @@ Variant SignalAwaiterHandle::_signal_callback(const Variant **p_args, int p_argc mono_array_set(signal_args, MonoObject *, i, boxed); } - GDMonoUtils::SignalAwaiter_SignalCallback thunk = CACHED_METHOD_THUNK(SignalAwaiter, SignalCallback); - MonoException *exc = NULL; GD_MONO_BEGIN_RUNTIME_INVOKE; - thunk(get_target(), signal_args, (MonoObject **)&exc); + invoke_method_thunk(CACHED_METHOD_THUNK(SignalAwaiter, SignalCallback), get_target(), signal_args, (MonoObject **)&exc); GD_MONO_END_RUNTIME_INVOKE; if (exc) { @@ -129,14 +127,12 @@ SignalAwaiterHandle::SignalAwaiterHandle(MonoObject *p_managed) : SignalAwaiterHandle::~SignalAwaiterHandle() { if (!completed) { - GDMonoUtils::SignalAwaiter_FailureCallback thunk = CACHED_METHOD_THUNK(SignalAwaiter, FailureCallback); - MonoObject *awaiter = get_target(); if (awaiter) { MonoException *exc = NULL; GD_MONO_BEGIN_RUNTIME_INVOKE; - thunk(awaiter, (MonoObject **)&exc); + invoke_method_thunk(CACHED_METHOD_THUNK(SignalAwaiter, FailureCallback), awaiter, (MonoObject **)&exc); GD_MONO_END_RUNTIME_INVOKE; if (exc) { diff --git a/modules/mono/utils/macros.h b/modules/mono/utils/macros.h index 40b47e8648..c801fb2f33 100644 --- a/modules/mono/utils/macros.h +++ b/modules/mono/utils/macros.h @@ -31,15 +31,17 @@ #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__) + // noreturn #if __cpp_static_assert #define GD_STATIC_ASSERT(m_cond) static_assert((m_cond), "Condition '" #m_cond "' failed") #else -#define _GD_STATIC_ASSERT_VARNAME_CONCAT_B(m_ignore, m_name) m_name -#define _GD_STATIC_ASSERT_VARNAME_CONCAT_A(m_a, m_b) GD_STATIC_ASSERT_VARNAME_CONCAT_B(hello there, m_a##m_b) -#define _GD_STATIC_ASSERT_VARNAME_CONCAT(m_a, m_b) GD_STATIC_ASSERT_VARNAME_CONCAT_A(m_a, m_b) -#define GD_STATIC_ASSERT(m_cond) typedef int GD_STATIC_ASSERT_VARNAME_CONCAT(godot_static_assert_, __COUNTER__)[((m_cond) ? 1 : -1)] +#define GD_STATIC_ASSERT(m_cond) typedef int GD_UNIQUE_NAME(godot_static_assert)[((m_cond) ? 1 : -1)] #endif #undef _NO_RETURN_ diff --git a/main/tests/test_io.h b/modules/mono/utils/mutex_utils.h index ffebd05160..07d659b6eb 100644 --- a/main/tests/test_io.h +++ b/modules/mono/utils/mutex_utils.h @@ -1,5 +1,5 @@ /*************************************************************************/ -/* test_io.h */ +/* mutex_utils.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ @@ -28,18 +28,40 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef TEST_IO_H -#define TEST_IO_H +#ifndef MUTEX_UTILS_H +#define MUTEX_UTILS_H -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ +#include "core/error_macros.h" +#include "core/os/mutex.h" -#include "core/os/main_loop.h" +#include "macros.h" -namespace TestIO { +class ScopedMutexLock { + Mutex *mutex; -MainLoop *test(); -} +public: + ScopedMutexLock(Mutex *mutex) { + this->mutex = mutex; +#ifndef NO_THREADS +#ifdef DEBUG_ENABLED + CRASH_COND(!mutex); +#endif + this->mutex->lock(); +#endif + } + ~ScopedMutexLock() { +#ifndef NO_THREADS +#ifdef DEBUG_ENABLED + CRASH_COND(!mutex); +#endif + mutex->unlock(); #endif + } +}; + +#define SCOPED_MUTEX_LOCK(m_mutex) ScopedMutexLock GD_UNIQUE_NAME(__scoped_mutex_lock__)(m_mutex); + +// TODO: Add version that receives a lambda instead, once C++11 is allowed + +#endif // MUTEX_UTILS_H diff --git a/modules/squish/config.py b/modules/squish/config.py index 098f1eafa9..1c8cd12a2d 100644 --- a/modules/squish/config.py +++ b/modules/squish/config.py @@ -1,5 +1,5 @@ def can_build(env, platform): - return env['tools'] + return True def configure(env): pass diff --git a/modules/squish/image_compress_squish.cpp b/modules/squish/image_compress_squish.cpp index a08ac7bd28..4161a0f6ae 100644 --- a/modules/squish/image_compress_squish.cpp +++ b/modules/squish/image_compress_squish.cpp @@ -30,8 +30,6 @@ #include "image_compress_squish.h" -#include "core/print_string.h" - #include <squish.h> void image_decompress_squish(Image *p_image) { @@ -76,6 +74,7 @@ void image_decompress_squish(Image *p_image) { p_image->create(p_image->get_width(), p_image->get_height(), p_image->has_mipmaps(), target_format, data); } +#ifdef TOOLS_ENABLED void image_compress_squish(Image *p_image, float p_lossy_quality, Image::CompressSource p_source) { if (p_image->get_format() >= Image::FORMAT_DXT1) @@ -204,3 +203,4 @@ void image_compress_squish(Image *p_image, float p_lossy_quality, Image::Compres p_image->create(p_image->get_width(), p_image->get_height(), p_image->has_mipmaps(), target_format, data); } } +#endif diff --git a/modules/squish/image_compress_squish.h b/modules/squish/image_compress_squish.h index dfebdc955f..dd53f2787a 100644 --- a/modules/squish/image_compress_squish.h +++ b/modules/squish/image_compress_squish.h @@ -33,7 +33,9 @@ #include "core/image.h" +#ifdef TOOLS_ENABLED void image_compress_squish(Image *p_image, float p_lossy_quality, Image::CompressSource p_source); +#endif void image_decompress_squish(Image *p_image); #endif // IMAGE_COMPRESS_SQUISH_H diff --git a/modules/squish/register_types.cpp b/modules/squish/register_types.cpp index d4ed676cce..9a5bb47f19 100644 --- a/modules/squish/register_types.cpp +++ b/modules/squish/register_types.cpp @@ -29,17 +29,14 @@ /*************************************************************************/ #include "register_types.h" - -#ifdef TOOLS_ENABLED - #include "image_compress_squish.h" void register_squish_types() { +#ifdef TOOLS_ENABLED Image::set_compress_bc_func(image_compress_squish); +#endif Image::_image_decompress_bc = image_decompress_squish; } void unregister_squish_types() {} - -#endif diff --git a/modules/squish/register_types.h b/modules/squish/register_types.h index 00f5c345c4..9dbd69c46b 100644 --- a/modules/squish/register_types.h +++ b/modules/squish/register_types.h @@ -28,7 +28,5 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifdef TOOLS_ENABLED void register_squish_types(); void unregister_squish_types(); -#endif diff --git a/modules/visual_script/visual_script.cpp b/modules/visual_script/visual_script.cpp index 186e9e63b1..5b3b3a6769 100644 --- a/modules/visual_script/visual_script.cpp +++ b/modules/visual_script/visual_script.cpp @@ -981,6 +981,10 @@ bool VisualScript::is_tool() const { return false; } +bool VisualScript::is_valid() const { + return true; //always valid +} + ScriptLanguage *VisualScript::get_language() const { return VisualScriptLanguage::singleton; diff --git a/modules/visual_script/visual_script.h b/modules/visual_script/visual_script.h index bd666447a3..cdc9159a73 100644 --- a/modules/visual_script/visual_script.h +++ b/modules/visual_script/visual_script.h @@ -341,6 +341,7 @@ public: virtual Error reload(bool p_keep_state = false); virtual bool is_tool() const; + virtual bool is_valid() const; virtual ScriptLanguage *get_language() const; diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index afaa6a9b95..080d0643a2 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -3491,6 +3491,7 @@ VisualScriptEditor::VisualScriptEditor() { edit_menu = memnew(MenuButton); edit_menu->set_text(TTR("Edit")); + edit_menu->set_switch_on_hover(true); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/delete_selected"), EDIT_DELETE_NODES); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/toggle_breakpoint"), EDIT_TOGGLE_BREAKPOINT); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/find_node_type"), EDIT_FIND_NODE_TYPE); diff --git a/modules/webp/SCsub b/modules/webp/SCsub index 8a4307fbe1..d215f19cef 100644 --- a/modules/webp/SCsub +++ b/modules/webp/SCsub @@ -42,7 +42,6 @@ if env['builtin_libwebp']: "dsp/dec_neon.c", "dsp/dec_sse2.c", "dsp/dec_sse41.c", - "dsp/enc_avx2.c", "dsp/enc.c", "dsp/enc_mips32.c", "dsp/enc_mips_dsp_r2.c", @@ -90,7 +89,6 @@ if env['builtin_libwebp']: "enc/backward_references_enc.c", "enc/config_enc.c", "enc/cost_enc.c", - "enc/delta_palettization_enc.c", "enc/filter_enc.c", "enc/frame_enc.c", "enc/histogram_enc.c", diff --git a/platform/android/SCsub b/platform/android/SCsub index da2219b9e4..6d5af99bc5 100644 --- a/platform/android/SCsub +++ b/platform/android/SCsub @@ -10,9 +10,7 @@ from detect import get_ndk_version android_files = [ 'os_android.cpp', - 'godot_android.cpp', 'file_access_android.cpp', - 'dir_access_android.cpp', 'audio_driver_opensl.cpp', 'file_access_jandroid.cpp', 'dir_access_jandroid.cpp', @@ -25,7 +23,6 @@ android_files = [ thirdparty_files = [ 'ifaddrs_android.cpp', - 'android_native_app_glue.c', 'cpu-features.c', ] diff --git a/platform/android/android_native_app_glue.c b/platform/android/android_native_app_glue.c deleted file mode 100644 index 965f6284cd..0000000000 --- a/platform/android/android_native_app_glue.c +++ /dev/null @@ -1,437 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifdef ANDROID_NATIVE_ACTIVITY - -#include <jni.h> - - -#include <errno.h> -#include <string.h> -#include <unistd.h> -#include <sys/resource.h> - -#include "android_native_app_glue.h" -#include <android/log.h> - -#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "threaded_app", __VA_ARGS__)) - -static void free_saved_state(struct android_app* android_app) { - pthread_mutex_lock(&android_app->mutex); - if (android_app->savedState != NULL) { - free(android_app->savedState); - android_app->savedState = NULL; - android_app->savedStateSize = 0; - } - pthread_mutex_unlock(&android_app->mutex); -} - -int8_t android_app_read_cmd(struct android_app* android_app) { - int8_t cmd; - if (read(android_app->msgread, &cmd, sizeof(cmd)) == sizeof(cmd)) { - switch (cmd) { - case APP_CMD_SAVE_STATE: - free_saved_state(android_app); - break; - } - return cmd; - } else { - LOGI("No data on command pipe!"); - } - return -1; -} - -static void print_cur_config(struct android_app* android_app) { - char lang[2], country[2]; - AConfiguration_getLanguage(android_app->config, lang); - AConfiguration_getCountry(android_app->config, country); - - LOGI("Config: mcc=%d mnc=%d lang=%c%c cnt=%c%c orien=%d touch=%d dens=%d " - "keys=%d nav=%d keysHid=%d navHid=%d sdk=%d size=%d long=%d " - "modetype=%d modenight=%d", - AConfiguration_getMcc(android_app->config), - AConfiguration_getMnc(android_app->config), - lang[0], lang[1], country[0], country[1], - AConfiguration_getOrientation(android_app->config), - AConfiguration_getTouchscreen(android_app->config), - AConfiguration_getDensity(android_app->config), - AConfiguration_getKeyboard(android_app->config), - AConfiguration_getNavigation(android_app->config), - AConfiguration_getKeysHidden(android_app->config), - AConfiguration_getNavHidden(android_app->config), - AConfiguration_getSdkVersion(android_app->config), - AConfiguration_getScreenSize(android_app->config), - AConfiguration_getScreenLong(android_app->config), - AConfiguration_getUiModeType(android_app->config), - AConfiguration_getUiModeNight(android_app->config)); -} - -void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) { - switch (cmd) { - case APP_CMD_INPUT_CHANGED: - LOGI("APP_CMD_INPUT_CHANGED\n"); - pthread_mutex_lock(&android_app->mutex); - if (android_app->inputQueue != NULL) { - AInputQueue_detachLooper(android_app->inputQueue); - } - android_app->inputQueue = android_app->pendingInputQueue; - if (android_app->inputQueue != NULL) { - LOGI("Attaching input queue to looper"); - AInputQueue_attachLooper(android_app->inputQueue, - android_app->looper, LOOPER_ID_INPUT, NULL, - &android_app->inputPollSource); - } - pthread_cond_broadcast(&android_app->cond); - pthread_mutex_unlock(&android_app->mutex); - break; - - case APP_CMD_INIT_WINDOW: - LOGI("APP_CMD_INIT_WINDOW\n"); - pthread_mutex_lock(&android_app->mutex); - android_app->window = android_app->pendingWindow; - pthread_cond_broadcast(&android_app->cond); - pthread_mutex_unlock(&android_app->mutex); - break; - - case APP_CMD_TERM_WINDOW: - LOGI("APP_CMD_TERM_WINDOW\n"); - pthread_cond_broadcast(&android_app->cond); - break; - - case APP_CMD_RESUME: - case APP_CMD_START: - case APP_CMD_PAUSE: - case APP_CMD_STOP: - LOGI("activityState=%d\n", cmd); - pthread_mutex_lock(&android_app->mutex); - android_app->activityState = cmd; - pthread_cond_broadcast(&android_app->cond); - pthread_mutex_unlock(&android_app->mutex); - break; - - case APP_CMD_CONFIG_CHANGED: - LOGI("APP_CMD_CONFIG_CHANGED\n"); - AConfiguration_fromAssetManager(android_app->config, - android_app->activity->assetManager); - print_cur_config(android_app); - break; - - case APP_CMD_DESTROY: - LOGI("APP_CMD_DESTROY\n"); - android_app->destroyRequested = 1; - break; - } -} - -void android_app_post_exec_cmd(struct android_app* android_app, int8_t cmd) { - switch (cmd) { - case APP_CMD_TERM_WINDOW: - LOGI("APP_CMD_TERM_WINDOW\n"); - pthread_mutex_lock(&android_app->mutex); - android_app->window = NULL; - pthread_cond_broadcast(&android_app->cond); - pthread_mutex_unlock(&android_app->mutex); - break; - - case APP_CMD_SAVE_STATE: - LOGI("APP_CMD_SAVE_STATE\n"); - pthread_mutex_lock(&android_app->mutex); - android_app->stateSaved = 1; - pthread_cond_broadcast(&android_app->cond); - pthread_mutex_unlock(&android_app->mutex); - break; - - case APP_CMD_RESUME: - free_saved_state(android_app); - break; - } -} - -void app_dummy() { - -} - -static void android_app_destroy(struct android_app* android_app) { - LOGI("android_app_destroy!"); - free_saved_state(android_app); - pthread_mutex_lock(&android_app->mutex); - if (android_app->inputQueue != NULL) { - AInputQueue_detachLooper(android_app->inputQueue); - } - AConfiguration_delete(android_app->config); - android_app->destroyed = 1; - pthread_cond_broadcast(&android_app->cond); - pthread_mutex_unlock(&android_app->mutex); - // Can't touch android_app object after this. -} - -static void process_input(struct android_app* app, struct android_poll_source* source) { - AInputEvent* event = NULL; - if (AInputQueue_getEvent(app->inputQueue, &event) >= 0) { - LOGI("New input event: type=%d\n", AInputEvent_getType(event)); - if (AInputQueue_preDispatchEvent(app->inputQueue, event)) { - return; - } - int32_t handled = 0; - if (app->onInputEvent != NULL) handled = app->onInputEvent(app, event); - AInputQueue_finishEvent(app->inputQueue, event, handled); - } else { - LOGI("Failure reading next input event: %s\n", strerror(errno)); - } -} - -static void process_cmd(struct android_app* app, struct android_poll_source* source) { - int8_t cmd = android_app_read_cmd(app); - android_app_pre_exec_cmd(app, cmd); - if (app->onAppCmd != NULL) app->onAppCmd(app, cmd); - android_app_post_exec_cmd(app, cmd); -} - -static void* android_app_entry(void* param) { - struct android_app* android_app = (struct android_app*)param; - - android_app->config = AConfiguration_new(); - AConfiguration_fromAssetManager(android_app->config, android_app->activity->assetManager); - - print_cur_config(android_app); - - android_app->cmdPollSource.id = LOOPER_ID_MAIN; - android_app->cmdPollSource.app = android_app; - android_app->cmdPollSource.process = process_cmd; - android_app->inputPollSource.id = LOOPER_ID_INPUT; - android_app->inputPollSource.app = android_app; - android_app->inputPollSource.process = process_input; - - ALooper* looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS); - ALooper_addFd(looper, android_app->msgread, LOOPER_ID_MAIN, ALOOPER_EVENT_INPUT, NULL, - &android_app->cmdPollSource); - android_app->looper = looper; - - pthread_mutex_lock(&android_app->mutex); - android_app->running = 1; - pthread_cond_broadcast(&android_app->cond); - pthread_mutex_unlock(&android_app->mutex); - - android_main(android_app); - - android_app_destroy(android_app); - return NULL; -} - -// -------------------------------------------------------------------- -// Native activity interaction (called from main thread) -// -------------------------------------------------------------------- - -static struct android_app* android_app_create(ANativeActivity* activity, - void* savedState, size_t savedStateSize) { - struct android_app* android_app = (struct android_app*)malloc(sizeof(struct android_app)); - memset(android_app, 0, sizeof(struct android_app)); - android_app->activity = activity; - - pthread_mutex_init(&android_app->mutex, NULL); - pthread_cond_init(&android_app->cond, NULL); - - if (savedState != NULL) { - android_app->savedState = malloc(savedStateSize); - android_app->savedStateSize = savedStateSize; - memcpy(android_app->savedState, savedState, savedStateSize); - } - - int msgpipe[2]; - if (pipe(msgpipe)) { - LOGI("could not create pipe: %s", strerror(errno)); - } - android_app->msgread = msgpipe[0]; - android_app->msgwrite = msgpipe[1]; - - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - pthread_create(&android_app->thread, &attr, android_app_entry, android_app); - - // Wait for thread to start. - pthread_mutex_lock(&android_app->mutex); - while (!android_app->running) { - pthread_cond_wait(&android_app->cond, &android_app->mutex); - } - pthread_mutex_unlock(&android_app->mutex); - - return android_app; -} - -static void android_app_write_cmd(struct android_app* android_app, int8_t cmd) { - if (write(android_app->msgwrite, &cmd, sizeof(cmd)) != sizeof(cmd)) { - LOGI("Failure writing android_app cmd: %s\n", strerror(errno)); - } -} - -static void android_app_set_input(struct android_app* android_app, AInputQueue* inputQueue) { - pthread_mutex_lock(&android_app->mutex); - android_app->pendingInputQueue = inputQueue; - android_app_write_cmd(android_app, APP_CMD_INPUT_CHANGED); - while (android_app->inputQueue != android_app->pendingInputQueue) { - pthread_cond_wait(&android_app->cond, &android_app->mutex); - } - pthread_mutex_unlock(&android_app->mutex); -} - -static void android_app_set_window(struct android_app* android_app, ANativeWindow* window) { - pthread_mutex_lock(&android_app->mutex); - if (android_app->pendingWindow != NULL) { - android_app_write_cmd(android_app, APP_CMD_TERM_WINDOW); - } - android_app->pendingWindow = window; - if (window != NULL) { - android_app_write_cmd(android_app, APP_CMD_INIT_WINDOW); - } - while (android_app->window != android_app->pendingWindow) { - pthread_cond_wait(&android_app->cond, &android_app->mutex); - } - pthread_mutex_unlock(&android_app->mutex); -} - -static void android_app_set_activity_state(struct android_app* android_app, int8_t cmd) { - pthread_mutex_lock(&android_app->mutex); - android_app_write_cmd(android_app, cmd); - while (android_app->activityState != cmd) { - pthread_cond_wait(&android_app->cond, &android_app->mutex); - } - pthread_mutex_unlock(&android_app->mutex); -} - -static void android_app_free(struct android_app* android_app) { - pthread_mutex_lock(&android_app->mutex); - android_app_write_cmd(android_app, APP_CMD_DESTROY); - while (!android_app->destroyed) { - pthread_cond_wait(&android_app->cond, &android_app->mutex); - } - pthread_mutex_unlock(&android_app->mutex); - - close(android_app->msgread); - close(android_app->msgwrite); - pthread_cond_destroy(&android_app->cond); - pthread_mutex_destroy(&android_app->mutex); - free(android_app); -} - -static void onDestroy(ANativeActivity* activity) { - LOGI("Destroy: %p\n", activity); - android_app_free((struct android_app*)activity->instance); -} - -static void onStart(ANativeActivity* activity) { - LOGI("Start: %p\n", activity); - android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_START); -} - -static void onResume(ANativeActivity* activity) { - LOGI("Resume: %p\n", activity); - android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_RESUME); -} - -static void* onSaveInstanceState(ANativeActivity* activity, size_t* outLen) { - struct android_app* android_app = (struct android_app*)activity->instance; - void* savedState = NULL; - - LOGI("SaveInstanceState: %p\n", activity); - pthread_mutex_lock(&android_app->mutex); - android_app->stateSaved = 0; - android_app_write_cmd(android_app, APP_CMD_SAVE_STATE); - while (!android_app->stateSaved) { - pthread_cond_wait(&android_app->cond, &android_app->mutex); - } - - if (android_app->savedState != NULL) { - savedState = android_app->savedState; - *outLen = android_app->savedStateSize; - android_app->savedState = NULL; - android_app->savedStateSize = 0; - } - - pthread_mutex_unlock(&android_app->mutex); - - return savedState; -} - -static void onPause(ANativeActivity* activity) { - LOGI("Pause: %p\n", activity); - android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_PAUSE); -} - -static void onStop(ANativeActivity* activity) { - LOGI("Stop: %p\n", activity); - android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_STOP); -} - -static void onConfigurationChanged(ANativeActivity* activity) { - struct android_app* android_app = (struct android_app*)activity->instance; - LOGI("ConfigurationChanged: %p\n", activity); - android_app_write_cmd(android_app, APP_CMD_CONFIG_CHANGED); -} - -static void onLowMemory(ANativeActivity* activity) { - struct android_app* android_app = (struct android_app*)activity->instance; - LOGI("LowMemory: %p\n", activity); - android_app_write_cmd(android_app, APP_CMD_LOW_MEMORY); -} - -static void onWindowFocusChanged(ANativeActivity* activity, int focused) { - LOGI("WindowFocusChanged: %p -- %d\n", activity, focused); - android_app_write_cmd((struct android_app*)activity->instance, - focused ? APP_CMD_GAINED_FOCUS : APP_CMD_LOST_FOCUS); -} - -static void onNativeWindowCreated(ANativeActivity* activity, ANativeWindow* window) { - LOGI("NativeWindowCreated: %p -- %p\n", activity, window); - android_app_set_window((struct android_app*)activity->instance, window); -} - -static void onNativeWindowDestroyed(ANativeActivity* activity, ANativeWindow* window) { - LOGI("NativeWindowDestroyed: %p -- %p\n", activity, window); - android_app_set_window((struct android_app*)activity->instance, NULL); -} - -static void onInputQueueCreated(ANativeActivity* activity, AInputQueue* queue) { - LOGI("InputQueueCreated: %p -- %p\n", activity, queue); - android_app_set_input((struct android_app*)activity->instance, queue); -} - -static void onInputQueueDestroyed(ANativeActivity* activity, AInputQueue* queue) { - LOGI("InputQueueDestroyed: %p -- %p\n", activity, queue); - android_app_set_input((struct android_app*)activity->instance, NULL); -} - -void ANativeActivity_onCreate(ANativeActivity* activity, - void* savedState, size_t savedStateSize) { - LOGI("Creating: %p\n", activity); - activity->callbacks->onDestroy = onDestroy; - activity->callbacks->onStart = onStart; - activity->callbacks->onResume = onResume; - activity->callbacks->onSaveInstanceState = onSaveInstanceState; - activity->callbacks->onPause = onPause; - activity->callbacks->onStop = onStop; - activity->callbacks->onConfigurationChanged = onConfigurationChanged; - activity->callbacks->onLowMemory = onLowMemory; - activity->callbacks->onWindowFocusChanged = onWindowFocusChanged; - activity->callbacks->onNativeWindowCreated = onNativeWindowCreated; - activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyed; - activity->callbacks->onInputQueueCreated = onInputQueueCreated; - activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyed; - - activity->instance = android_app_create(activity, savedState, savedStateSize); -} -#endif diff --git a/platform/android/android_native_app_glue.h b/platform/android/android_native_app_glue.h deleted file mode 100644 index 36278d4c66..0000000000 --- a/platform/android/android_native_app_glue.h +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef _ANDROID_NATIVE_APP_GLUE_H -#define _ANDROID_NATIVE_APP_GLUE_H -#ifdef ANDROID_NATIVE_ACTIVITY - -#include <poll.h> -#include <pthread.h> -#include <sched.h> - -#include <android/configuration.h> -#include <android/looper.h> -#include <android/native_activity.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * The native activity interface provided by <android/native_activity.h> - * is based on a set of application-provided callbacks that will be called - * by the Activity's main thread when certain events occur. - * - * This means that each one of this callbacks _should_ _not_ block, or they - * risk having the system force-close the application. This programming - * model is direct, lightweight, but constraining. - * - * The 'threaded_native_app' static library is used to provide a different - * execution model where the application can implement its own main event - * loop in a different thread instead. Here's how it works: - * - * 1/ The application must provide a function named "android_main()" that - * will be called when the activity is created, in a new thread that is - * distinct from the activity's main thread. - * - * 2/ android_main() receives a pointer to a valid "android_app" structure - * that contains references to other important objects, e.g. the - * ANativeActivity obejct instance the application is running in. - * - * 3/ the "android_app" object holds an ALooper instance that already - * listens to two important things: - * - * - activity lifecycle events (e.g. "pause", "resume"). See APP_CMD_XXX - * declarations below. - * - * - input events coming from the AInputQueue attached to the activity. - * - * Each of these correspond to an ALooper identifier returned by - * ALooper_pollOnce with values of LOOPER_ID_MAIN and LOOPER_ID_INPUT, - * respectively. - * - * Your application can use the same ALooper to listen to additional - * file-descriptors. They can either be callback based, or with return - * identifiers starting with LOOPER_ID_USER. - * - * 4/ Whenever you receive a LOOPER_ID_MAIN or LOOPER_ID_INPUT event, - * the returned data will point to an android_poll_source structure. You - * can call the process() function on it, and fill in android_app->onAppCmd - * and android_app->onInputEvent to be called for your own processing - * of the event. - * - * Alternatively, you can call the low-level functions to read and process - * the data directly... look at the process_cmd() and process_input() - * implementations in the glue to see how to do this. - * - * See the sample named "native-activity" that comes with the NDK with a - * full usage example. Also look at the JavaDoc of NativeActivity. - */ - -struct android_app; - -/** - * Data associated with an ALooper fd that will be returned as the "outData" - * when that source has data ready. - */ -struct android_poll_source { - // The identifier of this source. May be LOOPER_ID_MAIN or - // LOOPER_ID_INPUT. - int32_t id; - - // The android_app this ident is associated with. - struct android_app* app; - - // Function to call to perform the standard processing of data from - // this source. - void (*process)(struct android_app* app, struct android_poll_source* source); -}; - -/** - * This is the interface for the standard glue code of a threaded - * application. In this model, the application's code is running - * in its own thread separate from the main thread of the process. - * It is not required that this thread be associated with the Java - * VM, although it will need to be in order to make JNI calls any - * Java objects. - */ -struct android_app { - // The application can place a pointer to its own state object - // here if it likes. - void* userData; - - // Fill this in with the function to process main app commands (APP_CMD_*) - void (*onAppCmd)(struct android_app* app, int32_t cmd); - - // Fill this in with the function to process input events. At this point - // the event has already been pre-dispatched, and it will be finished upon - // return. Return 1 if you have handled the event, 0 for any default - // dispatching. - int32_t (*onInputEvent)(struct android_app* app, AInputEvent* event); - - // The ANativeActivity object instance that this app is running in. - ANativeActivity* activity; - - // The current configuration the app is running in. - AConfiguration* config; - - // This is the last instance's saved state, as provided at creation time. - // It is NULL if there was no state. You can use this as you need; the - // memory will remain around until you call android_app_exec_cmd() for - // APP_CMD_RESUME, at which point it will be freed and savedState set to NULL. - // These variables should only be changed when processing a APP_CMD_SAVE_STATE, - // at which point they will be initialized to NULL and you can malloc your - // state and place the information here. In that case the memory will be - // freed for you later. - void* savedState; - size_t savedStateSize; - - // The ALooper associated with the app's thread. - ALooper* looper; - - // When non-NULL, this is the input queue from which the app will - // receive user input events. - AInputQueue* inputQueue; - - // When non-NULL, this is the window surface that the app can draw in. - ANativeWindow* window; - - // Current content rectangle of the window; this is the area where the - // window's content should be placed to be seen by the user. - ARect contentRect; - - // Current state of the app's activity. May be either APP_CMD_START, - // APP_CMD_RESUME, APP_CMD_PAUSE, or APP_CMD_STOP; see below. - int activityState; - - // This is non-zero when the application's NativeActivity is being - // destroyed and waiting for the app thread to complete. - int destroyRequested; - - // ------------------------------------------------- - // Below are "private" implementation of the glue code. - - pthread_mutex_t mutex; - pthread_cond_t cond; - - int msgread; - int msgwrite; - - pthread_t thread; - - struct android_poll_source cmdPollSource; - struct android_poll_source inputPollSource; - - int running; - int stateSaved; - int destroyed; - int redrawNeeded; - AInputQueue* pendingInputQueue; - ANativeWindow* pendingWindow; - ARect pendingContentRect; -}; - -enum { - /** - * Looper data ID of commands coming from the app's main thread, which - * is returned as an identifier from ALooper_pollOnce(). The data for this - * identifier is a pointer to an android_poll_source structure. - * These can be retrieved and processed with android_app_read_cmd() - * and android_app_exec_cmd(). - */ - LOOPER_ID_MAIN = 1, - - /** - * Looper data ID of events coming from the AInputQueue of the - * application's window, which is returned as an identifier from - * ALooper_pollOnce(). The data for this identifier is a pointer to an - * android_poll_source structure. These can be read via the inputQueue - * object of android_app. - */ - LOOPER_ID_INPUT = 2, - - /** - * Start of user-defined ALooper identifiers. - */ - LOOPER_ID_USER = 3, -}; - -enum { - /** - * Command from main thread: the AInputQueue has changed. Upon processing - * this command, android_app->inputQueue will be updated to the new queue - * (or NULL). - */ - APP_CMD_INPUT_CHANGED, - - /** - * Command from main thread: a new ANativeWindow is ready for use. Upon - * receiving this command, android_app->window will contain the new window - * surface. - */ - APP_CMD_INIT_WINDOW, - - /** - * Command from main thread: the existing ANativeWindow needs to be - * terminated. Upon receiving this command, android_app->window still - * contains the existing window; after calling android_app_exec_cmd - * it will be set to NULL. - */ - APP_CMD_TERM_WINDOW, - - /** - * Command from main thread: the current ANativeWindow has been resized. - * Please redraw with its new size. - */ - APP_CMD_WINDOW_RESIZED, - - /** - * Command from main thread: the system needs that the current ANativeWindow - * be redrawn. You should redraw the window before handing this to - * android_app_exec_cmd() in order to avoid transient drawing glitches. - */ - APP_CMD_WINDOW_REDRAW_NEEDED, - - /** - * Command from main thread: the content area of the window has changed, - * such as from the soft input window being shown or hidden. You can - * find the new content rect in android_app::contentRect. - */ - APP_CMD_CONTENT_RECT_CHANGED, - - /** - * Command from main thread: the app's activity window has gained - * input focus. - */ - APP_CMD_GAINED_FOCUS, - - /** - * Command from main thread: the app's activity window has lost - * input focus. - */ - APP_CMD_LOST_FOCUS, - - /** - * Command from main thread: the current device configuration has changed. - */ - APP_CMD_CONFIG_CHANGED, - - /** - * Command from main thread: the system is running low on memory. - * Try to reduce your memory use. - */ - APP_CMD_LOW_MEMORY, - - /** - * Command from main thread: the app's activity has been started. - */ - APP_CMD_START, - - /** - * Command from main thread: the app's activity has been resumed. - */ - APP_CMD_RESUME, - - /** - * Command from main thread: the app should generate a new saved state - * for itself, to restore from later if needed. If you have saved state, - * allocate it with malloc and place it in android_app.savedState with - * the size in android_app.savedStateSize. The will be freed for you - * later. - */ - APP_CMD_SAVE_STATE, - - /** - * Command from main thread: the app's activity has been paused. - */ - APP_CMD_PAUSE, - - /** - * Command from main thread: the app's activity has been stopped. - */ - APP_CMD_STOP, - - /** - * Command from main thread: the app's activity is being destroyed, - * and waiting for the app thread to clean up and exit before proceeding. - */ - APP_CMD_DESTROY, -}; - -/** - * Call when ALooper_pollAll() returns LOOPER_ID_MAIN, reading the next - * app command message. - */ -int8_t android_app_read_cmd(struct android_app* android_app); - -/** - * Call with the command returned by android_app_read_cmd() to do the - * initial pre-processing of the given command. You can perform your own - * actions for the command after calling this function. - */ -void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd); - -/** - * Call with the command returned by android_app_read_cmd() to do the - * final post-processing of the given command. You must have done your own - * actions for the command before calling this function. - */ -void android_app_post_exec_cmd(struct android_app* android_app, int8_t cmd); - -/** - * Dummy function you can call to ensure glue code isn't stripped. - */ -void app_dummy(); - -/** - * This is the function that application code must implement, representing - * the main entry to the app. - */ -extern void android_main(struct android_app* app); - -#ifdef __cplusplus -} -#endif - -#endif /* _ANDROID_NATIVE_APP_GLUE_H */ -#endif diff --git a/platform/android/audio_driver_jandroid.cpp b/platform/android/audio_driver_jandroid.cpp index 4fab40d534..b75a4a3869 100644 --- a/platform/android/audio_driver_jandroid.cpp +++ b/platform/android/audio_driver_jandroid.cpp @@ -34,8 +34,6 @@ #include "core/project_settings.h" #include "thread_jandroid.h" -#ifndef ANDROID_NATIVE_ACTIVITY - AudioDriverAndroid *AudioDriverAndroid::s_ad = NULL; jobject AudioDriverAndroid::io; @@ -204,5 +202,3 @@ AudioDriverAndroid::AudioDriverAndroid() { s_ad = this; active = false; } - -#endif diff --git a/platform/android/audio_driver_jandroid.h b/platform/android/audio_driver_jandroid.h index 763f0e9b5a..3c51ed746d 100644 --- a/platform/android/audio_driver_jandroid.h +++ b/platform/android/audio_driver_jandroid.h @@ -33,8 +33,6 @@ #include "servers/audio_server.h" -#ifndef ANDROID_NATIVE_ACTIVITY - #include "java_glue.h" class AudioDriverAndroid : public AudioDriver { @@ -78,5 +76,4 @@ public: AudioDriverAndroid(); }; -#endif #endif // AUDIO_DRIVER_ANDROID_H diff --git a/platform/android/dir_access_android.cpp b/platform/android/dir_access_android.cpp deleted file mode 100644 index 402da4527e..0000000000 --- a/platform/android/dir_access_android.cpp +++ /dev/null @@ -1,190 +0,0 @@ -/*************************************************************************/ -/* dir_access_android.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 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. */ -/*************************************************************************/ - -#ifdef ANDROID_NATIVE_ACTIVITY -#include "dir_access_android.h" -#include "file_access_android.h" - -DirAccess *DirAccessAndroid::create_fs() { - - return memnew(DirAccessAndroid); -} - -Error DirAccessAndroid::list_dir_begin() { - - list_dir_end(); - - AAssetDir *aad = AAssetManager_openDir(FileAccessAndroid::asset_manager, current_dir.utf8().get_data()); - if (!aad) - return ERR_CANT_OPEN; //nothing - - return OK; -} - -String DirAccessAndroid::get_next() { - - const char *fn = AAssetDir_getNextFileName(aad); - if (!fn) - return ""; - String s; - s.parse_utf8(fn); - current = s; - return s; -} - -bool DirAccessAndroid::current_is_dir() const { - - String sd; - if (current_dir == "") - sd = current; - else - sd = current_dir + "/" + current; - - AAssetDir *aad2 = AAssetManager_openDir(FileAccessAndroid::asset_manager, sd.utf8().get_data()); - if (aad2) { - - AAssetDir_close(aad2); - return true; - } - - return false; -} - -bool DirAccessAndroid::current_is_hidden() const { - return current != "." && current != ".." && current.begins_with("."); -} - -void DirAccessAndroid::list_dir_end() { - - if (aad == NULL) - return; - - AAssetDir_close(aad); - aad = NULL; -} - -int DirAccessAndroid::get_drive_count() { - - return 0; -} - -String DirAccessAndroid::get_drive(int p_drive) { - - return ""; -} - -Error DirAccessAndroid::change_dir(String p_dir) { - - p_dir = p_dir.simplify_path(); - - if (p_dir == "" || p_dir == "." || (p_dir == ".." && current_dir == "")) - return OK; - - String new_dir; - - if (p_dir.begins_with("/")) - new_dir = p_dir.substr(1, p_dir.length()); - else if (p_dir.begins_with("res://")) - new_dir = p_dir.substr(6, p_dir.length()); - else //relative - new_dir = new_dir + "/" + p_dir; - - //test if newdir exists - new_dir = new_dir.simplify_path(); - - AAssetDir *aad = AAssetManager_openDir(FileAccessAndroid::asset_manager, new_dir.utf8().get_data()); - if (aad) { - - current_dir = new_dir; - AAssetDir_close(aad); - return OK; - } - - return ERR_INVALID_PARAMETER; -} - -String DirAccessAndroid::get_current_dir() { - - return "/" + current_dir; -} - -bool DirAccessAndroid::file_exists(String p_file) { - - String sd; - if (current_dir == "") - sd = p_file; - else - sd = current_dir + "/" + p_file; - - AAsset *a = AAssetManager_open(FileAccessAndroid::asset_manager, sd.utf8().get_data(), AASSET_MODE_STREAMING); - if (a) { - AAsset_close(a); - return true; - } - - return false; -} - -Error DirAccessAndroid::make_dir(String p_dir) { - - ERR_FAIL_V(ERR_UNAVAILABLE); -} - -Error DirAccessAndroid::rename(String p_from, String p_to) { - - ERR_FAIL_V(ERR_UNAVAILABLE); -} - -Error DirAccessAndroid::remove(String p_name) { - - ERR_FAIL_V(ERR_UNAVAILABLE); -} - -//FileType get_file_type() const; -size_t DirAccessAndroid::get_space_left() { - - return 0; -} - -void DirAccessAndroid::make_default() { - - instance_func = create_fs; -} - -DirAccessAndroid::DirAccessAndroid() { - - aad = NULL; -} - -DirAccessAndroid::~DirAccessAndroid() { - - list_dir_end(); -} -#endif diff --git a/platform/android/dir_access_android.h b/platform/android/dir_access_android.h deleted file mode 100644 index 3ac0bd6332..0000000000 --- a/platform/android/dir_access_android.h +++ /dev/null @@ -1,80 +0,0 @@ -/*************************************************************************/ -/* dir_access_android.h */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 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 DIR_ACCESS_ANDROID_H -#define DIR_ACCESS_ANDROID_H - -#ifdef ANDROID_NATIVE_ACTIVITY - -#include "core/os/dir_access.h" -#include <android/asset_manager.h> -#include <android/log.h> -#include <android_native_app_glue.h> -#include <stdio.h> - -class DirAccessAndroid : public DirAccess { - - AAssetDir *aad; - String current_dir; - String current; - - static DirAccess *create_fs(); - -public: - virtual Error list_dir_begin(); ///< This starts dir listing - virtual String get_next(); - virtual bool current_is_dir() const; - virtual bool current_is_hidden() const; - virtual void list_dir_end(); ///< - - virtual int get_drive_count(); - virtual String get_drive(int p_drive); - - virtual Error change_dir(String p_dir); ///< can be relative or absolute, return false on success - virtual String get_current_dir(); ///< return current dir location - - virtual bool file_exists(String p_file); - - virtual Error make_dir(String p_dir); - - virtual Error rename(String p_from, String p_to); - virtual Error remove(String p_name); - - //virtual FileType get_file_type() const; - size_t get_space_left(); - - static void make_default(); - - DirAccessAndroid(); - ~DirAccessAndroid(); -}; - -#endif -#endif // DIR_ACCESS_ANDROID_H diff --git a/platform/android/dir_access_jandroid.cpp b/platform/android/dir_access_jandroid.cpp index 6a95277585..679a13217f 100644 --- a/platform/android/dir_access_jandroid.cpp +++ b/platform/android/dir_access_jandroid.cpp @@ -28,8 +28,6 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef ANDROID_NATIVE_ACTIVITY - #include "dir_access_jandroid.h" #include "core/print_string.h" #include "file_access_jandroid.h" @@ -245,4 +243,3 @@ DirAccessJAndroid::~DirAccessJAndroid() { list_dir_end(); } -#endif diff --git a/platform/android/dir_access_jandroid.h b/platform/android/dir_access_jandroid.h index 1653fb0aa5..ea1e11a4f1 100644 --- a/platform/android/dir_access_jandroid.h +++ b/platform/android/dir_access_jandroid.h @@ -31,8 +31,6 @@ #ifndef DIR_ACCESS_JANDROID_H #define DIR_ACCESS_JANDROID_H -#ifndef ANDROID_NATIVE_ACTIVITY - #include "core/os/dir_access.h" #include "java_glue.h" #include <stdio.h> @@ -87,4 +85,3 @@ public: }; #endif // DIR_ACCESS_JANDROID_H -#endif diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index 3766f732e4..a3b5b6dd58 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -672,10 +672,13 @@ class EditorExportAndroid : public EditorExportPlatform { aperms++; } - for (int i = 0; i < MAX_USER_PERMISSIONS; i++) { - String user_perm = p_preset->get("user_permissions/" + itos(i)); - if (user_perm.strip_edges() != "" && user_perm.strip_edges() != "False") - perms.push_back(user_perm.strip_edges()); + PoolStringArray user_perms = p_preset->get("permissions/custom_permissions"); + + for (int i = 0; i < user_perms.size(); i++) { + String user_perm = user_perms[i].strip_edges(); + if (!user_perm.empty()) { + perms.push_back(user_perm); + } } if (p_give_internet) { @@ -1104,10 +1107,6 @@ class EditorExportAndroid : public EditorExportPlatform { } public: - enum { - MAX_USER_PERMISSIONS = 20 - }; - typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total); public: @@ -1169,17 +1168,14 @@ public: r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "architectures/" + abi), is_default)); } + r_options->push_back(ExportOption(PropertyInfo(Variant::POOL_STRING_ARRAY, "permissions/custom_permissions"), PoolStringArray())); + const char **perms = android_perms; while (*perms) { r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "permissions/" + String(*perms).to_lower()), false)); perms++; } - - for (int i = 0; i < MAX_USER_PERMISSIONS; i++) { - - r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "user_permissions/" + itos(i)), false)); - } } virtual String get_name() const { diff --git a/platform/android/file_access_jandroid.cpp b/platform/android/file_access_jandroid.cpp index 573200bcf9..bba45ffc1d 100644 --- a/platform/android/file_access_jandroid.cpp +++ b/platform/android/file_access_jandroid.cpp @@ -28,8 +28,6 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef ANDROID_NATIVE_ACTIVITY - #include "file_access_jandroid.h" #include "core/os/os.h" #include "thread_jandroid.h" @@ -212,5 +210,3 @@ FileAccessJAndroid::~FileAccessJAndroid() { if (is_open()) close(); } - -#endif diff --git a/platform/android/file_access_jandroid.h b/platform/android/file_access_jandroid.h index 39c201ba85..98486702ab 100644 --- a/platform/android/file_access_jandroid.h +++ b/platform/android/file_access_jandroid.h @@ -31,8 +31,6 @@ #ifndef FILE_ACCESS_JANDROID_H #define FILE_ACCESS_JANDROID_H -#ifndef ANDROID_NATIVE_ACTIVITY - #include "core/os/file_access.h" #include "java_glue.h" class FileAccessJAndroid : public FileAccess { @@ -81,6 +79,4 @@ public: ~FileAccessJAndroid(); }; -#endif - #endif // FILE_ACCESS_JANDROID_H diff --git a/platform/android/godot_android.cpp b/platform/android/godot_android.cpp deleted file mode 100644 index c46c6f7804..0000000000 --- a/platform/android/godot_android.cpp +++ /dev/null @@ -1,937 +0,0 @@ -/*************************************************************************/ -/* godot_android.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 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. */ -/*************************************************************************/ - -#ifdef ANDROID_NATIVE_ACTIVITY - -#include "core/engine.h" -#include "core/project_settings.h" -#include "file_access_android.h" -#include "main/main.h" -#include "os_android.h" - -#include <EGL/egl.h> -#include <android/log.h> -#include <android/sensor.h> -#include <android/window.h> -#include <android_native_app_glue.h> -#include <errno.h> -#include <jni.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "godot", __VA_ARGS__)) -#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "godot", __VA_ARGS__)) - -extern "C" { -JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerSingleton(JNIEnv *env, jobject obj, jstring name, jobject p_object); -JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerMethod(JNIEnv *env, jobject obj, jstring sname, jstring name, jstring ret, jobjectArray args); -JNIEXPORT jstring JNICALL Java_org_godotengine_godot_Godot_getGlobal(JNIEnv *env, jobject obj, jstring path); -}; - -class JNISingleton : public Object { - - GDCLASS(JNISingleton, Object); - - struct MethodData { - - jmethodID method; - Variant::Type ret_type; - Vector<Variant::Type> argtypes; - }; - - jobject instance; - Map<StringName, MethodData> method_map; - JNIEnv *env; - -public: - void update_env(JNIEnv *p_env) { env = p_env; } - - virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error) { - - r_error.error = Variant::CallError::CALL_OK; - - Map<StringName, MethodData>::Element *E = method_map.find(p_method); - if (!E) { - - r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD; - return Variant(); - } - - int ac = E->get().argtypes.size(); - if (ac < p_argcount) { - - r_error.error = Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS; - r_error.argument = ac; - return Variant(); - } - - if (ac > p_argcount) { - - r_error.error = Variant::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS; - r_error.argument = ac; - return Variant(); - } - - for (int i = 0; i < p_argcount; i++) { - - if (!Variant::can_convert(p_args[i]->get_type(), E->get().argtypes[i])) { - - r_error.error = Variant::CallError::CALL_ERROR_INVALID_ARGUMENT; - r_error.argument = i; - r_error.expected = E->get().argtypes[i]; - } - } - - jvalue *v = NULL; - - if (p_argcount) { - - v = (jvalue *)alloca(sizeof(jvalue) * p_argcount); - } - - for (int i = 0; i < p_argcount; i++) { - - switch (E->get().argtypes[i]) { - - case Variant::BOOL: { - - v[i].z = *p_args[i]; - } break; - case Variant::INT: { - - v[i].i = *p_args[i]; - } break; - case Variant::REAL: { - - v[i].f = *p_args[i]; - } break; - case Variant::STRING: { - - String s = *p_args[i]; - jstring jStr = env->NewStringUTF(s.utf8().get_data()); - v[i].l = jStr; - } break; - case Variant::STRING_ARRAY: { - - PoolVector<String> sarray = *p_args[i]; - jobjectArray arr = env->NewObjectArray(sarray.size(), env->FindClass("java/lang/String"), env->NewStringUTF("")); - - for (int j = 0; j < sarray.size(); j++) { - - env->SetObjectArrayElement(arr, j, env->NewStringUTF(sarray[i].utf8().get_data())); - } - v[i].l = arr; - - } break; - case Variant::INT_ARRAY: { - - PoolVector<int> array = *p_args[i]; - jintArray arr = env->NewIntArray(array.size()); - PoolVector<int>::Read r = array.read(); - env->SetIntArrayRegion(arr, 0, array.size(), r.ptr()); - v[i].l = arr; - - } break; - case Variant::REAL_ARRAY: { - - PoolVector<float> array = *p_args[i]; - jfloatArray arr = env->NewFloatArray(array.size()); - PoolVector<float>::Read r = array.read(); - env->SetFloatArrayRegion(arr, 0, array.size(), r.ptr()); - v[i].l = arr; - - } break; - default: { - - ERR_FAIL_V(Variant()); - } break; - } - } - - Variant ret; - - switch (E->get().ret_type) { - - case Variant::NIL: { - - env->CallVoidMethodA(instance, E->get().method, v); - } break; - case Variant::BOOL: { - - ret = env->CallBooleanMethodA(instance, E->get().method, v); - } break; - case Variant::INT: { - - ret = env->CallIntMethodA(instance, E->get().method, v); - } break; - case Variant::REAL: { - - ret = env->CallFloatMethodA(instance, E->get().method, v); - } break; - case Variant::STRING: { - - jobject o = env->CallObjectMethodA(instance, E->get().method, v); - String singname = env->GetStringUTFChars((jstring)o, NULL); - } break; - case Variant::STRING_ARRAY: { - - jobjectArray arr = (jobjectArray)env->CallObjectMethodA(instance, E->get().method, v); - - int stringCount = env->GetArrayLength(arr); - PoolVector<String> sarr; - - for (int i = 0; i < stringCount; i++) { - jstring string = (jstring)env->GetObjectArrayElement(arr, i); - const char *rawString = env->GetStringUTFChars(string, 0); - sarr.push_back(String(rawString)); - } - - ret = sarr; - - } break; - case Variant::INT_ARRAY: { - - jintArray arr = (jintArray)env->CallObjectMethodA(instance, E->get().method, v); - - int fCount = env->GetArrayLength(arr); - PoolVector<int> sarr; - sarr.resize(fCount); - - PoolVector<int>::Write w = sarr.write(); - env->GetIntArrayRegion(arr, 0, fCount, w.ptr()); - w = PoolVector<int>::Write(); - ret = sarr; - } break; - case Variant::REAL_ARRAY: { - - jfloatArray arr = (jfloatArray)env->CallObjectMethodA(instance, E->get().method, v); - - int fCount = env->GetArrayLength(arr); - PoolVector<float> sarr; - sarr.resize(fCount); - - PoolVector<float>::Write w = sarr.write(); - env->GetFloatArrayRegion(arr, 0, fCount, w.ptr()); - w = PoolVector<float>::Write(); - ret = sarr; - } break; - default: { - - ERR_FAIL_V(Variant()); - } break; - } - - return ret; - } - - jobject get_instance() const { - - return instance; - } - void set_instance(jobject p_instance) { - - instance = p_instance; - } - - void add_method(const StringName &p_name, jmethodID p_method, const Vector<Variant::Type> &p_args, Variant::Type p_ret_type) { - - MethodData md; - md.method = p_method; - md.argtypes = p_args; - md.ret_type = p_ret_type; - method_map[p_name] = md; - } - - JNISingleton() {} -}; - -//JNIEnv *JNISingleton::env=NULL; - -static HashMap<String, JNISingleton *> jni_singletons; - -struct engine { - struct android_app *app; - OS_Android *os; - JNIEnv *jni; - - ASensorManager *sensorManager; - const ASensor *accelerometerSensor; - const ASensor *magnetometerSensor; - const ASensor *gyroscopeSensor; - ASensorEventQueue *sensorEventQueue; - - bool display_active; - bool requested_quit; - int animating; - EGLDisplay display; - EGLSurface surface; - EGLContext context; - int32_t width; - int32_t height; -}; - -/** - * Initialize an EGL context for the current display. - */ -static int engine_init_display(struct engine *engine, bool p_gl2) { - // initialize OpenGL ES and EGL - - /* - * Here specify the attributes of the desired configuration. - * Below, we select an EGLConfig with at least 8 bits per color - * component compatible with on-screen windows - */ - const EGLint gl2_attribs[] = { - // EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_BLUE_SIZE, 4, - EGL_GREEN_SIZE, 4, - EGL_RED_SIZE, 4, - EGL_ALPHA_SIZE, 0, - EGL_DEPTH_SIZE, 16, - EGL_STENCIL_SIZE, EGL_DONT_CARE, - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL_NONE - }; - - const EGLint gl1_attribs[] = { - // EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_BLUE_SIZE, 4, - EGL_GREEN_SIZE, 4, - EGL_RED_SIZE, 4, - EGL_ALPHA_SIZE, 0, - EGL_DEPTH_SIZE, 16, - EGL_STENCIL_SIZE, EGL_DONT_CARE, - EGL_NONE - }; - - const EGLint *attribs = p_gl2 ? gl2_attribs : gl1_attribs; - - EGLint w, h, dummy, format; - EGLint numConfigs; - EGLConfig config; - EGLSurface surface; - EGLContext context; - - EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY); - - eglInitialize(display, 0, 0); - - /* Here, the application chooses the configuration it desires. In this - * sample, we have a very simplified selection process, where we pick - * the first EGLConfig that matches our criteria */ - - eglChooseConfig(display, attribs, &config, 1, &numConfigs); - - LOGI("Num configs: %i\n", numConfigs); - - /* EGL_NATIVE_VISUAL_ID is an attribute of the EGLConfig that is - * guaranteed to be accepted by ANativeWindow_setBuffersGeometry(). - * As soon as we picked a EGLConfig, we can safely reconfigure the - * ANativeWindow buffers to match, using EGL_NATIVE_VISUAL_ID. */ - eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format); - - ANativeWindow_setBuffersGeometry(engine->app->window, 0, 0, format); - //ANativeWindow_setFlags(engine->app->window, 0, 0, format|); - - surface = eglCreateWindowSurface(display, config, engine->app->window, NULL); - - const EGLint context_attribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 2, - EGL_NONE - }; - context = eglCreateContext(display, config, EGL_NO_CONTEXT, p_gl2 ? context_attribs : NULL); - - if (eglMakeCurrent(display, surface, surface, context) == EGL_FALSE) { - LOGW("Unable to eglMakeCurrent"); - return -1; - } - - eglQuerySurface(display, surface, EGL_WIDTH, &w); - eglQuerySurface(display, surface, EGL_HEIGHT, &h); - - //engine->os->set_egl_extensions(eglQueryString(display,EGL_EXTENSIONS)); - engine->os->init_video_mode(w, h); - - engine->display = display; - engine->context = context; - engine->surface = surface; - engine->width = w; - engine->height = h; - engine->display_active = true; - - //engine->state.angle = 0; - - // Initialize GL state. - //glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); - glEnable(GL_CULL_FACE); - // glShadeModel(GL_SMOOTH); - glDisable(GL_DEPTH_TEST); - LOGI("GL Version: %s - %s %s\n", glGetString(GL_VERSION), glGetString(GL_VENDOR), glGetString(GL_RENDERER)); - - return 0; -} - -static void engine_draw_frame(struct engine *engine) { - if (engine->display == NULL) { - // No display. - return; - } - - // Just fill the screen with a color. - //glClearColor(0,1,0,1); - //glClear(GL_COLOR_BUFFER_BIT); - if (engine->os && engine->os->main_loop_iterate()) { - - engine->requested_quit = true; - return; //should exit instead - } - - eglSwapBuffers(engine->display, engine->surface); -} - -static void engine_term_display(struct engine *engine) { - if (engine->display != EGL_NO_DISPLAY) { - eglMakeCurrent(engine->display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - if (engine->context != EGL_NO_CONTEXT) { - eglDestroyContext(engine->display, engine->context); - } - if (engine->surface != EGL_NO_SURFACE) { - eglDestroySurface(engine->display, engine->surface); - } - eglTerminate(engine->display); - } - - engine->animating = 0; - engine->display = EGL_NO_DISPLAY; - engine->context = EGL_NO_CONTEXT; - engine->surface = EGL_NO_SURFACE; - engine->display_active = false; -} - -/** - * Process the next input event. - */ -static int32_t engine_handle_input(struct android_app *app, AInputEvent *event) { - struct engine *engine = (struct engine *)app->userData; - - if (!engine->os) - return 0; - - switch (AInputEvent_getType(event)) { - - case AINPUT_EVENT_TYPE_KEY: { - - int ac = AKeyEvent_getAction(event); - switch (ac) { - - case AKEY_EVENT_ACTION_DOWN: { - - int32_t code = AKeyEvent_getKeyCode(event); - if (code == AKEYCODE_BACK) { - - //AInputQueue_finishEvent(AInputQueue* queue, AInputEvent* event, int handled); - if (engine->os) - engine->os->main_loop_request_quit(); - return 1; - } - - } break; - case AKEY_EVENT_ACTION_UP: { - - } break; - } - - } break; - case AINPUT_EVENT_TYPE_MOTION: { - - Vector<OS_Android::TouchPos> touchvec; - - int pc = AMotionEvent_getPointerCount(event); - - touchvec.resize(pc); - - for (int i = 0; i < pc; i++) { - - touchvec[i].pos.x = AMotionEvent_getX(event, i); - touchvec[i].pos.y = AMotionEvent_getY(event, i); - touchvec[i].id = AMotionEvent_getPointerId(event, i); - } - - //System.out.printf("gaction: %d\n",event.getAction()); - int pidx = (AMotionEvent_getAction(event) & AMOTION_EVENT_ACTION_POINTER_INDEX_MASK) >> 8; - switch (AMotionEvent_getAction(event) & AMOTION_EVENT_ACTION_MASK) { - - case AMOTION_EVENT_ACTION_DOWN: { - engine->os->process_touch(0, 0, touchvec); - - //System.out.printf("action down at: %f,%f\n", event.getX(),event.getY()); - } break; - case AMOTION_EVENT_ACTION_MOVE: { - engine->os->process_touch(1, 0, touchvec); - /* - for(int i=0;i<event.getPointerCount();i++) { - System.out.printf("%d - moved to: %f,%f\n",i, event.getX(i),event.getY(i)); - } - */ - } break; - case AMOTION_EVENT_ACTION_POINTER_UP: { - - engine->os->process_touch(4, pidx, touchvec); - //System.out.printf("%d - s.up at: %f,%f\n",pointer_idx, event.getX(pointer_idx),event.getY(pointer_idx)); - } break; - case AMOTION_EVENT_ACTION_POINTER_DOWN: { - engine->os->process_touch(3, pidx, touchvec); - //System.out.printf("%d - s.down at: %f,%f\n",pointer_idx, event.getX(pointer_idx),event.getY(pointer_idx)); - } break; - case AMOTION_EVENT_ACTION_CANCEL: - case AMOTION_EVENT_ACTION_UP: { - engine->os->process_touch(2, 0, touchvec); - /* - for(int i=0;i<event.getPointerCount();i++) { - System.out.printf("%d - up! %f,%f\n",i, event.getX(i),event.getY(i)); - } - */ - } break; - } - - return 1; - } break; - } - - return 0; -} - -/** - * Process the next main command. - */ - -static void _gfx_init(void *ud, bool p_gl2) { - - struct engine *engine = (struct engine *)ud; - engine_init_display(engine, p_gl2); -} - -static void engine_handle_cmd(struct android_app *app, int32_t cmd) { - struct engine *engine = (struct engine *)app->userData; - // LOGI("**** CMD %i\n",cmd); - switch (cmd) { - case APP_CMD_SAVE_STATE: - // The system has asked us to save our current state. Do so. - //engine->app->savedState = malloc(sizeof(struct saved_state)); - //*((struct saved_state*)engine->app->savedState) = engine->state; - //engine->app->savedStateSize = sizeof(struct saved_state); - break; - case APP_CMD_CONFIG_CHANGED: - case APP_CMD_WINDOW_RESIZED: { - - if (engine->display_active) { - - EGLint w, h; - eglQuerySurface(engine->display, engine->surface, EGL_WIDTH, &w); - eglQuerySurface(engine->display, engine->surface, EGL_HEIGHT, &h); - // if (w==engine->os->get_video_mode().width && h==engine->os->get_video_mode().height) - // break; - - engine_term_display(engine); - } - - engine->os->reload_gfx(); - engine_draw_frame(engine); - engine->animating = 1; - - } break; - case APP_CMD_INIT_WINDOW: - //The window is being shown, get it ready. - //LOGI("INIT WINDOW"); - if (engine->app->window != NULL) { - - if (engine->os == NULL) { - - //do initialization here, when there's OpenGL! hackish but the only way - engine->os = new OS_Android(_gfx_init, engine); - - __android_log_print(ANDROID_LOG_INFO, "godot", "pre asdasd setup..."); - - Error err = Main::setup("apk", 0, NULL); - - String modules = ProjectSettings::get_singleton()->get("android/modules"); - Vector<String> mods = modules.split(",", false); - mods.push_back("GodotOS"); - __android_log_print(ANDROID_LOG_INFO, "godot", "mod count: %i", mods.size()); - - if (mods.size()) { - - jclass activityClass = engine->jni->FindClass("android/app/NativeActivity"); - - jmethodID getClassLoader = engine->jni->GetMethodID(activityClass, "getClassLoader", "()Ljava/lang/ClassLoader;"); - - jobject cls = engine->jni->CallObjectMethod(app->activity->clazz, getClassLoader); - - jclass classLoader = engine->jni->FindClass("java/lang/ClassLoader"); - - jmethodID findClass = engine->jni->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;"); - - static JNINativeMethod methods[] = { - { "registerSingleton", "(Ljava/lang/String;Ljava/lang/Object;)V", (void *)&Java_org_godotengine_godot_Godot_registerSingleton }, - { "registerMethod", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V", (void *)&Java_org_godotengine_godot_Godot_registerMethod }, - { "getGlobal", "(Ljava/lang/String;)Ljava/lang/String;", (void *)&Java_org_godotengine_godot_Godot_getGlobal }, - }; - - jstring gstrClassName = engine->jni->NewStringUTF("org/godotengine/godot/Godot"); - jclass GodotClass = (jclass)engine->jni->CallObjectMethod(cls, findClass, gstrClassName); - - __android_log_print(ANDROID_LOG_INFO, "godot", "godot ****^*^*?^*^*class data %x", GodotClass); - - engine->jni->RegisterNatives(GodotClass, methods, sizeof(methods) / sizeof(methods[0])); - - for (int i = 0; i < mods.size(); i++) { - - String m = mods[i]; - //jclass singletonClass = engine->jni->FindClass(m.utf8().get_data()); - - jstring strClassName = engine->jni->NewStringUTF(m.utf8().get_data()); - jclass singletonClass = (jclass)engine->jni->CallObjectMethod(cls, findClass, strClassName); - - __android_log_print(ANDROID_LOG_INFO, "godot", "****^*^*?^*^*class data %x", singletonClass); - jmethodID initialize = engine->jni->GetStaticMethodID(singletonClass, "initialize", "(Landroid/app/Activity;)Lorg/godotengine/godot/Godot$SingletonBase;"); - - jobject obj = engine->jni->CallStaticObjectMethod(singletonClass, initialize, app->activity->clazz); - __android_log_print(ANDROID_LOG_INFO, "godot", "****^*^*?^*^*class instance %x", obj); - jobject gob = engine->jni->NewGlobalRef(obj); - } - } - - if (!Main::start()) - return; //should exit instead and print the error - - engine->os->main_loop_begin(); - } else { - //i guess recreate resources? - engine->os->reload_gfx(); - } - - engine->animating = 1; - engine_draw_frame(engine); - } - break; - case APP_CMD_TERM_WINDOW: - // The window is being hidden or closed, clean it up. - //LOGI("TERM WINDOW"); - engine_term_display(engine); - break; - case APP_CMD_GAINED_FOCUS: - // When our app gains focus, we start monitoring the accelerometer. - if (engine->accelerometerSensor != NULL) { - ASensorEventQueue_enableSensor(engine->sensorEventQueue, - engine->accelerometerSensor); - // We'd like to get 60 events per second (in us). - ASensorEventQueue_setEventRate(engine->sensorEventQueue, - engine->accelerometerSensor, (1000L / 60) * 1000); - } - // start monitoring gravity - if (engine->gravitySensor != NULL) { - ASensorEventQueue_enableSensor(engine->sensorEventQueue, - engine->gravitySensor); - // We'd like to get 60 events per second (in us). - ASensorEventQueue_setEventRate(engine->sensorEventQueue, - engine->gravitySensor, (1000L / 60) * 1000); - } - // Also start monitoring the magnetometer. - if (engine->magnetometerSensor != NULL) { - ASensorEventQueue_enableSensor(engine->sensorEventQueue, - engine->magnetometerSensor); - // We'd like to get 60 events per second (in us). - ASensorEventQueue_setEventRate(engine->sensorEventQueue, - engine->magnetometerSensor, (1000L / 60) * 1000); - } - // And the gyroscope. - if (engine->gyroscopeSensor != NULL) { - ASensorEventQueue_enableSensor(engine->sensorEventQueue, - engine->gyroscopeSensor); - // We'd like to get 60 events per second (in us). - ASensorEventQueue_setEventRate(engine->sensorEventQueue, - engine->gyroscopeSensor, (1000L / 60) * 1000); - } - engine->animating = 1; - break; - case APP_CMD_LOST_FOCUS: - // When our app loses focus, we stop monitoring the sensors. - // This is to avoid consuming battery while not being used. - if (engine->accelerometerSensor != NULL) { - ASensorEventQueue_disableSensor(engine->sensorEventQueue, - engine->accelerometerSensor); - } - if (engine->gravitySensor != NULL) { - ASensorEventQueue_disableSensor(engine->sensorEventQueue, - engine->gravitySensor); - } - if (engine->magnetometerSensor != NULL) { - ASensorEventQueue_disableSensor(engine->sensorEventQueue, - engine->magnetometerSensor); - } - if (engine->gyroscopeSensor != NULL) { - ASensorEventQueue_disableSensor(engine->sensorEventQueue, - engine->gyroscopeSensor); - } - // Also stop animating. - engine->animating = 0; - engine_draw_frame(engine); - break; - } -} - -void android_main(struct android_app *app) { - struct engine engine; - // Make sure glue isn't stripped. - app_dummy(); - - memset(&engine, 0, sizeof(engine)); - app->userData = &engine; - app->onAppCmd = engine_handle_cmd; - app->onInputEvent = engine_handle_input; - engine.app = app; - engine.requested_quit = false; - engine.os = NULL; - engine.display_active = false; - - FileAccessAndroid::asset_manager = app->activity->assetManager; - - // Prepare to monitor sensors - engine.sensorManager = ASensorManager_getInstance(); - engine.accelerometerSensor = ASensorManager_getDefaultSensor(engine.sensorManager, - ASENSOR_TYPE_ACCELEROMETER); - engine.gravitySensor = ASensorManager_getDefaultSensor(engine.sensorManager, - ASENSOR_TYPE_GRAVITY); - engine.magnetometerSensor = ASensorManager_getDefaultSensor(engine.sensorManager, - ASENSOR_TYPE_MAGNETIC_FIELD); - engine.gyroscopeSensor = ASensorManager_getDefaultSensor(engine.sensorManager, - ASENSOR_TYPE_GYROSCOPE); - engine.sensorEventQueue = ASensorManager_createEventQueue(engine.sensorManager, - app->looper, LOOPER_ID_USER, NULL, NULL); - - ANativeActivity_setWindowFlags(app->activity, AWINDOW_FLAG_FULLSCREEN | AWINDOW_FLAG_KEEP_SCREEN_ON, 0); - - app->activity->vm->AttachCurrentThread(&engine.jni, NULL); - - // loop waiting for stuff to do. - - while (1) { - // Read all pending events. - int ident; - int events; - struct android_poll_source *source; - - // If not animating, we will block forever waiting for events. - // If animating, we loop until all events are read, then continue - // to draw the next frame of animation. - - int nullmax = 50; - while ((ident = ALooper_pollAll(engine.animating ? 0 : -1, NULL, &events, - (void **)&source)) >= 0) { - - // Process this event. - - if (source != NULL) { - // LOGI("process\n"); - source->process(app, source); - } else { - nullmax--; - if (nullmax < 0) - break; - } - - // If a sensor has data, process it now. - // LOGI("events\n"); - if (ident == LOOPER_ID_USER) { - if (engine.accelerometerSensor != NULL || engine.magnetometerSensor != NULL || engine.gyroscopeSensor != NULL) { - ASensorEvent event; - while (ASensorEventQueue_getEvents(engine.sensorEventQueue, - &event, 1) > 0) { - - if (engine.os) { - if (event.acceleration != NULL) { - engine.os->process_accelerometer(Vector3(event.acceleration.x, event.acceleration.y, - event.acceleration.z)); - } - if (event.magnetic != NULL) { - engine.os->process_magnetometer(Vector3(event.magnetic.x, event.magnetic.y, - event.magnetic.z)); - } - if (event.vector != NULL) { - engine.os->process_gyroscope(Vector3(event.vector.x, event.vector.y, - event.vector.z)); - } - } - } - } - } - - // Check if we are exiting. - if (app->destroyRequested != 0) { - if (engine.os) { - engine.os->main_loop_request_quit(); - } - app->destroyRequested = 0; - } - - if (engine.requested_quit) { - engine_term_display(&engine); - exit(0); - } - - // LOGI("end\n"); - } - - // LOGI("engine animating? %i\n",engine.animating); - - if (engine.animating) { - //do os render - - engine_draw_frame(&engine); - //LOGI("TERM WINDOW"); - } - } -} - -JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerSingleton(JNIEnv *env, jobject obj, jstring name, jobject p_object) { - - String singname = env->GetStringUTFChars(name, NULL); - JNISingleton *s = memnew(JNISingleton); - s->update_env(env); - s->set_instance(env->NewGlobalRef(p_object)); - jni_singletons[singname] = s; - - Engine::get_singleton()->add_singleton(Engine::Singleton(singname, s)); -} - -static Variant::Type get_jni_type(const String &p_type) { - - static struct { - const char *name; - Variant::Type type; - } _type_to_vtype[] = { - { "void", Variant::NIL }, - { "boolean", Variant::BOOL }, - { "int", Variant::INT }, - { "float", Variant::REAL }, - { "java.lang.String", Variant::STRING }, - { "[I", Variant::INT_ARRAY }, - { "[F", Variant::REAL_ARRAY }, - { "[Ljava.lang.String;", Variant::STRING_ARRAY }, - { NULL, Variant::NIL } - }; - - int idx = 0; - - while (_type_to_vtype[idx].name) { - - if (p_type == _type_to_vtype[idx].name) - return _type_to_vtype[idx].type; - - idx++; - } - - return Variant::NIL; -} - -static const char *get_jni_sig(const String &p_type) { - - static struct { - const char *name; - const char *sig; - } _type_to_vtype[] = { - { "void", "V" }, - { "boolean", "Z" }, - { "int", "I" }, - { "float", "F" }, - { "java.lang.String", "Ljava/lang/String;" }, - { "[I", "[I" }, - { "[F", "[F" }, - { "[Ljava.lang.String;", "[Ljava/lang/String;" }, - { NULL, "V" } - }; - - int idx = 0; - - while (_type_to_vtype[idx].name) { - - if (p_type == _type_to_vtype[idx].name) - return _type_to_vtype[idx].sig; - - idx++; - } - - return ""; -} - -JNIEXPORT jstring JNICALL Java_org_godotengine_godot_Godot_getGlobal(JNIEnv *env, jobject obj, jstring path) { - - String js = env->GetStringUTFChars(path, NULL); - - return env->NewStringUTF(ProjectSettings::get_singleton()->get(js).operator String().utf8().get_data()); -} - -JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerMethod(JNIEnv *env, jobject obj, jstring sname, jstring name, jstring ret, jobjectArray args) { - - String singname = env->GetStringUTFChars(sname, NULL); - - ERR_FAIL_COND(!jni_singletons.has(singname)); - - JNISingleton *s = jni_singletons.get(singname); - - String mname = env->GetStringUTFChars(name, NULL); - String retval = env->GetStringUTFChars(ret, NULL); - Vector<Variant::Type> types; - String cs = "("; - - int stringCount = env->GetArrayLength(args); - - for (int i = 0; i < stringCount; i++) { - - jstring string = (jstring)env->GetObjectArrayElement(args, i); - const char *rawString = env->GetStringUTFChars(string, 0); - types.push_back(get_jni_type(String(rawString))); - cs += get_jni_sig(String(rawString)); - } - - cs += ")"; - cs += get_jni_sig(retval); - jclass cls = env->GetObjectClass(s->get_instance()); - jmethodID mid = env->GetMethodID(cls, mname.ascii().get_data(), cs.ascii().get_data()); - if (!mid) { - - print_line("RegisterMethod: Failed getting method ID: " + mname); - } - - s->add_method(mname, mid, types, get_jni_type(retval)); -} - -#endif diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp index 43bd841baf..fb9c0f08ad 100644 --- a/platform/android/java_glue.cpp +++ b/platform/android/java_glue.cpp @@ -28,8 +28,6 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef ANDROID_NATIVE_ACTIVITY - #include "java_glue.h" #include "android/asset_manager_jni.h" #include "audio_driver_jandroid.h" @@ -1566,4 +1564,3 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv * //Main::cleanup(); //return os.get_exit_code(); -#endif diff --git a/platform/android/java_glue.h b/platform/android/java_glue.h index d433b5f0d8..dc5b9cca49 100644 --- a/platform/android/java_glue.h +++ b/platform/android/java_glue.h @@ -28,8 +28,6 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef ANDROID_NATIVE_ACTIVITY - #ifndef JAVA_GLUE_H #define JAVA_GLUE_H @@ -64,5 +62,4 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv * JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setVirtualKeyboardHeight(JNIEnv *env, jobject obj, jint p_height); } -#endif #endif // JAVA_GLUE_H diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 96ff226402..afdd108987 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -41,13 +41,8 @@ #include "servers/visual/visual_server_raster.h" #include "servers/visual/visual_server_wrap_mt.h" -#ifdef ANDROID_NATIVE_ACTIVITY -#include "dir_access_android.h" -#include "file_access_android.h" -#else #include "dir_access_jandroid.h" #include "file_access_jandroid.h" -#endif #include <dlfcn.h> @@ -90,18 +85,6 @@ void OS_Android::initialize_core() { OS_Unix::initialize_core(); -#ifdef ANDROID_NATIVE_ACTIVITY - - FileAccess::make_default<FileAccessAndroid>(FileAccess::ACCESS_RESOURCES); - FileAccess::make_default<FileAccessUnix>(FileAccess::ACCESS_USERDATA); - FileAccess::make_default<FileAccessUnix>(FileAccess::ACCESS_FILESYSTEM); - //FileAccessBufferedFA<FileAccessUnix>::make_default(); - DirAccess::make_default<DirAccessAndroid>(DirAccess::ACCESS_RESOURCES); - DirAccess::make_default<DirAccessUnix>(DirAccess::ACCESS_USERDATA); - DirAccess::make_default<DirAccessUnix>(DirAccess::ACCESS_FILESYSTEM); - -#else - if (use_apk_expansion) FileAccess::make_default<FileAccessUnix>(FileAccess::ACCESS_RESOURCES); else { @@ -121,8 +104,6 @@ void OS_Android::initialize_core() { DirAccess::make_default<DirAccessJAndroid>(DirAccess::ACCESS_RESOURCES); DirAccess::make_default<DirAccessUnix>(DirAccess::ACCESS_USERDATA); DirAccess::make_default<DirAccessUnix>(DirAccess::ACCESS_FILESYSTEM); - -#endif } void OS_Android::set_opengl_extensions(const char *p_gl_extensions) { diff --git a/platform/android/os_android.h b/platform/android/os_android.h index e89a380e4c..ad6fe1976a 100644 --- a/platform/android/os_android.h +++ b/platform/android/os_android.h @@ -41,12 +41,6 @@ #include "servers/audio_server.h" #include "servers/visual/rasterizer.h" -#ifdef ANDROID_NATIVE_ACTIVITY -#include <android/log.h> -#include <android/sensor.h> -#include <android_native_app_glue.h> -#endif - typedef void (*GFXInitFunc)(void *ud, bool gl2); typedef int (*OpenURIFunc)(const String &); typedef String (*GetUserDataDirFunc)(); diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py index c9f37931b0..4608770c09 100644 --- a/platform/iphone/detect.py +++ b/platform/iphone/detect.py @@ -105,13 +105,13 @@ def configure(env): detect_darwin_sdk_path('iphonesimulator', env) env['ENV']['MACOSX_DEPLOYMENT_TARGET'] = '10.9' arch_flag = "i386" if env["arch"] == "x86" else env["arch"] - env.Append(CCFLAGS=('-arch ' + arch_flag + ' -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fblocks -fasm-blocks -isysroot $IPHONESDK -mios-simulator-version-min=9.0 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"').split()) + env.Append(CCFLAGS=('-arch ' + arch_flag + ' -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fblocks -fasm-blocks -isysroot $IPHONESDK -mios-simulator-version-min=10.0 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"').split()) elif (env["arch"] == "arm"): detect_darwin_sdk_path('iphone', env) - env.Append(CCFLAGS='-fno-objc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -fpascal-strings -fblocks -isysroot $IPHONESDK -fvisibility=hidden -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=9.0 -MMD -MT dependencies'.split()) + env.Append(CCFLAGS='-fno-objc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -fpascal-strings -fblocks -isysroot $IPHONESDK -fvisibility=hidden -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=10.0 -MMD -MT dependencies'.split()) elif (env["arch"] == "arm64"): detect_darwin_sdk_path('iphone', env) - env.Append(CCFLAGS='-fno-objc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -fpascal-strings -fblocks -fvisibility=hidden -MMD -MT dependencies -miphoneos-version-min=9.0 -isysroot $IPHONESDK'.split()) + env.Append(CCFLAGS='-fno-objc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -fpascal-strings -fblocks -fvisibility=hidden -MMD -MT dependencies -miphoneos-version-min=10.0 -isysroot $IPHONESDK'.split()) env.Append(CPPFLAGS=['-DNEED_LONG_INT']) env.Append(CPPFLAGS=['-DLIBYUV_DISABLE_NEON']) @@ -124,7 +124,7 @@ def configure(env): if (env["arch"] == "x86" or env["arch"] == "x86_64"): arch_flag = "i386" if env["arch"] == "x86" else env["arch"] - env.Append(LINKFLAGS=['-arch', arch_flag, '-mios-simulator-version-min=9.0', + env.Append(LINKFLAGS=['-arch', arch_flag, '-mios-simulator-version-min=10.0', '-isysroot', '$IPHONESDK', '-Xlinker', '-objc_abi_version', @@ -132,9 +132,9 @@ def configure(env): '-F$IPHONESDK', ]) elif (env["arch"] == "arm"): - env.Append(LINKFLAGS=['-arch', 'armv7', '-Wl,-dead_strip', '-miphoneos-version-min=9.0']) + env.Append(LINKFLAGS=['-arch', 'armv7', '-Wl,-dead_strip', '-miphoneos-version-min=10.0']) if (env["arch"] == "arm64"): - env.Append(LINKFLAGS=['-arch', 'arm64', '-Wl,-dead_strip', '-miphoneos-version-min=9.0']) + env.Append(LINKFLAGS=['-arch', 'arm64', '-Wl,-dead_strip', '-miphoneos-version-min=10.0']) env.Append(LINKFLAGS=['-isysroot', '$IPHONESDK', '-framework', 'AudioToolbox', diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp index 7fb3afe9a9..8a9b254cdc 100644 --- a/platform/iphone/export/export.cpp +++ b/platform/iphone/export/export.cpp @@ -99,6 +99,70 @@ class EditorExportPlatformIOS : public EditorExportPlatform { Error _export_additional_assets(const String &p_out_dir, const Vector<String> &p_assets, bool p_is_framework, Vector<IOSExportAsset> &r_exported_assets); Error _export_additional_assets(const String &p_out_dir, const Vector<SharedObject> &p_libraries, Vector<IOSExportAsset> &r_exported_assets); + bool is_package_name_valid(const String &p_package, String *r_error = NULL) const { + + String pname = p_package; + + if (pname.length() == 0) { + if (r_error) { + *r_error = "Identifier is missing."; + } + return false; + } + + int segments = 0; + bool first = true; + for (int i = 0; i < pname.length(); i++) { + CharType c = pname[i]; + if (first && c == '.') { + if (r_error) { + *r_error = "Identifier segments must be of non-zero length."; + } + return false; + } + if (c == '.') { + segments++; + first = true; + continue; + } + if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')) { + if (r_error) { + *r_error = "The character '" + String::chr(c) + "' is not allowed in Identifier."; + } + return false; + } + if (first && (c >= '0' && c <= '9')) { + if (r_error) { + *r_error = "A digit cannot be the first character in a Identifier segment."; + } + return false; + } + if (first && c == '_') { + if (r_error) { + *r_error = "The character '" + String::chr(c) + "' cannot be the first character in a Identifier segment."; + } + return false; + } + first = false; + } + + if (segments == 0) { + if (r_error) { + *r_error = "The Identifier must have at least one '.' separator."; + } + return false; + } + + if (first) { + if (r_error) { + *r_error = "Identifier segments must be of non-zero length."; + } + return false; + } + + return true; + } + protected: virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features); virtual void get_export_options(List<ExportOption> *r_options); @@ -987,6 +1051,12 @@ bool EditorExportPlatformIOS::can_export(const Ref<EditorExportPreset> &p_preset err += "App Store Team ID not specified - cannot configure the project.\n"; } + String identifier = p_preset->get("application/identifier"); + String pn_err; + if (!is_package_name_valid(identifier, &pn_err)) { + err += "Invalid Identifier - " + pn_err + "\n"; + } + for (unsigned int i = 0; i < (sizeof(icon_infos) / sizeof(icon_infos[0])); ++i) { IconInfo info = icon_infos[i]; String icon_path = p_preset->get(info.preset_key); diff --git a/platform/iphone/gl_view.mm b/platform/iphone/gl_view.mm index 2925b46007..054c066224 100644 --- a/platform/iphone/gl_view.mm +++ b/platform/iphone/gl_view.mm @@ -47,6 +47,7 @@ @end */ +bool gles3_available = true; int gl_view_base_fb; static String keyboard_text; static GLView *_instance = NULL; @@ -84,7 +85,8 @@ Rect2 _get_ios_window_safe_area(float p_window_width, float p_window_height) { } ERR_FAIL_COND_V(insets.left < 0 || insets.top < 0 || insets.right < 0 || insets.bottom < 0, Rect2(0, 0, p_window_width, p_window_height)); - return Rect2(insets.left, insets.top, p_window_width - insets.right - insets.left, p_window_height - insets.bottom - insets.top); + UIEdgeInsets window_insets = UIEdgeInsetsMake(_points_to_pixels(insets.top), _points_to_pixels(insets.left), _points_to_pixels(insets.bottom), _points_to_pixels(insets.right)); + return Rect2(window_insets.left, window_insets.top, p_window_width - window_insets.right - window_insets.left, p_window_height - window_insets.bottom - window_insets.top); } bool _play_video(String p_path, float p_volume, String p_audio_track, String p_subtitle_track) { @@ -287,8 +289,12 @@ static void clear_touches() { context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]; if (!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) { - [self release]; - return nil; + context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; + gles3_available = false; + if (!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) { + [self release]; + return nil; + } } // Default the animation interval to 1/60th of a second. diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index e996a5905b..dd764b7173 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -32,6 +32,7 @@ #include "os_iphone.h" +#include "drivers/gles2/rasterizer_gles2.h" #include "drivers/gles3/rasterizer_gles3.h" #include "servers/visual/visual_server_raster.h" #include "servers/visual/visual_server_wrap_mt.h" @@ -51,12 +52,19 @@ int OSIPhone::get_video_driver_count() const { - return 1; + return 2; }; const char *OSIPhone::get_video_driver_name(int p_driver) const { - return "GLES3"; + switch (p_driver) { + case VIDEO_DRIVER_GLES3: + return "GLES3"; + case VIDEO_DRIVER_GLES2: + return "GLES2"; + } + ERR_EXPLAIN("Invalid video driver index " + itos(p_driver)); + ERR_FAIL_V(NULL); }; OSIPhone *OSIPhone::get_singleton() { @@ -97,16 +105,48 @@ int OSIPhone::get_current_video_driver() const { return video_driver_index; } +extern bool gles3_available; // from gl_view.mm + Error OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) { - video_driver_index = VIDEO_DRIVER_GLES3; + bool use_gl3 = GLOBAL_GET("rendering/quality/driver/driver_name") == "GLES3"; + bool gl_initialization_error = false; + + while (true) { + if (use_gl3) { + if (RasterizerGLES3::is_viable() == OK && gles3_available) { + RasterizerGLES3::register_config(); + RasterizerGLES3::make_current(); + break; + } else { + if (GLOBAL_GET("rendering/quality/driver/driver_fallback") == "Best") { + p_video_driver = VIDEO_DRIVER_GLES2; + use_gl3 = false; + continue; + } else { + gl_initialization_error = true; + break; + } + } + } else { + if (RasterizerGLES2::is_viable() == OK) { + RasterizerGLES2::register_config(); + RasterizerGLES2::make_current(); + break; + } else { + gl_initialization_error = true; + break; + } + } + } - if (RasterizerGLES3::is_viable() != OK) { + if (gl_initialization_error) { + OS::get_singleton()->alert("Your device does not support any of the supported OpenGL versions.", + "Unable to initialize Video driver"); return ERR_UNAVAILABLE; } - RasterizerGLES3::register_config(); - RasterizerGLES3::make_current(); + video_driver_index = p_video_driver; visual_server = memnew(VisualServerRaster); // FIXME: Reimplement threaded rendering if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { @@ -117,7 +157,10 @@ Error OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p //visual_server->cursor_set_visible(false, 0); // reset this to what it should be, it will have been set to 0 after visual_server->init() is called - RasterizerStorageGLES3::system_fbo = gl_view_base_fb; + if (use_gl3) + RasterizerStorageGLES3::system_fbo = gl_view_base_fb; + else + RasterizerStorageGLES2::system_fbo = gl_view_base_fb; AudioDriverManager::initialize(p_audio_driver); diff --git a/platform/javascript/audio_driver_javascript.cpp b/platform/javascript/audio_driver_javascript.cpp index 7a6613bb32..a5b627b8dc 100644 --- a/platform/javascript/audio_driver_javascript.cpp +++ b/platform/javascript/audio_driver_javascript.cpp @@ -44,6 +44,11 @@ extern "C" EMSCRIPTEN_KEEPALIVE void audio_driver_js_mix() { AudioDriverJavaScript::singleton->mix_to_js(); } +extern "C" EMSCRIPTEN_KEEPALIVE void audio_driver_process_capture(float sample) { + + AudioDriverJavaScript::singleton->process_capture(sample); +} + void AudioDriverJavaScript::mix_to_js() { int channel_count = get_total_channels_by_speaker_mode(get_speaker_mode()); @@ -51,31 +56,39 @@ void AudioDriverJavaScript::mix_to_js() { int32_t *stream_buffer = reinterpret_cast<int32_t *>(internal_buffer); audio_server_process(sample_count, stream_buffer); for (int i = 0; i < sample_count * channel_count; i++) { - internal_buffer[i] = float(stream_buffer[i] >> 16) / 32768.0; + internal_buffer[i] = float(stream_buffer[i] >> 16) / 32768.f; } } +void AudioDriverJavaScript::process_capture(float sample) { + + int32_t sample32 = int32_t(sample * 32768.f) * (1U << 16); + input_buffer_write(sample32); +} + Error AudioDriverJavaScript::init() { /* clang-format off */ EM_ASM({ _audioDriver_audioContext = new (window.AudioContext || window.webkitAudioContext); + _audioDriver_audioInput = null; + _audioDriver_inputStream = null; _audioDriver_scriptNode = null; }); /* clang-format on */ int channel_count = get_total_channels_by_speaker_mode(get_speaker_mode()); /* clang-format off */ - int buffer_length = EM_ASM_INT({ + buffer_length = EM_ASM_INT({ var CHANNEL_COUNT = $0; var channelCount = _audioDriver_audioContext.destination.channelCount; try { // Try letting the browser recommend a buffer length. - _audioDriver_scriptNode = _audioDriver_audioContext.createScriptProcessor(0, 0, channelCount); + _audioDriver_scriptNode = _audioDriver_audioContext.createScriptProcessor(0, 2, channelCount); } catch (e) { // ...otherwise, default to 4096. - _audioDriver_scriptNode = _audioDriver_audioContext.createScriptProcessor(4096, 0, channelCount); + _audioDriver_scriptNode = _audioDriver_audioContext.createScriptProcessor(4096, 2, channelCount); } _audioDriver_scriptNode.connect(_audioDriver_audioContext.destination); @@ -91,6 +104,7 @@ Error AudioDriverJavaScript::init() { memdelete_arr(internal_buffer); internal_buffer = memnew_arr(float, buffer_length *channel_count); } + return internal_buffer ? OK : ERR_OUT_OF_MEMORY; } @@ -101,11 +115,13 @@ void AudioDriverJavaScript::start() { var INTERNAL_BUFFER_PTR = $0; var audioDriverMixFunction = cwrap('audio_driver_js_mix'); + var audioDriverProcessCapture = cwrap('audio_driver_process_capture', null, ['number']); _audioDriver_scriptNode.onaudioprocess = function(audioProcessingEvent) { audioDriverMixFunction(); - // The output buffer contains the samples that will be modified and played. + + var input = audioProcessingEvent.inputBuffer; var output = audioProcessingEvent.outputBuffer; - var input = HEAPF32.subarray( + var internalBuffer = HEAPF32.subarray( INTERNAL_BUFFER_PTR / HEAPF32.BYTES_PER_ELEMENT, INTERNAL_BUFFER_PTR / HEAPF32.BYTES_PER_ELEMENT + output.length * output.numberOfChannels); @@ -113,8 +129,16 @@ void AudioDriverJavaScript::start() { var outputData = output.getChannelData(channel); // Loop through samples. for (var sample = 0; sample < outputData.length; sample++) { - // Set output equal to input. - outputData[sample] = input[sample * output.numberOfChannels + channel]; + outputData[sample] = internalBuffer[sample * output.numberOfChannels + channel]; + } + } + + if (_audioDriver_audioInput) { + var inputDataL = input.getChannelData(0); + var inputDataR = input.getChannelData(1); + for (var i = 0; i < inputDataL.length; i++) { + audioDriverProcessCapture(inputDataL[i]); + audioDriverProcessCapture(inputDataR[i]); } } }; @@ -152,14 +176,74 @@ void AudioDriverJavaScript::finish() { /* clang-format off */ EM_ASM({ _audioDriver_audioContext = null; + _audioDriver_audioInput = null; _audioDriver_scriptNode = null; }); /* clang-format on */ - memdelete_arr(internal_buffer); - internal_buffer = NULL; + + if (internal_buffer) { + memdelete_arr(internal_buffer); + internal_buffer = NULL; + } +} + +Error AudioDriverJavaScript::capture_start() { + + input_buffer_init(buffer_length); + + /* clang-format off */ + EM_ASM({ + function gotMediaInput(stream) { + _audioDriver_inputStream = stream; + _audioDriver_audioInput = _audioDriver_audioContext.createMediaStreamSource(stream); + _audioDriver_audioInput.connect(_audioDriver_scriptNode); + } + + function gotMediaInputError(e) { + console.log(e); + } + + if (navigator.mediaDevices.getUserMedia) { + navigator.mediaDevices.getUserMedia({"audio": true}).then(gotMediaInput, gotMediaInputError); + } else { + if (!navigator.getUserMedia) + navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia; + navigator.getUserMedia({"audio": true}, gotMediaInput, gotMediaInputError); + } + }); + /* clang-format on */ + + return OK; +} + +Error AudioDriverJavaScript::capture_stop() { + + /* clang-format off */ + EM_ASM({ + if (_audioDriver_inputStream) { + const tracks = _audioDriver_inputStream.getTracks(); + for (var i = 0; i < tracks.length; i++) { + tracks[i].stop(); + } + _audioDriver_inputStream = null; + } + + if (_audioDriver_audioInput) { + _audioDriver_audioInput.disconnect(); + _audioDriver_audioInput = null; + } + + }); + /* clang-format on */ + + input_buffer.clear(); + + return OK; } AudioDriverJavaScript::AudioDriverJavaScript() { + internal_buffer = NULL; + singleton = this; } diff --git a/platform/javascript/audio_driver_javascript.h b/platform/javascript/audio_driver_javascript.h index a65a8ec29f..c8aeb0b446 100644 --- a/platform/javascript/audio_driver_javascript.h +++ b/platform/javascript/audio_driver_javascript.h @@ -37,8 +37,12 @@ class AudioDriverJavaScript : public AudioDriver { float *internal_buffer; + int buffer_length; + public: void mix_to_js(); + void process_capture(float sample); + static AudioDriverJavaScript *singleton; virtual const char *get_name() const; @@ -51,6 +55,9 @@ public: virtual void unlock(); virtual void finish(); + virtual Error capture_start(); + virtual Error capture_stop(); + AudioDriverJavaScript(); }; diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index cf85c3df7f..22b5f1f87a 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -122,6 +122,7 @@ def configure(env): ## Link flags env.Append(LINKFLAGS=['-s', 'BINARYEN=1']) + env.Append(LINKFLAGS=['-s', 'BINARYEN_TRAP_MODE=\'clamp\'']) # Allow increasing memory buffer size during runtime. This is efficient # when using WebAssembly (in comparison to asm.js) and works well for diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp index f27c042637..12a0193521 100644 --- a/platform/osx/export/export.cpp +++ b/platform/osx/export/export.cpp @@ -139,10 +139,76 @@ void EditorExportPlatformOSX::get_export_options(List<ExportOption> *r_options) r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/etc2"), false)); } +void _rgba8_to_packbits_encode(int p_ch, int p_size, PoolVector<uint8_t> &p_source, Vector<uint8_t> &p_dest) { + + int src_len = p_size * p_size; + + Vector<uint8_t> result; + result.resize(src_len * 1.25); //temp vector for rle encoded data, make it 25% larger for worst case scenario + int res_size = 0; + + uint8_t buf[128]; + int buf_size = 0; + + int i = 0; + while (i < src_len) { + uint8_t cur = p_source.read()[i * 4 + p_ch]; + + if (i < src_len - 2) { + + if ((p_source.read()[(i + 1) * 4 + p_ch] == cur) && (p_source.read()[(i + 2) * 4 + p_ch] == cur)) { + if (buf_size > 0) { + result.write[res_size++] = (uint8_t)(buf_size - 1); + copymem(&result.write[res_size], &buf, buf_size); + res_size += buf_size; + buf_size = 0; + } + + uint8_t lim = i + 130 >= src_len ? src_len - i - 1 : 130; + bool hit_lim = true; + + for (int j = 3; j <= lim; j++) { + if (p_source.read()[(i + j) * 4 + p_ch] != cur) { + hit_lim = false; + i = i + j - 1; + result.write[res_size++] = (uint8_t)(j - 3 + 0x80); + result.write[res_size++] = cur; + break; + } + } + if (hit_lim) { + result.write[res_size++] = (uint8_t)(lim - 3 + 0x80); + result.write[res_size++] = cur; + i = i + lim; + } + } else { + buf[buf_size++] = cur; + if (buf_size == 128) { + result.write[res_size++] = (uint8_t)(buf_size - 1); + copymem(&result.write[res_size], &buf, buf_size); + res_size += buf_size; + buf_size = 0; + } + } + } else { + buf[buf_size++] = cur; + result.write[res_size++] = (uint8_t)(buf_size - 1); + copymem(&result.write[res_size], &buf, buf_size); + res_size += buf_size; + buf_size = 0; + } + + i++; + } + + int ofs = p_dest.size(); + p_dest.resize(p_dest.size() + res_size); + copymem(&p_dest.write[ofs], result.ptr(), res_size); +} + void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_t> &p_data) { Ref<ImageTexture> it = memnew(ImageTexture); - int size = 512; Vector<uint8_t> data; @@ -152,32 +218,82 @@ void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_ data.write[2] = 'n'; data.write[3] = 's'; - const char *name[] = { "ic09", "ic08", "ic07", "icp6", "icp5", "icp4" }; - int index = 0; - - while (size >= 16) { - + struct MacOSIconInfo { + const char *name; + const char *mask_name; + bool is_png; + int size; + }; + + static const MacOSIconInfo icon_infos[] = { + { "ic10", "", true, 1024 }, //1024x1024 32-bit PNG and 512x512@2x 32-bit "retina" PNG + { "ic09", "", true, 512 }, //512×512 32-bit PNG + { "ic14", "", true, 512 }, //256x256@2x 32-bit "retina" PNG + { "ic08", "", true, 256 }, //256×256 32-bit PNG + { "ic13", "", true, 256 }, //128x128@2x 32-bit "retina" PNG + { "ic07", "", true, 128 }, //128x128 32-bit PNG + { "ic12", "", true, 64 }, //32x32@2x 32-bit "retina" PNG + { "ic11", "", true, 32 }, //16x16@2x 32-bit "retina" PNG + { "il32", "l8mk", false, 32 }, //32x32 24-bit RLE + 8-bit uncompressed mask + { "is32", "s8mk", false, 16 } //16x16 24-bit RLE + 8-bit uncompressed mask + }; + + for (unsigned int i = 0; i < (sizeof(icon_infos) / sizeof(icon_infos[0])); ++i) { Ref<Image> copy = p_icon; // does this make sense? doesn't this just increase the reference count instead of making a copy? Do we even need a copy? copy->convert(Image::FORMAT_RGBA8); - copy->resize(size, size); - it->create_from_image(copy); - String path = EditorSettings::get_singleton()->get_cache_dir().plus_file("icon.png"); - ResourceSaver::save(path, it); - - FileAccess *f = FileAccess::open(path, FileAccess::READ); - ERR_FAIL_COND(!f); - - int ofs = data.size(); - uint32_t len = f->get_len(); - data.resize(data.size() + len + 8); - f->get_buffer(&data.write[ofs + 8], len); - memdelete(f); - len += 8; - len = BSWAP32(len); - copymem(&data.write[ofs], name[index], 4); - encode_uint32(len, &data.write[ofs + 4]); - index++; - size /= 2; + copy->resize(icon_infos[i].size, icon_infos[i].size); + + if (icon_infos[i].is_png) { + //encode png icon + it->create_from_image(copy); + String path = EditorSettings::get_singleton()->get_cache_dir().plus_file("icon.png"); + ResourceSaver::save(path, it); + + FileAccess *f = FileAccess::open(path, FileAccess::READ); + ERR_FAIL_COND(!f); + + int ofs = data.size(); + uint32_t len = f->get_len(); + data.resize(data.size() + len + 8); + f->get_buffer(&data.write[ofs + 8], len); + memdelete(f); + len += 8; + len = BSWAP32(len); + copymem(&data.write[ofs], icon_infos[i].name, 4); + encode_uint32(len, &data.write[ofs + 4]); + } else { + PoolVector<uint8_t> src_data = copy->get_data(); + + //encode 24bit RGB RLE icon + { + int ofs = data.size(); + data.resize(data.size() + 8); + + _rgba8_to_packbits_encode(0, icon_infos[i].size, src_data, data); // encode R + _rgba8_to_packbits_encode(1, icon_infos[i].size, src_data, data); // encode G + _rgba8_to_packbits_encode(2, icon_infos[i].size, src_data, data); // encode B + + int len = data.size() - ofs; + len = BSWAP32(len); + copymem(&data.write[ofs], icon_infos[i].name, 4); + encode_uint32(len, &data.write[ofs + 4]); + } + + //encode 8bit mask uncompressed icon + { + int ofs = data.size(); + int len = copy->get_width() * copy->get_height(); + data.resize(data.size() + len + 8); + + for (int j = 0; j < len; j++) { + data.write[ofs + 8 + j] = src_data.read()[j * 4 + 3]; + } + len += 8; + len = BSWAP32(len); + copymem(&data.write[ofs], icon_infos[i].mask_name, 4); + encode_uint32(len, &data.write[ofs + 4]); + } + } } uint32_t total_len = data.size(); diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h index 546c88e74a..ae2eb6288c 100644 --- a/platform/osx/os_osx.h +++ b/platform/osx/os_osx.h @@ -124,8 +124,8 @@ public: Point2 im_position; bool im_active; - ImeCallback im_callback; - void *im_target; + String im_text; + Point2 im_selection; power_osx *power_manager; @@ -245,7 +245,8 @@ public: virtual void set_ime_active(const bool p_active); virtual void set_ime_position(const Point2 &p_pos); - virtual void set_ime_intermediate_text_callback(ImeCallback p_callback, void *p_inp); + virtual Point2 get_ime_selection() const; + virtual String get_ime_text() const; virtual String get_unique_id() const; diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index e7b3e35381..f8dec3ec7a 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -427,11 +427,13 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; } else { [markedText initWithString:aString]; } - if (OS_OSX::singleton->im_callback) { + if (OS_OSX::singleton->im_active) { imeMode = true; - String ret; - ret.parse_utf8([[markedText mutableString] UTF8String]); - OS_OSX::singleton->im_callback(OS_OSX::singleton->im_target, ret, Point2(selectedRange.location, selectedRange.length)); + OS_OSX::singleton->im_text.parse_utf8([[markedText mutableString] UTF8String]); + OS_OSX::singleton->im_selection = Point2(selectedRange.location, selectedRange.length); + + if (OS_OSX::singleton->get_main_loop()) + OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_OS_IME_UPDATE); } } @@ -443,8 +445,13 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; - (void)unmarkText { imeMode = false; [[markedText mutableString] setString:@""]; - if (OS_OSX::singleton->im_callback) - OS_OSX::singleton->im_callback(OS_OSX::singleton->im_target, "", Point2()); + if (OS_OSX::singleton->im_active) { + OS_OSX::singleton->im_text = String(); + OS_OSX::singleton->im_selection = Point2(); + + if (OS_OSX::singleton->get_main_loop()) + OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_OS_IME_UPDATE); + } } - (NSArray *)validAttributesForMarkedText { @@ -1136,12 +1143,14 @@ inline void sendPanEvent(double dx, double dy, int modifierFlags) { @end -void OS_OSX::set_ime_intermediate_text_callback(ImeCallback p_callback, void *p_inp) { - im_callback = p_callback; - im_target = p_inp; - if (!im_callback) { - [window_view cancelComposition]; - } +Point2 OS_OSX::get_ime_selection() const { + + return im_selection; +} + +String OS_OSX::get_ime_text() const { + + return im_text; } String OS_OSX::get_unique_id() const { @@ -1169,10 +1178,14 @@ String OS_OSX::get_unique_id() const { } void OS_OSX::set_ime_active(const bool p_active) { + im_active = p_active; + if (!im_active) + [window_view cancelComposition]; } void OS_OSX::set_ime_position(const Point2 &p_pos) { + im_position = p_pos; } @@ -2637,8 +2650,6 @@ OS_OSX::OS_OSX() { singleton = this; im_active = false; im_position = Point2(); - im_callback = NULL; - im_target = NULL; layered_window = false; autoreleasePool = [[NSAutoreleasePool alloc] init]; diff --git a/platform/uwp/export/export.cpp b/platform/uwp/export/export.cpp index 41e59a5352..c0ea13e7fb 100644 --- a/platform/uwp/export/export.cpp +++ b/platform/uwp/export/export.cpp @@ -1134,7 +1134,7 @@ public: } break; } - if (!exists_export_template("uwp_" + platform_infix + "_debug.zip", &err) || !exists_export_template("uwp_" + platform_infix + "_debug.zip", &err)) { + if (!exists_export_template("uwp_" + platform_infix + "_debug.zip", &err) || !exists_export_template("uwp_" + platform_infix + "_release.zip", &err)) { valid = false; r_missing_templates = true; } diff --git a/platform/windows/detect.py b/platform/windows/detect.py index dd0042668f..e14db9a201 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -147,9 +147,9 @@ def setup_msvc_auto(env): # Note: actual compiler version can be found in env['MSVC_VERSION'], e.g. "14.1" for VS2015 # Get actual target arch into bits (it may be "default" at this point): if env['TARGET_ARCH'] in ('amd64', 'x86_64'): - env['bits'] = 64 + env['bits'] = '64' else: - env['bits'] = 32 + env['bits'] = '32' print(" Found MSVC version %s, arch %s, bits=%s" % (env['MSVC_VERSION'], env['TARGET_ARCH'], env['bits'])) if env['TARGET_ARCH'] in ('amd64', 'x86_64'): env["x86_libtheora_opt_vc"] = False diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index bdf459fd83..55d2bb2153 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -727,16 +727,28 @@ LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } } break; + case WM_MOVE: { + if (!IsIconic(hWnd)) { + int x = LOWORD(lParam); + int y = HIWORD(lParam); + last_pos = Point2(x, y); + } + } break; + case WM_SIZE: { - int window_w = LOWORD(lParam); - int window_h = HIWORD(lParam); - if (window_w > 0 && window_h > 0 && !preserve_window_size) { - video_mode.width = window_w; - video_mode.height = window_h; - } else { - preserve_window_size = false; - set_window_size(Size2(video_mode.width, video_mode.height)); + // Ignore size when a SIZE_MINIMIZED event is triggered + if (wParam != SIZE_MINIMIZED) { + int window_w = LOWORD(lParam); + int window_h = HIWORD(lParam); + if (window_w > 0 && window_h > 0 && !preserve_window_size) { + video_mode.width = window_w; + video_mode.height = window_h; + } else { + preserve_window_size = false; + set_window_size(Size2(video_mode.width, video_mode.height)); + } } + if (wParam == SIZE_MAXIMIZED) { maximized = true; minimized = false; @@ -1685,6 +1697,10 @@ int OS_Windows::get_screen_dpi(int p_screen) const { Point2 OS_Windows::get_window_position() const { + if (minimized) { + return last_pos; + } + RECT r; GetWindowRect(hWnd, &r); return Point2(r.left, r.top); @@ -1705,9 +1721,15 @@ void OS_Windows::set_window_position(const Point2 &p_position) { ClientToScreen(hWnd, (POINT *)&rect.right); ClipCursor(&rect); } + + last_pos = p_position; } Size2 OS_Windows::get_window_size() const { + if (minimized) { + return Size2(video_mode.width, video_mode.height); + } + RECT r; if (GetClientRect(hWnd, &r)) { // Only area inside of window border return Size2(r.right - r.left, r.bottom - r.top); diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 6aadd6994c..d09ade4daa 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -93,6 +93,7 @@ class OS_Windows : public OS { HDC hDC; // Private GDI Device Context HINSTANCE hInstance; // Holds The Instance Of The Application HWND hWnd; + Point2 last_pos; HBITMAP hBitmap; //DIB section for layered window uint8_t *dib_data; diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 04854e93b6..0c02e47b5e 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -2853,11 +2853,19 @@ void OS_X11::set_context(int p_context) { XClassHint *classHint = XAllocClassHint(); if (classHint) { + char *wm_class = (char *)"Godot"; if (p_context == CONTEXT_EDITOR) classHint->res_name = (char *)"Godot_Editor"; if (p_context == CONTEXT_PROJECTMAN) classHint->res_name = (char *)"Godot_ProjectList"; - classHint->res_class = (char *)"Godot"; + + if (p_context == CONTEXT_ENGINE) { + classHint->res_name = (char *)"Godot_Engine"; + wm_class = (char *)((String)GLOBAL_GET("application/config/name")).utf8().ptrw(); + } + + classHint->res_class = wm_class; + XSetClassHint(x11_display, x11_window, classHint); XFree(classHint); } diff --git a/scene/2d/area_2d.cpp b/scene/2d/area_2d.cpp index ae5891fa50..4a4aaf3238 100644 --- a/scene/2d/area_2d.cpp +++ b/scene/2d/area_2d.cpp @@ -158,7 +158,9 @@ void Area2D::_body_inout(int p_status, const RID &p_body, int p_instance, int p_ Map<ObjectID, BodyState>::Element *E = body_map.find(objid); - ERR_FAIL_COND(!body_in && !E); + if (!body_in && !E) { + return; //does not exist because it was likely removed from the tree + } locked = true; diff --git a/scene/2d/canvas_item.cpp b/scene/2d/canvas_item.cpp index 0ea2e85dfa..2534f676ca 100644 --- a/scene/2d/canvas_item.cpp +++ b/scene/2d/canvas_item.cpp @@ -42,7 +42,7 @@ #include "servers/visual_server.h" Mutex *CanvasItemMaterial::material_mutex = NULL; -SelfList<CanvasItemMaterial>::List CanvasItemMaterial::dirty_materials; +SelfList<CanvasItemMaterial>::List *CanvasItemMaterial::dirty_materials = NULL; Map<CanvasItemMaterial::MaterialKey, CanvasItemMaterial::ShaderData> CanvasItemMaterial::shader_map; CanvasItemMaterial::ShaderNames *CanvasItemMaterial::shader_names = NULL; @@ -52,6 +52,8 @@ void CanvasItemMaterial::init_shaders() { material_mutex = Mutex::create(); #endif + dirty_materials = memnew(SelfList<CanvasItemMaterial>::List); + shader_names = memnew(ShaderNames); shader_names->particles_anim_h_frames = "particles_anim_h_frames"; @@ -61,6 +63,9 @@ void CanvasItemMaterial::init_shaders() { void CanvasItemMaterial::finish_shaders() { + memdelete(dirty_materials); + dirty_materials = NULL; + #ifndef NO_THREADS memdelete(material_mutex); #endif @@ -68,7 +73,7 @@ void CanvasItemMaterial::finish_shaders() { void CanvasItemMaterial::_update_shader() { - dirty_materials.remove(&element); + dirty_materials->remove(&element); MaterialKey mk = _compute_key(); if (mk.key == current_key.key) @@ -157,9 +162,9 @@ void CanvasItemMaterial::flush_changes() { if (material_mutex) material_mutex->lock(); - while (dirty_materials.first()) { + while (dirty_materials->first()) { - dirty_materials.first()->self()->_update_shader(); + dirty_materials->first()->self()->_update_shader(); } if (material_mutex) @@ -172,7 +177,7 @@ void CanvasItemMaterial::_queue_shader_change() { material_mutex->lock(); if (!element.in_list()) { - dirty_materials.add(&element); + dirty_materials->add(&element); } if (material_mutex) @@ -1160,7 +1165,7 @@ void CanvasItem::_bind_methods() { ClassDB::bind_method(D_METHOD("draw_string", "font", "position", "text", "modulate", "clip_w"), &CanvasItem::draw_string, DEFVAL(Color(1, 1, 1)), DEFVAL(-1)); ClassDB::bind_method(D_METHOD("draw_char", "font", "position", "char", "next", "modulate"), &CanvasItem::draw_char, DEFVAL(Color(1, 1, 1))); ClassDB::bind_method(D_METHOD("draw_mesh", "mesh", "texture", "normal_map"), &CanvasItem::draw_mesh, DEFVAL(Ref<Texture>())); - ClassDB::bind_method(D_METHOD("draw_multimesh", "mesh", "texture", "normal_map"), &CanvasItem::draw_mesh, DEFVAL(Ref<Texture>())); + ClassDB::bind_method(D_METHOD("draw_multimesh", "multimesh", "texture", "normal_map"), &CanvasItem::draw_multimesh, DEFVAL(Ref<Texture>())); ClassDB::bind_method(D_METHOD("draw_set_transform", "position", "rotation", "scale"), &CanvasItem::draw_set_transform); ClassDB::bind_method(D_METHOD("draw_set_transform_matrix", "xform"), &CanvasItem::draw_set_transform_matrix); diff --git a/scene/2d/canvas_item.h b/scene/2d/canvas_item.h index 9fe7cb1e00..1a6016e6e1 100644 --- a/scene/2d/canvas_item.h +++ b/scene/2d/canvas_item.h @@ -109,7 +109,7 @@ private: } static Mutex *material_mutex; - static SelfList<CanvasItemMaterial>::List dirty_materials; + static SelfList<CanvasItemMaterial>::List *dirty_materials; SelfList<CanvasItemMaterial> element; void _update_shader(); diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index 613387bf07..93ad99272c 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -1305,9 +1305,9 @@ void CPUParticles2D::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angle_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_ANGLE); ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "angle_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_ANGLE); ADD_GROUP("Scale", ""); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale", PROPERTY_HINT_RANGE, "0,1000,0.01,or_greater"), "set_param", "get_param", PARAM_SCALE); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_SCALE); - ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "scale_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_SCALE); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale_amount", PROPERTY_HINT_RANGE, "0,1000,0.01,or_greater"), "set_param", "get_param", PARAM_SCALE); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale_amount_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_SCALE); + ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "scale_amount_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_SCALE); ADD_GROUP("Color", ""); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "color_ramp", PROPERTY_HINT_RESOURCE_TYPE, "Gradient"), "set_color_ramp", "get_color_ramp"); diff --git a/scene/2d/navigation_polygon.cpp b/scene/2d/navigation_polygon.cpp index b36924e521..9154929e0b 100644 --- a/scene/2d/navigation_polygon.cpp +++ b/scene/2d/navigation_polygon.cpp @@ -349,8 +349,6 @@ void NavigationPolygonInstance::set_enabled(bool p_enabled) { if (Engine::get_singleton()->is_editor_hint() || get_tree()->is_debugging_navigation_hint()) update(); - - //update_gizmo(); } bool NavigationPolygonInstance::is_enabled() const { @@ -461,26 +459,28 @@ void NavigationPolygonInstance::_notification(int p_what) { void NavigationPolygonInstance::set_navigation_polygon(const Ref<NavigationPolygon> &p_navpoly) { - if (p_navpoly == navpoly) + if (p_navpoly == navpoly) { return; + } if (navigation && nav_id != -1) { navigation->navpoly_remove(nav_id); nav_id = -1; } + if (navpoly.is_valid()) { navpoly->disconnect(CoreStringNames::get_singleton()->changed, this, "_navpoly_changed"); } navpoly = p_navpoly; - if (navpoly.is_valid()) { navpoly->connect(CoreStringNames::get_singleton()->changed, this, "_navpoly_changed"); } + _navpoly_changed(); if (navigation && navpoly.is_valid() && enabled) { nav_id = navigation->navpoly_add(navpoly, get_relative_transform_to_parent(navigation), this); } - //update_gizmo(); + _change_notify("navpoly"); update_configuration_warning(); } diff --git a/scene/2d/parallax_background.cpp b/scene/2d/parallax_background.cpp index 027d64b813..59cb16fe91 100644 --- a/scene/2d/parallax_background.cpp +++ b/scene/2d/parallax_background.cpp @@ -206,7 +206,9 @@ void ParallaxBackground::_bind_methods() { ParallaxBackground::ParallaxBackground() { - base_scale = Vector2(1, 1); scale = 1.0; set_layer(-1); //behind all by default + + base_scale = Vector2(1, 1); + ignore_camera_zoom = false; } diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp index 4276918f53..5eae43b2d5 100644 --- a/scene/2d/path_2d.cpp +++ b/scene/2d/path_2d.cpp @@ -303,7 +303,7 @@ void PathFollow2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_lookahead", "lookahead"), &PathFollow2D::set_lookahead); ClassDB::bind_method(D_METHOD("get_lookahead"), &PathFollow2D::get_lookahead); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_EXP_RANGE, "0,10000,0.01,or_greater"), "set_offset", "get_offset"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_greater"), "set_offset", "get_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "h_offset"), "set_h_offset", "get_h_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "v_offset"), "set_v_offset", "get_v_offset"); diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 8fe65f53a9..641cb161ca 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -327,6 +327,10 @@ void TileMap::update_dirty_quadrants() { Ref<ShaderMaterial> mat = tile_set->tile_get_material(c.id); int z_index = tile_set->tile_get_z_index(c.id); + if (tile_set->tile_get_tile_mode(c.id) == TileSet::AUTO_TILE) { + z_index += tile_set->autotile_get_z_index(c.id, Vector2(c.autotile_coord_x, c.autotile_coord_y)); + } + RID canvas_item; RID debug_canvas_item; diff --git a/scene/3d/area.cpp b/scene/3d/area.cpp index 5e78368804..ac77ddb7ce 100644 --- a/scene/3d/area.cpp +++ b/scene/3d/area.cpp @@ -157,7 +157,9 @@ void Area::_body_inout(int p_status, const RID &p_body, int p_instance, int p_bo Map<ObjectID, BodyState>::Element *E = body_map.find(objid); - ERR_FAIL_COND(!body_in && !E); + if (!body_in && !E) { + return; //likely removed from the tree + } locked = true; diff --git a/scene/3d/cpu_particles.cpp b/scene/3d/cpu_particles.cpp index 8b4d201083..b07848e02e 100644 --- a/scene/3d/cpu_particles.cpp +++ b/scene/3d/cpu_particles.cpp @@ -217,7 +217,7 @@ String CPUParticles::get_configuration_warning() const { if (!mesh_found) { if (warnings != String()) warnings += "\n"; - warnings += "- " + TTR("Nothing is visible because no mesh has not been assigned."); + warnings += "- " + TTR("Nothing is visible because no mesh has been assigned."); } if (!anim_material_found && (get_param(PARAM_ANIM_SPEED) != 0.0 || get_param(PARAM_ANIM_OFFSET) != 0.0 || @@ -523,7 +523,7 @@ void CPUParticles::_particles_process(float p_delta) { Basis velocity_xform; if (!local_coords) { emission_xform = get_global_transform(); - velocity_xform = emission_xform.basis.inverse().transposed(); + velocity_xform = emission_xform.basis; } for (int i = 0; i < pcount; i++) { @@ -691,7 +691,7 @@ void CPUParticles::_particles_process(float p_delta) { if (flags[FLAG_DISABLE_Z]) { p.velocity.z = 0.0; - p.velocity.z = 0.0; + p.transform.origin.z = 0.0; } } else if (!p.active) { @@ -757,15 +757,15 @@ void CPUParticles::_particles_process(float p_delta) { } Vector3 force = gravity; - Vector3 pos = p.transform.origin; + Vector3 position = p.transform.origin; if (flags[FLAG_DISABLE_Z]) { - pos.z = 0.0; + position.z = 0.0; } //apply linear acceleration force += p.velocity.length() > 0.0 ? p.velocity.normalized() * (parameters[PARAM_LINEAR_ACCEL] + tex_linear_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_LINEAR_ACCEL]) : Vector3(); //apply radial acceleration Vector3 org = emission_xform.origin; - Vector3 diff = pos - org; + Vector3 diff = position - org; force += diff.length() > 0.0 ? diff.normalized() * (parameters[PARAM_RADIAL_ACCEL] + tex_radial_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_RADIAL_ACCEL]) : Vector3(); //apply tangential acceleration; if (flags[FLAG_DISABLE_Z]) { @@ -1361,9 +1361,9 @@ void CPUParticles::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angle_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_ANGLE); ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "angle_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_ANGLE); ADD_GROUP("Scale", ""); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale", PROPERTY_HINT_RANGE, "0,1000,0.01,or_greater"), "set_param", "get_param", PARAM_SCALE); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_SCALE); - ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "scale_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_SCALE); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale_amount", PROPERTY_HINT_RANGE, "0,1000,0.01,or_greater"), "set_param", "get_param", PARAM_SCALE); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "scale_amount_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_SCALE); + ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "scale_amount_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_SCALE); ADD_GROUP("Color", ""); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "color_ramp", PROPERTY_HINT_RESOURCE_TYPE, "Gradient"), "set_color_ramp", "get_color_ramp"); diff --git a/scene/3d/listener.h b/scene/3d/listener.h index 8047971ebd..9901f7635c 100644 --- a/scene/3d/listener.h +++ b/scene/3d/listener.h @@ -71,8 +71,6 @@ public: void set_visible_layers(uint32_t p_layers); uint32_t get_visible_layers() const; - Vector<Plane> get_frustum() const; - Listener(); ~Listener(); }; diff --git a/scene/3d/path.cpp b/scene/3d/path.cpp index 339a434a6e..b732c3b8b7 100644 --- a/scene/3d/path.cpp +++ b/scene/3d/path.cpp @@ -252,7 +252,7 @@ void PathFollow::_bind_methods() { ClassDB::bind_method(D_METHOD("set_loop", "loop"), &PathFollow::set_loop); ClassDB::bind_method(D_METHOD("has_loop"), &PathFollow::has_loop); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_EXP_RANGE, "0,10000,0.01,or_greater"), "set_offset", "get_offset"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_greater"), "set_offset", "get_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "h_offset"), "set_h_offset", "get_h_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "v_offset"), "set_v_offset", "get_v_offset"); @@ -476,7 +476,7 @@ String OrientedPathFollow::get_configuration_warning() const { } else { Path *path = Object::cast_to<Path>(get_parent()); if (path->get_curve().is_valid() && !path->get_curve()->is_up_vector_enabled()) { - return TTR("OrientedPathFollow requires up vectors enabled in its parent Path."); + return TTR("OrientedPathFollow requires \"Up Vector\" enabled in its parent Path's Curve resource."); } } diff --git a/scene/3d/physics_joint.cpp b/scene/3d/physics_joint.cpp index 02c6b1d969..8fd86c940c 100644 --- a/scene/3d/physics_joint.cpp +++ b/scene/3d/physics_joint.cpp @@ -707,6 +707,9 @@ void Generic6DOFJoint::_bind_methods() { ClassDB::bind_method(D_METHOD("set_flag_z", "flag", "value"), &Generic6DOFJoint::set_flag_z); ClassDB::bind_method(D_METHOD("get_flag_z", "flag"), &Generic6DOFJoint::get_flag_z); + ClassDB::bind_method(D_METHOD("set_precision", "precision"), &Generic6DOFJoint::set_precision); + ClassDB::bind_method(D_METHOD("get_precision"), &Generic6DOFJoint::get_precision); + ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "linear_limit_x/enabled"), "set_flag_x", "get_flag_x", FLAG_ENABLE_LINEAR_LIMIT); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "linear_limit_x/upper_distance"), "set_param_x", "get_param_x", PARAM_LINEAR_UPPER_LIMIT); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "linear_limit_x/lower_distance"), "set_param_x", "get_param_x", PARAM_LINEAR_LOWER_LIMIT); @@ -795,6 +798,8 @@ void Generic6DOFJoint::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_spring_z/damping"), "set_param_z", "get_param_z", PARAM_ANGULAR_SPRING_DAMPING); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_spring_z/equilibrium_point"), "set_param_z", "get_param_z", PARAM_ANGULAR_SPRING_EQUILIBRIUM_POINT); + ADD_PROPERTY(PropertyInfo(Variant::INT, "precision", PROPERTY_HINT_RANGE, "1,99999,1"), "set_precision", "get_precision"); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LOWER_LIMIT); BIND_ENUM_CONSTANT(PARAM_LINEAR_UPPER_LIMIT); BIND_ENUM_CONSTANT(PARAM_LINEAR_LIMIT_SOFTNESS); @@ -907,6 +912,14 @@ bool Generic6DOFJoint::get_flag_z(Flag p_flag) const { return flags_z[p_flag]; } +void Generic6DOFJoint::set_precision(int p_precision) { + precision = p_precision; + + PhysicsServer::get_singleton()->generic_6dof_joint_set_precision( + get_joint(), + precision); +} + RID Generic6DOFJoint::_configure_joint(PhysicsBody *body_a, PhysicsBody *body_b) { Transform gt = get_global_transform(); @@ -941,7 +954,8 @@ RID Generic6DOFJoint::_configure_joint(PhysicsBody *body_a, PhysicsBody *body_b) return j; } -Generic6DOFJoint::Generic6DOFJoint() { +Generic6DOFJoint::Generic6DOFJoint() : + precision(1) { set_param_x(PARAM_LINEAR_LOWER_LIMIT, 0); set_param_x(PARAM_LINEAR_UPPER_LIMIT, 0); diff --git a/scene/3d/physics_joint.h b/scene/3d/physics_joint.h index ee4ca28658..753795da90 100644 --- a/scene/3d/physics_joint.h +++ b/scene/3d/physics_joint.h @@ -305,6 +305,8 @@ protected: float params_z[PARAM_MAX]; bool flags_z[FLAG_MAX]; + int precision; + virtual RID _configure_joint(PhysicsBody *body_a, PhysicsBody *body_b); static void _bind_methods(); @@ -327,6 +329,11 @@ public: void set_flag_z(Flag p_flag, bool p_enabled); bool get_flag_z(Flag p_flag) const; + void set_precision(int p_precision); + int get_precision() const { + return precision; + } + Generic6DOFJoint(); }; diff --git a/scene/3d/remote_transform.cpp b/scene/3d/remote_transform.cpp index c12e49fb47..490fcf24fd 100644 --- a/scene/3d/remote_transform.cpp +++ b/scene/3d/remote_transform.cpp @@ -63,38 +63,40 @@ void RemoteTransform::_update_remote() { if (update_remote_position && update_remote_rotation && update_remote_scale) { n->set_global_transform(get_global_transform()); } else { - Transform n_trans = n->get_global_transform(); Transform our_trans = get_global_transform(); - if (!update_remote_position) - our_trans.set_origin(n_trans.get_origin()); + if (update_remote_rotation) + n->set_rotation(our_trans.basis.get_rotation()); - n->set_global_transform(our_trans); + if (update_remote_scale) + n->set_scale(our_trans.basis.get_scale()); - if (!update_remote_rotation) - n->set_rotation(n_trans.basis.get_rotation()); + if (update_remote_position) { + Transform n_trans = n->get_global_transform(); - if (!update_remote_scale) - n->set_scale(n_trans.basis.get_scale()); + n_trans.set_origin(our_trans.get_origin()); + n->set_global_transform(n_trans); + } } } else { if (update_remote_position && update_remote_rotation && update_remote_scale) { - n->set_global_transform(get_global_transform()); + n->set_transform(get_transform()); } else { - Transform n_trans = n->get_transform(); Transform our_trans = get_transform(); - if (!update_remote_position) - our_trans.set_origin(n_trans.get_origin()); + if (update_remote_rotation) + n->set_rotation(our_trans.basis.get_rotation()); - n->set_transform(our_trans); + if (update_remote_scale) + n->set_scale(our_trans.basis.get_scale()); - if (!update_remote_rotation) - n->set_rotation(n_trans.basis.get_rotation()); + if (update_remote_position) { + Transform n_trans = n->get_transform(); - if (!update_remote_scale) - n->set_scale(n_trans.basis.get_scale()); + n_trans.set_origin(our_trans.get_origin()); + n->set_transform(n_trans); + } } } } diff --git a/scene/3d/soft_body.cpp b/scene/3d/soft_body.cpp index 1e730d0b3d..835a874323 100644 --- a/scene/3d/soft_body.cpp +++ b/scene/3d/soft_body.cpp @@ -401,7 +401,7 @@ String SoftBody::get_configuration_warning() const { } Transform t = get_transform(); - if ((ABS(t.basis.get_axis(0).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(1).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(0).length() - 1.0) > 0.05)) { + if ((ABS(t.basis.get_axis(0).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(1).length() - 1.0) > 0.05 || ABS(t.basis.get_axis(2).length() - 1.0) > 0.05)) { if (!warning.empty()) warning += "\n\n"; diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index 5bde224ce3..7b4c7de029 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -463,9 +463,9 @@ void Sprite3D::_draw() { Plane tangent; if (axis == Vector3::AXIS_X) { - tangent = Plane(0, 0, -1, -1); + tangent = Plane(0, 0, -1, 1); } else { - tangent = Plane(1, 0, 0, -1); + tangent = Plane(1, 0, 0, 1); } RID mat = SpatialMaterial::get_material_rid_for_2d(get_draw_flag(FLAG_SHADED), get_draw_flag(FLAG_TRANSPARENT), get_draw_flag(FLAG_DOUBLE_SIDED), get_alpha_cut_mode() == ALPHA_CUT_DISCARD, get_alpha_cut_mode() == ALPHA_CUT_OPAQUE_PREPASS); diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index 64202ba0e3..cfc3b2f4ce 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -1120,6 +1120,15 @@ void AnimationPlayer::queue(const StringName &p_name) { queued.push_back(p_name); } +PoolVector<String> AnimationPlayer::get_queue() { + PoolVector<String> ret; + for (List<StringName>::Element *E = queued.front(); E; E = E->next()) { + ret.push_back(E->get()); + } + + return ret; +} + void AnimationPlayer::clear_queue() { queued.clear(); } @@ -1418,6 +1427,8 @@ StringName AnimationPlayer::find_animation(const Ref<Animation> &p_animation) co } void AnimationPlayer::set_autoplay(const String &p_name) { + if (is_inside_tree() && !Engine::get_singleton()->is_editor_hint()) + WARN_PRINT("Setting autoplay after the node has been added to the scene has no effect."); autoplay = p_name; } @@ -1603,6 +1614,7 @@ void AnimationPlayer::_bind_methods() { ClassDB::bind_method(D_METHOD("set_assigned_animation", "anim"), &AnimationPlayer::set_assigned_animation); ClassDB::bind_method(D_METHOD("get_assigned_animation"), &AnimationPlayer::get_assigned_animation); ClassDB::bind_method(D_METHOD("queue", "name"), &AnimationPlayer::queue); + ClassDB::bind_method(D_METHOD("get_queue"), &AnimationPlayer::get_queue); ClassDB::bind_method(D_METHOD("clear_queue"), &AnimationPlayer::clear_queue); ClassDB::bind_method(D_METHOD("set_active", "active"), &AnimationPlayer::set_active); diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h index f50b2454ec..b3bf8b1e22 100644 --- a/scene/animation/animation_player.h +++ b/scene/animation/animation_player.h @@ -312,6 +312,7 @@ public: void play(const StringName &p_name = StringName(), float p_custom_blend = -1, float p_custom_scale = 1.0, bool p_from_end = false); void play_backwards(const StringName &p_name = StringName(), float p_custom_blend = -1); void queue(const StringName &p_name); + PoolVector<String> get_queue(); void clear_queue(); void stop(bool p_reset = true); bool is_playing() const; diff --git a/scene/animation/animation_tree_player.cpp b/scene/animation/animation_tree_player.cpp index 524784df53..6adfb94695 100644 --- a/scene/animation/animation_tree_player.cpp +++ b/scene/animation/animation_tree_player.cpp @@ -401,6 +401,9 @@ void AnimationTreePlayer::_notification(int p_what) { case NOTIFICATION_ENTER_TREE: { + ERR_EXPLAIN("AnimationTreePlayer has been deprecated. Use AnimationTree instead."); + WARN_DEPRECATED + if (!processing) { //make sure that a previous process state was not saved //only process if "processing" is set @@ -409,12 +412,14 @@ void AnimationTreePlayer::_notification(int p_what) { } } break; case NOTIFICATION_READY: { + dirty_caches = true; if (master != NodePath()) { _update_sources(); } } break; case NOTIFICATION_INTERNAL_PROCESS: { + if (animation_process_mode == ANIMATION_PROCESS_PHYSICS) break; @@ -1715,6 +1720,11 @@ Error AnimationTreePlayer::node_rename(const StringName &p_node, const StringNam return OK; } +String AnimationTreePlayer::get_configuration_warning() const { + + return TTR("This node has been deprecated. Use AnimationTree instead."); +} + void AnimationTreePlayer::_bind_methods() { ClassDB::bind_method(D_METHOD("add_node", "type", "id"), &AnimationTreePlayer::add_node); diff --git a/scene/animation/animation_tree_player.h b/scene/animation/animation_tree_player.h index d2d7b1c9ec..4e4c876e87 100644 --- a/scene/animation/animation_tree_player.h +++ b/scene/animation/animation_tree_player.h @@ -343,6 +343,8 @@ public: int node_get_input_count(const StringName &p_node) const; StringName node_get_input_source(const StringName &p_node, int p_input) const; + String get_configuration_warning() const; + /* ANIMATION NODE */ void animation_node_set_animation(const StringName &p_node, const Ref<Animation> &p_animation); Ref<Animation> animation_node_get_animation(const StringName &p_node) const; diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index 1ac19774f7..dc85c8e641 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -595,6 +595,16 @@ void ButtonGroup::get_buttons(List<BaseButton *> *r_buttons) { } } +Array ButtonGroup::_get_buttons() { + + Array btns; + for (Set<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) { + btns.push_back(E->get()); + } + + return btns; +} + BaseButton *ButtonGroup::get_pressed_button() { for (Set<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) { @@ -608,6 +618,7 @@ BaseButton *ButtonGroup::get_pressed_button() { void ButtonGroup::_bind_methods() { ClassDB::bind_method(D_METHOD("get_pressed_button"), &ButtonGroup::get_pressed_button); + ClassDB::bind_method(D_METHOD("get_buttons"), &ButtonGroup::_get_buttons); } ButtonGroup::ButtonGroup() { diff --git a/scene/gui/base_button.h b/scene/gui/base_button.h index a131e719ad..272c07f68a 100644 --- a/scene/gui/base_button.h +++ b/scene/gui/base_button.h @@ -143,6 +143,7 @@ protected: public: BaseButton *get_pressed_button(); void get_buttons(List<BaseButton *> *r_buttons); + Array _get_buttons(); ButtonGroup(); }; diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index c5d3def4c1..523e07087b 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -204,22 +204,9 @@ void ColorPicker::_update_presets() { preset->draw_texture_rect(get_icon("preset_bg", "ColorPicker"), Rect2(Point2(), preset_size), true); -#ifdef TOOLS_ENABLED - if (Engine::get_singleton()->is_editor_hint()) { - PoolColorArray arr_to_save = PoolColorArray(); - - for (int i = 0; i < presets.size(); i++) { - preset->draw_rect(Rect2(Point2(size.width * i, 0), size), presets[i]); - arr_to_save.insert(i, presets[i]); - } - - EditorSettings::get_singleton()->set_project_metadata("color_picker", "presets", arr_to_save); - } -#else for (int i = 0; i < presets.size(); i++) { preset->draw_rect(Rect2(Point2(size.width * i, 0), size), presets[i]); } -#endif } void ColorPicker::_text_type_toggled() { @@ -251,6 +238,38 @@ void ColorPicker::add_preset(const Color &p_color) { preset->update(); if (presets.size() == 10) bt_add_preset->hide(); + +#ifdef TOOLS_ENABLED + if (Engine::get_singleton()->is_editor_hint()) { + PoolColorArray arr_to_save = get_presets(); + EditorSettings::get_singleton()->set_project_metadata("color_picker", "presets", arr_to_save); + } +#endif +} + +void ColorPicker::erase_preset(const Color &p_color) { + + if (presets.find(p_color)) { + presets.erase(presets.find(p_color)); + preset->update(); + +#ifdef TOOLS_ENABLED + if (Engine::get_singleton()->is_editor_hint()) { + PoolColorArray arr_to_save = get_presets(); + EditorSettings::get_singleton()->set_project_metadata("color_picker", "presets", arr_to_save); + } +#endif + } +} + +PoolColorArray ColorPicker::get_presets() const { + + PoolColorArray arr; + arr.resize(presets.size()); + for (int i = 0; i < presets.size(); i++) { + arr.set(i, presets[i]); + } + return arr; } void ColorPicker::set_raw_mode(bool p_enabled) { @@ -444,14 +463,15 @@ void ColorPicker::_preset_input(const Ref<InputEvent> &p_event) { if (bev->is_pressed() && bev->get_button_index() == BUTTON_LEFT) { int index = bev->get_position().x / (preset->get_size().x / presets.size()); set_pick_color(presets[index]); + _update_color(); + emit_signal("color_changed", color); } else if (bev->is_pressed() && bev->get_button_index() == BUTTON_RIGHT) { int index = bev->get_position().x / (preset->get_size().x / presets.size()); - presets.erase(presets[index]); - preset->update(); + Color clicked_preset = presets[index]; + erase_preset(clicked_preset); + emit_signal("preset_removed", clicked_preset); bt_add_preset->show(); } - _update_color(); - emit_signal("color_changed", color); } Ref<InputEventMouseMotion> mev = p_event; @@ -501,6 +521,7 @@ void ColorPicker::_screen_input(const Ref<InputEvent> &p_event) { void ColorPicker::_add_preset_pressed() { add_preset(color); + emit_signal("preset_added", color); } void ColorPicker::_screen_pick_pressed() { @@ -553,6 +574,8 @@ void ColorPicker::_bind_methods() { ClassDB::bind_method(D_METHOD("set_edit_alpha", "show"), &ColorPicker::set_edit_alpha); ClassDB::bind_method(D_METHOD("is_editing_alpha"), &ColorPicker::is_editing_alpha); ClassDB::bind_method(D_METHOD("add_preset", "color"), &ColorPicker::add_preset); + ClassDB::bind_method(D_METHOD("erase_preset", "color"), &ColorPicker::erase_preset); + ClassDB::bind_method(D_METHOD("get_presets"), &ColorPicker::get_presets); ClassDB::bind_method(D_METHOD("_value_changed"), &ColorPicker::_value_changed); ClassDB::bind_method(D_METHOD("_html_entered"), &ColorPicker::_html_entered); ClassDB::bind_method(D_METHOD("_text_type_toggled"), &ColorPicker::_text_type_toggled); @@ -575,6 +598,8 @@ void ColorPicker::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "deferred_mode"), "set_deferred_mode", "is_deferred_mode"); ADD_SIGNAL(MethodInfo("color_changed", PropertyInfo(Variant::COLOR, "color"))); + ADD_SIGNAL(MethodInfo("preset_added", PropertyInfo(Variant::COLOR, "color"))); + ADD_SIGNAL(MethodInfo("preset_removed", PropertyInfo(Variant::COLOR, "color"))); } ColorPicker::ColorPicker() : diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h index 0166da7118..e32c830434 100644 --- a/scene/gui/color_picker.h +++ b/scene/gui/color_picker.h @@ -105,6 +105,9 @@ public: Color get_pick_color() const; void add_preset(const Color &p_color); + void erase_preset(const Color &p_color); + PoolColorArray get_presets() const; + void set_raw_mode(bool p_enabled); bool is_raw_mode() const; diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 79e1d35b94..a580d89439 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -451,6 +451,11 @@ void Control::_update_canvas_item_transform() { Transform2D xform = _get_internal_transform(); xform[2] += get_position(); + // We use a little workaround to avoid flickering when moving the pivot with _edit_set_pivot() + if (is_inside_tree() && Math::abs(Math::sin(data.rotation * 4.0f)) < 0.00001f && get_viewport()->is_snap_controls_to_pixels_enabled()) { + xform[2] = xform[2].round(); + } + VisualServer::get_singleton()->canvas_item_set_transform(get_canvas_item(), xform); } @@ -1336,11 +1341,6 @@ void Control::_size_changed() { new_size_cache.height = minimum_size.height; } - // We use a little workaround to avoid flickering when moving the pivot with _edit_set_pivot() - if (is_inside_tree() && Math::abs(Math::sin(data.rotation * 4.0f)) < 0.00001f && get_viewport()->is_snap_controls_to_pixels_enabled()) { - new_size_cache = new_size_cache.round(); - new_pos_cache = new_pos_cache.round(); - } bool pos_changed = new_pos_cache != data.pos_cache; bool size_changed = new_size_cache != data.size_cache; @@ -1740,10 +1740,10 @@ Rect2 Control::_compute_child_rect(const float p_anchors[4], const float p_margi void Control::_compute_margins(Rect2 p_rect, const float p_anchors[4], float (&r_margins)[4]) { Size2 parent_rect_size = get_parent_anchorable_rect().size; - r_margins[0] = Math::floor(p_rect.position.x - (p_anchors[0] * parent_rect_size.x)); - r_margins[1] = Math::floor(p_rect.position.y - (p_anchors[1] * parent_rect_size.y)); - r_margins[2] = Math::floor(p_rect.position.x + p_rect.size.x - (p_anchors[2] * parent_rect_size.x)); - r_margins[3] = Math::floor(p_rect.position.y + p_rect.size.y - (p_anchors[3] * parent_rect_size.y)); + r_margins[0] = p_rect.position.x - (p_anchors[0] * parent_rect_size.x); + r_margins[1] = p_rect.position.y - (p_anchors[1] * parent_rect_size.y); + r_margins[2] = p_rect.position.x + p_rect.size.x - (p_anchors[2] * parent_rect_size.x); + r_margins[3] = p_rect.position.y + p_rect.size.y - (p_anchors[3] * parent_rect_size.y); } void Control::set_position(const Size2 &p_point) { diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index b3bebc88ec..eee3213fe7 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -1339,21 +1339,25 @@ GraphEdit::GraphEdit() { zoom_minus = memnew(ToolButton); zoom_hb->add_child(zoom_minus); + zoom_minus->set_tooltip(RTR("Zoom Out")); zoom_minus->connect("pressed", this, "_zoom_minus"); zoom_minus->set_focus_mode(FOCUS_NONE); zoom_reset = memnew(ToolButton); zoom_hb->add_child(zoom_reset); + zoom_reset->set_tooltip(RTR("Zoom Reset")); zoom_reset->connect("pressed", this, "_zoom_reset"); zoom_reset->set_focus_mode(FOCUS_NONE); zoom_plus = memnew(ToolButton); zoom_hb->add_child(zoom_plus); + zoom_plus->set_tooltip(RTR("Zoom In")); zoom_plus->connect("pressed", this, "_zoom_plus"); zoom_plus->set_focus_mode(FOCUS_NONE); snap_button = memnew(ToolButton); snap_button->set_toggle_mode(true); + snap_button->set_tooltip(RTR("Enable snap and show grid.")); snap_button->connect("pressed", this, "_snap_toggled"); snap_button->set_pressed(true); snap_button->set_focus_mode(FOCUS_NONE); diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 299c304c5f..42d7f1b080 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -831,7 +831,6 @@ void LineEdit::_notification(int p_what) { OS::get_singleton()->set_ime_active(true); OS::get_singleton()->set_ime_position(get_global_position() + Point2(using_placeholder ? 0 : x_ofs, y_ofs + caret_height)); - OS::get_singleton()->set_ime_intermediate_text_callback(_ime_text_callback, this); } } break; case NOTIFICATION_FOCUS_ENTER: { @@ -843,7 +842,6 @@ void LineEdit::_notification(int p_what) { OS::get_singleton()->set_ime_active(true); Point2 cursor_pos = Point2(get_cursor_position(), 1) * get_minimum_size().height; OS::get_singleton()->set_ime_position(get_global_position() + cursor_pos); - OS::get_singleton()->set_ime_intermediate_text_callback(_ime_text_callback, this); if (OS::get_singleton()->has_virtual_keyboard()) OS::get_singleton()->show_virtual_keyboard(text, get_global_rect()); @@ -852,7 +850,6 @@ void LineEdit::_notification(int p_what) { case NOTIFICATION_FOCUS_EXIT: { OS::get_singleton()->set_ime_position(Point2()); - OS::get_singleton()->set_ime_intermediate_text_callback(NULL, NULL); OS::get_singleton()->set_ime_active(false); ime_text = ""; ime_selection = Point2(); @@ -861,6 +858,12 @@ void LineEdit::_notification(int p_what) { OS::get_singleton()->hide_virtual_keyboard(); } break; + case MainLoop::NOTIFICATION_OS_IME_UPDATE: { + + ime_text = OS::get_singleton()->get_ime_text(); + ime_selection = OS::get_singleton()->get_ime_selection(); + update(); + } break; } } @@ -1461,13 +1464,6 @@ void LineEdit::set_right_icon(const Ref<Texture> &p_icon) { update(); } -void LineEdit::_ime_text_callback(void *p_self, String p_text, Point2 p_selection) { - LineEdit *self = (LineEdit *)p_self; - self->ime_text = p_text; - self->ime_selection = p_selection; - self->update(); -} - void LineEdit::_text_changed() { if (expand_to_text_length) diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h index 5294d99da0..ddcdeda8c0 100644 --- a/scene/gui/line_edit.h +++ b/scene/gui/line_edit.h @@ -122,7 +122,6 @@ private: Timer *caret_blink_timer; - static void _ime_text_callback(void *p_self, String p_text, Point2 p_selection); void _text_changed(); void _emit_text_change(); bool expand_to_text_length; diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp index 95ec618c3b..b4cb297900 100644 --- a/scene/gui/menu_button.cpp +++ b/scene/gui/menu_button.cpp @@ -71,13 +71,24 @@ PopupMenu *MenuButton::get_popup() const { return popup; } +void MenuButton::_set_items(const Array &p_items) { + + popup->set("items", p_items); +} + Array MenuButton::_get_items() const { return popup->get("items"); } -void MenuButton::_set_items(const Array &p_items) { - popup->set("items", p_items); +void MenuButton::set_switch_on_hover(bool p_enabled) { + + switch_on_hover = p_enabled; +} + +bool MenuButton::is_switch_on_hover() { + + return switch_on_hover; } void MenuButton::_bind_methods() { @@ -86,9 +97,12 @@ void MenuButton::_bind_methods() { ClassDB::bind_method(D_METHOD("_unhandled_key_input"), &MenuButton::_unhandled_key_input); ClassDB::bind_method(D_METHOD("_set_items"), &MenuButton::_set_items); ClassDB::bind_method(D_METHOD("_get_items"), &MenuButton::_get_items); + ClassDB::bind_method(D_METHOD("set_switch_on_hover", "enable"), &MenuButton::set_switch_on_hover); + ClassDB::bind_method(D_METHOD("is_switch_on_hover"), &MenuButton::is_switch_on_hover); ClassDB::bind_method(D_METHOD("set_disable_shortcuts", "disabled"), &MenuButton::set_disable_shortcuts); ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "items", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_items", "_get_items"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "switch_on_hover"), "set_switch_on_hover", "is_switch_on_hover"); ADD_SIGNAL(MethodInfo("about_to_show")); } @@ -100,6 +114,7 @@ void MenuButton::set_disable_shortcuts(bool p_disabled) { MenuButton::MenuButton() { + switch_on_hover = false; set_flat(true); set_disable_shortcuts(false); set_enabled_focus_mode(FOCUS_NONE); diff --git a/scene/gui/menu_button.h b/scene/gui/menu_button.h index 0636accfee..abc49f4988 100644 --- a/scene/gui/menu_button.h +++ b/scene/gui/menu_button.h @@ -41,6 +41,7 @@ class MenuButton : public Button { GDCLASS(MenuButton, Button); bool clicked; + bool switch_on_hover; bool disable_shortcuts; PopupMenu *popup; @@ -57,6 +58,8 @@ public: virtual void pressed(); PopupMenu *get_popup() const; + void set_switch_on_hover(bool p_enabled); + bool is_switch_on_hover(); void set_disable_shortcuts(bool p_disabled); MenuButton(); diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 17de346f51..db890bf1c8 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -765,20 +765,19 @@ void RichTextLabel::_update_scroll() { if (exceeds) { scroll_visible = true; - main->first_invalid_line = 0; scroll_w = vscroll->get_combined_minimum_size().width; vscroll->show(); vscroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, -scroll_w); - _validate_line_caches(main); - } else { - scroll_visible = false; - vscroll->hide(); scroll_w = 0; - _validate_line_caches(main); + vscroll->hide(); } + + main->first_invalid_line = 0; //invalidate ALL + _validate_line_caches(main); } + scroll_updated = true; } void RichTextLabel::_notification(int p_what) { @@ -931,6 +930,7 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { if (true) { if (b->is_pressed() && !b->is_doubleclick()) { + scroll_updated = false; int line = 0; Item *item = NULL; @@ -939,12 +939,7 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { if (item) { - Variant meta; - if (!outside && _find_meta(item, &meta)) { - //meta clicked - - emit_signal("meta_clicked", meta); - } else if (selection.enabled) { + if (selection.enabled) { selection.click = item; selection.click_char = line; @@ -993,6 +988,24 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { } else if (!b->is_pressed()) { selection.click = NULL; + + if (!b->is_doubleclick() && !scroll_updated) { + int line = 0; + Item *item = NULL; + + bool outside; + _find_click(main, b->get_position(), &item, &line, &outside); + + if (item) { + + Variant meta; + if (!outside && _find_meta(item, &meta)) { + //meta clicked + + emit_signal("meta_clicked", meta); + } + } + } } } } @@ -1616,7 +1629,6 @@ void RichTextLabel::clear() { main->lines.clear(); main->lines.resize(1); main->first_invalid_line = 0; - scroll_w = 0; update(); selection.click = NULL; selection.active = false; @@ -2327,6 +2339,7 @@ RichTextLabel::RichTextLabel() { updating_scroll = false; scroll_active = true; scroll_w = 0; + scroll_updated = false; vscroll = memnew(VScrollBar); add_child(vscroll); diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h index c2e5712b9d..7c30738e2d 100644 --- a/scene/gui/rich_text_label.h +++ b/scene/gui/rich_text_label.h @@ -225,6 +225,7 @@ private: bool scroll_following; bool scroll_active; int scroll_w; + bool scroll_updated; bool updating_scroll; int current_idx; int visible_line_count; diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp index ace22dddff..4f43bb0581 100644 --- a/scene/gui/spin_box.cpp +++ b/scene/gui/spin_box.cpp @@ -110,6 +110,9 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { range_click_timer->start(); line_edit->grab_focus(); + + drag.allowed = true; + drag.capture_pos = mb->get_position(); } break; case BUTTON_RIGHT: { @@ -133,14 +136,7 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { } } - if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == 1) { - - //set_default_cursor_shape(CURSOR_VSIZE); - Vector2 cpos = Vector2(mb->get_position().x, mb->get_position().y); - drag.mouse_pos = cpos; - } - - if (mb.is_valid() && !mb->is_pressed() && mb->get_button_index() == 1) { + if (mb.is_valid() && !mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { //set_default_cursor_shape(CURSOR_ARROW); range_click_timer->stop(); @@ -150,32 +146,24 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_VISIBLE); warp_mouse(drag.capture_pos); } + drag.allowed = false; } Ref<InputEventMouseMotion> mm = p_event; - if (mm.is_valid() && mm->get_button_mask() & 1) { - - Vector2 cpos = mm->get_position(); + if (mm.is_valid() && mm->get_button_mask() & BUTTON_MASK_LEFT) { if (drag.enabled) { - float diff_y = drag.mouse_pos.y - cpos.y; - diff_y = Math::pow(ABS(diff_y), 1.8f) * SGN(diff_y); - diff_y *= 0.1; - - drag.mouse_pos = cpos; - drag.base_val = CLAMP(drag.base_val + get_step() * diff_y, get_min(), get_max()); - - set_value(drag.base_val); - - } else if (drag.mouse_pos.distance_to(cpos) > 2) { + drag.diff_y += mm->get_relative().y; + float diff_y = -0.01 * Math::pow(ABS(drag.diff_y), 1.8f) * SGN(drag.diff_y); + set_value(CLAMP(drag.base_val + get_step() * diff_y, get_min(), get_max())); + } else if (drag.allowed && drag.capture_pos.distance_to(mm->get_position()) > 2) { Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_CAPTURED); drag.enabled = true; drag.base_val = get_value(); - drag.mouse_pos = cpos; - drag.capture_pos = cpos; + drag.diff_y = 0; } } } diff --git a/scene/gui/spin_box.h b/scene/gui/spin_box.h index f1ee26d9f3..6425af7158 100644 --- a/scene/gui/spin_box.h +++ b/scene/gui/spin_box.h @@ -54,10 +54,10 @@ class SpinBox : public Range { struct Drag { float base_val; + bool allowed; bool enabled; - Vector2 from; - Vector2 mouse_pos; Vector2 capture_pos; + float diff_y; } drag; void _line_edit_focus_exit(); diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp index 3554f04cc0..c3265d3ed5 100644 --- a/scene/gui/split_container.cpp +++ b/scene/gui/split_container.cpp @@ -94,12 +94,15 @@ void SplitContainer::_resort() { } // Compute the final middle separation - int clamped_split_offset = CLAMP(split_offset, ms_first[axis] - no_offset_middle_sep, (get_size()[axis] - ms_second[axis] - sep) - no_offset_middle_sep); - middle_sep = no_offset_middle_sep + clamped_split_offset; - if (!collapsed && should_clamp_split_offset) { - split_offset = clamped_split_offset; - _change_notify("split_offset"); - should_clamp_split_offset = false; + middle_sep = no_offset_middle_sep; + if (!collapsed) { + int clamped_split_offset = CLAMP(split_offset, ms_first[axis] - no_offset_middle_sep, (get_size()[axis] - ms_second[axis] - sep) - no_offset_middle_sep); + middle_sep += clamped_split_offset; + if (should_clamp_split_offset) { + split_offset = clamped_split_offset; + _change_notify("split_offset"); + should_clamp_split_offset = false; + } } if (vertical) { diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 5fe6fcdfac..fef29b7e6c 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -1412,7 +1412,6 @@ void TextEdit::_notification(int p_what) { if (has_focus()) { OS::get_singleton()->set_ime_active(true); OS::get_singleton()->set_ime_position(get_global_position() + cursor_pos + Point2(0, get_row_height())); - OS::get_singleton()->set_ime_intermediate_text_callback(_ime_text_callback, this); } } break; @@ -1425,7 +1424,6 @@ void TextEdit::_notification(int p_what) { OS::get_singleton()->set_ime_active(true); Point2 cursor_pos = Point2(cursor_get_column(), cursor_get_line()) * get_row_height(); OS::get_singleton()->set_ime_position(get_global_position() + cursor_pos); - OS::get_singleton()->set_ime_intermediate_text_callback(_ime_text_callback, this); if (OS::get_singleton()->has_virtual_keyboard()) OS::get_singleton()->show_virtual_keyboard(get_text(), get_global_rect()); @@ -1433,7 +1431,6 @@ void TextEdit::_notification(int p_what) { case NOTIFICATION_FOCUS_EXIT: { OS::get_singleton()->set_ime_position(Point2()); - OS::get_singleton()->set_ime_intermediate_text_callback(NULL, NULL); OS::get_singleton()->set_ime_active(false); ime_text = ""; ime_selection = Point2(); @@ -1441,14 +1438,13 @@ void TextEdit::_notification(int p_what) { if (OS::get_singleton()->has_virtual_keyboard()) OS::get_singleton()->hide_virtual_keyboard(); } break; - } -} + case MainLoop::NOTIFICATION_OS_IME_UPDATE: { -void TextEdit::_ime_text_callback(void *p_self, String p_text, Point2 p_selection) { - TextEdit *self = (TextEdit *)p_self; - self->ime_text = p_text; - self->ime_selection = p_selection; - self->update(); + ime_text = OS::get_singleton()->get_ime_text(); + ime_selection = OS::get_singleton()->get_ime_selection(); + update(); + } break; + } } void TextEdit::_consume_pair_symbol(CharType ch) { @@ -5758,6 +5754,7 @@ void TextEdit::_update_completion_candidates() { completion_base = s; Vector<float> sim_cache; bool single_quote = s.begins_with("'"); + Vector<String> completion_options_casei; for (int i = 0; i < completion_strings.size(); i++) { if (single_quote && completion_strings[i].is_quoted()) { @@ -5766,9 +5763,13 @@ void TextEdit::_update_completion_candidates() { if (completion_strings[i].begins_with(s)) { completion_options.push_back(completion_strings[i]); + } else if (completion_strings[i].to_lower().begins_with(s.to_lower())) { + completion_options_casei.push_back(completion_strings[i]); } } + completion_options.append_array(completion_options_casei); + if (completion_options.size() == 0) { for (int i = 0; i < completion_strings.size(); i++) { if (s.is_subsequence_of(completion_strings[i])) { @@ -6040,7 +6041,10 @@ void TextEdit::menu_option(int p_option) { case MENU_UNDO: { undo(); } break; - }; + case MENU_REDO: { + redo(); + } + } } void TextEdit::set_select_identifiers_on_hover(bool p_enable) { @@ -6216,6 +6220,7 @@ void TextEdit::_bind_methods() { BIND_ENUM_CONSTANT(MENU_CLEAR); BIND_ENUM_CONSTANT(MENU_SELECT_ALL); BIND_ENUM_CONSTANT(MENU_UNDO); + BIND_ENUM_CONSTANT(MENU_REDO); BIND_ENUM_CONSTANT(MENU_MAX); GLOBAL_DEF("gui/timers/text_edit_idle_detect_sec", 3); @@ -6344,6 +6349,7 @@ TextEdit::TextEdit() { menu->add_item(RTR("Clear"), MENU_CLEAR); menu->add_separator(); menu->add_item(RTR("Undo"), MENU_UNDO, KEY_MASK_CMD | KEY_Z); + menu->add_item(RTR("Redo"), MENU_REDO, KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_Z); menu->connect("id_pressed", this, "menu_option"); } diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index 8a508a8738..f069ffc167 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -380,8 +380,6 @@ private: void _scroll_lines_up(); void _scroll_lines_down(); - static void _ime_text_callback(void *p_self, String p_text, Point2 p_selection); - //void mouse_motion(const Point& p_pos, const Point& p_rel, int p_button_mask); Size2 get_minimum_size() const; @@ -444,6 +442,7 @@ public: MENU_CLEAR, MENU_SELECT_ALL, MENU_UNDO, + MENU_REDO, MENU_MAX }; diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 3f664bab10..be4878588e 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -639,6 +639,7 @@ void SceneTree::_notification(int p_notification) { } } break; case NOTIFICATION_OS_MEMORY_WARNING: + case NOTIFICATION_OS_IME_UPDATE: case NOTIFICATION_WM_MOUSE_ENTER: case NOTIFICATION_WM_MOUSE_EXIT: case NOTIFICATION_WM_FOCUS_IN: diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 8545efb966..5b1c2d8020 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -189,7 +189,7 @@ Viewport::GUI::GUI() { dragging = false; mouse_focus = NULL; mouse_click_grabber = NULL; - mouse_focus_button = -1; + mouse_focus_mask = 0; key_focus = NULL; mouse_over = NULL; @@ -671,15 +671,7 @@ void Viewport::_notification(int p_what) { case SceneTree::NOTIFICATION_WM_FOCUS_OUT: { if (gui.mouse_focus) { //if mouse is being pressed, send a release event - Ref<InputEventMouseButton> mb; - mb.instance(); - mb->set_position(gui.mouse_focus->get_local_mouse_position()); - mb->set_global_position(gui.mouse_focus->get_local_mouse_position()); - mb->set_button_index(gui.mouse_focus_button); - mb->set_pressed(false); - Control *c = gui.mouse_focus; - gui.mouse_focus = NULL; - c->call_multilevel(SceneStringNames::get_singleton()->_gui_input, mb); + _drop_mouse_focus(); } } break; } @@ -1686,10 +1678,10 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { if (mb->is_pressed()) { Size2 pos = mpos; - if (gui.mouse_focus && mb->get_button_index() != gui.mouse_focus_button) { - - //do not steal mouse focus and stuff + if (gui.mouse_focus_mask) { + //do not steal mouse focus and stuff while a focus mask exists + gui.mouse_focus_mask |= 1 << (mb->get_button_index() - 1); //add the button to the mask } else { bool is_handled = false; @@ -1734,7 +1726,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { */ gui.mouse_focus = _gui_find_control(pos); - gui.mouse_focus_button = mb->get_button_index(); + gui.mouse_focus_mask = 1 << (mb->get_button_index() - 1); if (!gui.mouse_focus) { return; @@ -1755,7 +1747,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { mb->set_position(pos); #ifdef DEBUG_ENABLED - if (ScriptDebugger::get_singleton()) { + if (ScriptDebugger::get_singleton() && gui.mouse_focus) { Array arr; arr.push_back(gui.mouse_focus->get_path()); @@ -1788,7 +1780,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { } } - if (gui.mouse_focus->can_process()) { + if (gui.mouse_focus && gui.mouse_focus->can_process()) { _gui_call_input(gui.mouse_focus, mb); } @@ -1837,6 +1829,8 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { //change mouse accordingly } + gui.mouse_focus_mask &= ~(1 << (mb->get_button_index() - 1)); //remove from mask + if (!gui.mouse_focus) { //release event is only sent if a mouse focus (previously pressed button) exists return; @@ -1852,12 +1846,11 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Control *mouse_focus = gui.mouse_focus; //disable mouse focus if needed before calling input, this makes popups on mouse press event work better, as the release will never be received otherwise - if (mb->get_button_index() == gui.mouse_focus_button) { + if (gui.mouse_focus_mask == 0) { gui.mouse_focus = NULL; - gui.mouse_focus_button = -1; } - if (mouse_focus->can_process()) { + if (mouse_focus && mouse_focus->can_process()) { _gui_call_input(mouse_focus, mb); } @@ -1900,6 +1893,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { if (gui.drag_data.get_type() != Variant::NIL) { gui.mouse_focus = NULL; + gui.mouse_focus_mask = 0; break; } else { if (gui.drag_preview != NULL) { @@ -1961,10 +1955,9 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { // If the mouse is over a menu button, this menu will open automatically // if there is already a pop-up menu open at the same hierarchical level. - if (popup_menu_parent && menu_button && - popup_menu_parent->get_icon().is_null() && - menu_button->get_icon().is_null() && - (popup_menu->get_parent()->get_parent()->is_a_parent_of(menu_button) || + if (popup_menu_parent && menu_button && popup_menu_parent->is_switch_on_hover() && + !menu_button->is_disabled() && menu_button->is_switch_on_hover() && + (popup_menu_parent->get_parent()->is_a_parent_of(menu_button) || menu_button->get_parent()->is_a_parent_of(popup_menu))) { popup_menu->notification(Control::NOTIFICATION_MODAL_CLOSE); @@ -2071,7 +2064,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { OS::get_singleton()->set_cursor_shape((OS::CursorShape)cursor_shape); - if (over->can_process()) { + if (over && over->can_process()) { _gui_call_input(over, mm); } @@ -2412,7 +2405,7 @@ void Viewport::_gui_unfocus_control(Control *p_control) { void Viewport::_gui_hid_control(Control *p_control) { if (gui.mouse_focus == p_control) { - gui.mouse_focus = NULL; + _drop_mouse_focus(); } /* ??? @@ -2439,8 +2432,10 @@ void Viewport::_gui_hid_control(Control *p_control) { void Viewport::_gui_remove_control(Control *p_control) { - if (gui.mouse_focus == p_control) + if (gui.mouse_focus == p_control) { gui.mouse_focus = NULL; + gui.mouse_focus_mask = 0; + } if (gui.key_focus == p_control) gui.key_focus = NULL; if (gui.mouse_over == p_control) @@ -2489,6 +2484,27 @@ void Viewport::_gui_accept_event() { set_input_as_handled(); } +void Viewport::_drop_mouse_focus() { + + Control *c = gui.mouse_focus; + int mask = gui.mouse_focus_mask; + gui.mouse_focus = NULL; + gui.mouse_focus_mask = 0; + + for (int i = 0; i < 3; i++) { + + if (mask & (1 << i)) { + Ref<InputEventMouseButton> mb; + mb.instance(); + mb->set_position(c->get_local_mouse_position()); + mb->set_global_position(c->get_local_mouse_position()); + mb->set_button_index(i + 1); + mb->set_pressed(false); + c->call_multilevel(SceneStringNames::get_singleton()->_gui_input, mb); + } + } +} + List<Control *>::Element *Viewport::_gui_show_modal(Control *p_control) { gui.modal_stack.push_back(p_control); @@ -2498,15 +2514,8 @@ List<Control *>::Element *Viewport::_gui_show_modal(Control *p_control) { p_control->_modal_set_prev_focus_owner(0); if (gui.mouse_focus && !p_control->is_a_parent_of(gui.mouse_focus) && !gui.mouse_click_grabber) { - Ref<InputEventMouseButton> mb; - mb.instance(); - mb->set_position(gui.mouse_focus->get_local_mouse_position()); - mb->set_global_position(gui.mouse_focus->get_local_mouse_position()); - mb->set_button_index(gui.mouse_focus_button); - mb->set_pressed(false); - Control *c = gui.mouse_focus; - gui.mouse_focus = NULL; - c->call_multilevel(SceneStringNames::get_singleton()->_gui_input, mb); + + _drop_mouse_focus(); } return gui.modal_stack.back(); @@ -2536,24 +2545,45 @@ void Viewport::_post_gui_grab_click_focus() { if (gui.mouse_focus == focus_grabber) return; - Ref<InputEventMouseButton> mb; - mb.instance(); - - //send unclic + int mask = gui.mouse_focus_mask; Point2 click = gui.mouse_focus->get_global_transform_with_canvas().affine_inverse().xform(gui.last_mouse_pos); - mb->set_position(click); - mb->set_button_index(gui.mouse_focus_button); - mb->set_pressed(false); - gui.mouse_focus->call_multilevel(SceneStringNames::get_singleton()->_gui_input, mb); + + for (int i = 0; i < 3; i++) { + + if (mask & (1 << i)) { + + Ref<InputEventMouseButton> mb; + mb.instance(); + + //send unclic + + mb->set_position(click); + mb->set_button_index(i + 1); + mb->set_pressed(false); + gui.mouse_focus->call_multilevel(SceneStringNames::get_singleton()->_gui_input, mb); + } + } gui.mouse_focus = focus_grabber; gui.focus_inv_xform = gui.mouse_focus->get_global_transform_with_canvas().affine_inverse(); click = gui.mouse_focus->get_global_transform_with_canvas().affine_inverse().xform(gui.last_mouse_pos); - mb->set_position(click); - mb->set_button_index(gui.mouse_focus_button); - mb->set_pressed(true); - gui.mouse_focus->call_deferred(SceneStringNames::get_singleton()->_gui_input, mb); + + for (int i = 0; i < 3; i++) { + + if (mask & (1 << i)) { + + Ref<InputEventMouseButton> mb; + mb.instance(); + + //send clic + + mb->set_position(click); + mb->set_button_index(i + 1); + mb->set_pressed(true); + gui.mouse_focus->call_deferred(SceneStringNames::get_singleton()->_gui_input, mb); + } + } } } diff --git a/scene/main/viewport.h b/scene/main/viewport.h index 44fb322ae2..278350b1c9 100644 --- a/scene/main/viewport.h +++ b/scene/main/viewport.h @@ -272,7 +272,7 @@ private: bool key_event_accepted; Control *mouse_focus; Control *mouse_click_grabber; - int mouse_focus_button; + int mouse_focus_mask; Control *key_focus; Control *mouse_over; Control *tooltip; @@ -379,6 +379,8 @@ private: void _canvas_layer_add(CanvasLayer *p_canvas_layer); void _canvas_layer_remove(CanvasLayer *p_canvas_layer); + void _drop_mouse_focus(); + protected: void _notification(int p_what); static void _bind_methods(); diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index 97230d422b..d7750c91ef 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -210,8 +210,6 @@ #include "scene/resources/physics_material.h" #endif -static ResourceFormatLoaderTheme *resource_loader_theme = NULL; - static ResourceFormatSaverText *resource_saver_text = NULL; static ResourceFormatLoaderText *resource_loader_text = NULL; @@ -242,9 +240,6 @@ void register_scene_types() { resource_loader_texture_layered = memnew(ResourceFormatLoaderTextureLayered); ResourceLoader::add_resource_format_loader(resource_loader_texture_layered); - resource_loader_theme = memnew(ResourceFormatLoaderTheme); - ResourceLoader::add_resource_format_loader(resource_loader_theme); - resource_saver_text = memnew(ResourceFormatSaverText); ResourceSaver::add_resource_format_saver(resource_saver_text, true); @@ -743,7 +738,6 @@ void unregister_scene_types() { memdelete(resource_loader_dynamic_font); memdelete(resource_loader_stream_texture); memdelete(resource_loader_texture_layered); - memdelete(resource_loader_theme); DynamicFont::finish_dynamic_fonts(); diff --git a/scene/resources/audio_stream_sample.cpp b/scene/resources/audio_stream_sample.cpp index 9ee85b64b6..35132c1195 100644 --- a/scene/resources/audio_stream_sample.cpp +++ b/scene/resources/audio_stream_sample.cpp @@ -249,6 +249,10 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in int32_t todo = p_frames; + if (base->loop_mode == AudioStreamSample::LOOP_BACKWARD) { + sign = -1; + } + float base_rate = AudioServer::get_singleton()->get_mix_rate(); float srate = base->mix_rate; srate *= p_rate_scale; @@ -621,7 +625,7 @@ void AudioStreamSample::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::POOL_BYTE_ARRAY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_data", "get_data"); ADD_PROPERTY(PropertyInfo(Variant::INT, "format", PROPERTY_HINT_ENUM, "8-Bit,16-Bit,IMA-ADPCM"), "set_format", "get_format"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "loop_mode", PROPERTY_HINT_ENUM, "Disabled,Forward,Ping-Pong"), "set_loop_mode", "get_loop_mode"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "loop_mode", PROPERTY_HINT_ENUM, "Disabled,Forward,Ping-Pong,Backward"), "set_loop_mode", "get_loop_mode"); ADD_PROPERTY(PropertyInfo(Variant::INT, "loop_begin"), "set_loop_begin", "get_loop_begin"); ADD_PROPERTY(PropertyInfo(Variant::INT, "loop_end"), "set_loop_end", "get_loop_end"); ADD_PROPERTY(PropertyInfo(Variant::INT, "mix_rate"), "set_mix_rate", "get_mix_rate"); @@ -634,6 +638,7 @@ void AudioStreamSample::_bind_methods() { BIND_ENUM_CONSTANT(LOOP_DISABLED); BIND_ENUM_CONSTANT(LOOP_FORWARD); BIND_ENUM_CONSTANT(LOOP_PING_PONG); + BIND_ENUM_CONSTANT(LOOP_BACKWARD); } AudioStreamSample::AudioStreamSample() { diff --git a/scene/resources/audio_stream_sample.h b/scene/resources/audio_stream_sample.h index a27acc92b7..2c39e0a11e 100644 --- a/scene/resources/audio_stream_sample.h +++ b/scene/resources/audio_stream_sample.h @@ -94,7 +94,8 @@ public: enum LoopMode { LOOP_DISABLED, LOOP_FORWARD, - LOOP_PING_PONG + LOOP_PING_PONG, + LOOP_BACKWARD }; private: diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index fff136cdc3..b0c1dcde9a 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -307,10 +307,6 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_constant("hseparation", "MenuButton", 3 * scale); - // ButtonGroup - - theme->set_stylebox("panel", "ButtonGroup", memnew(StyleBoxEmpty)); - // CheckBox Ref<StyleBox> cbx_empty = memnew(StyleBoxEmpty); diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index c9cdfe866f..90552ebb47 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -504,7 +504,7 @@ float Environment::get_ssao_edge_sharpness() const { void Environment::set_glow_enabled(bool p_enabled) { glow_enabled = p_enabled; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); _change_notify(); } @@ -522,7 +522,7 @@ void Environment::set_glow_level(int p_level, bool p_enabled) { else glow_levels &= ~(1 << p_level); - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } bool Environment::is_glow_level_enabled(int p_level) const { @@ -535,7 +535,7 @@ void Environment::set_glow_intensity(float p_intensity) { glow_intensity = p_intensity; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } float Environment::get_glow_intensity() const { @@ -545,7 +545,7 @@ float Environment::get_glow_intensity() const { void Environment::set_glow_strength(float p_strength) { glow_strength = p_strength; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } float Environment::get_glow_strength() const { @@ -556,7 +556,7 @@ void Environment::set_glow_bloom(float p_threshold) { glow_bloom = p_threshold; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } float Environment::get_glow_bloom() const { @@ -567,7 +567,7 @@ void Environment::set_glow_blend_mode(GlowBlendMode p_mode) { glow_blend_mode = p_mode; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } Environment::GlowBlendMode Environment::get_glow_blend_mode() const { @@ -578,18 +578,29 @@ void Environment::set_glow_hdr_bleed_threshold(float p_threshold) { glow_hdr_bleed_threshold = p_threshold; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } float Environment::get_glow_hdr_bleed_threshold() const { return glow_hdr_bleed_threshold; } +void Environment::set_glow_hdr_luminance_cap(float p_amount) { + + glow_hdr_luminance_cap = p_amount; + + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); +} +float Environment::get_glow_hdr_luminance_cap() const { + + return glow_hdr_luminance_cap; +} + void Environment::set_glow_hdr_bleed_scale(float p_scale) { glow_hdr_bleed_scale = p_scale; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } float Environment::get_glow_hdr_bleed_scale() const { @@ -599,7 +610,7 @@ float Environment::get_glow_hdr_bleed_scale() const { void Environment::set_glow_bicubic_upscale(bool p_enable) { glow_bicubic_upscale = p_enable; - VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_bicubic_upscale); + VS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_bloom, VS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap, glow_bicubic_upscale); } bool Environment::is_glow_bicubic_upscale_enabled() const { @@ -1127,6 +1138,9 @@ void Environment::_bind_methods() { ClassDB::bind_method(D_METHOD("set_glow_hdr_bleed_threshold", "threshold"), &Environment::set_glow_hdr_bleed_threshold); ClassDB::bind_method(D_METHOD("get_glow_hdr_bleed_threshold"), &Environment::get_glow_hdr_bleed_threshold); + ClassDB::bind_method(D_METHOD("set_glow_hdr_luminance_cap", "amount"), &Environment::set_glow_hdr_luminance_cap); + ClassDB::bind_method(D_METHOD("get_glow_hdr_luminance_cap"), &Environment::get_glow_hdr_luminance_cap); + ClassDB::bind_method(D_METHOD("set_glow_hdr_bleed_scale", "scale"), &Environment::set_glow_hdr_bleed_scale); ClassDB::bind_method(D_METHOD("get_glow_hdr_bleed_scale"), &Environment::get_glow_hdr_bleed_scale); @@ -1148,6 +1162,7 @@ void Environment::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::REAL, "glow_bloom", PROPERTY_HINT_RANGE, "0.0,1.0,0.01"), "set_glow_bloom", "get_glow_bloom"); ADD_PROPERTY(PropertyInfo(Variant::INT, "glow_blend_mode", PROPERTY_HINT_ENUM, "Additive,Screen,Softlight,Replace"), "set_glow_blend_mode", "get_glow_blend_mode"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "glow_hdr_threshold", PROPERTY_HINT_RANGE, "0.0,4.0,0.01"), "set_glow_hdr_bleed_threshold", "get_glow_hdr_bleed_threshold"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "glow_hdr_luminance_cap", PROPERTY_HINT_RANGE, "0.0,256.0,0.01"), "set_glow_hdr_luminance_cap", "get_glow_hdr_luminance_cap"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "glow_hdr_scale", PROPERTY_HINT_RANGE, "0.0,4.0,0.01"), "set_glow_hdr_bleed_scale", "get_glow_hdr_bleed_scale"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "glow_bicubic_upscale"), "set_glow_bicubic_upscale", "is_glow_bicubic_upscale_enabled"); @@ -1261,6 +1276,7 @@ Environment::Environment() { glow_bloom = 0.0; glow_blend_mode = GLOW_BLEND_MODE_SOFTLIGHT; glow_hdr_bleed_threshold = 1.0; + glow_hdr_luminance_cap = 12.0; glow_hdr_bleed_scale = 2.0; glow_bicubic_upscale = false; diff --git a/scene/resources/environment.h b/scene/resources/environment.h index 4f5d44088a..55d96bc5bd 100644 --- a/scene/resources/environment.h +++ b/scene/resources/environment.h @@ -141,6 +141,7 @@ private: GlowBlendMode glow_blend_mode; float glow_hdr_bleed_threshold; float glow_hdr_bleed_scale; + float glow_hdr_luminance_cap; bool glow_bicubic_upscale; bool dof_blur_far_enabled; @@ -312,6 +313,9 @@ public: void set_glow_hdr_bleed_threshold(float p_threshold); float get_glow_hdr_bleed_threshold() const; + void set_glow_hdr_luminance_cap(float p_amount); + float get_glow_hdr_luminance_cap() const; + void set_glow_hdr_bleed_scale(float p_scale); float get_glow_hdr_bleed_scale() const; diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index 5327ed318f..f6dc60900f 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -258,7 +258,7 @@ ShaderMaterial::~ShaderMaterial() { ///////////////////////////////// Mutex *SpatialMaterial::material_mutex = NULL; -SelfList<SpatialMaterial>::List SpatialMaterial::dirty_materials; +SelfList<SpatialMaterial>::List *SpatialMaterial::dirty_materials = NULL; Map<SpatialMaterial::MaterialKey, SpatialMaterial::ShaderData> SpatialMaterial::shader_map; SpatialMaterial::ShaderNames *SpatialMaterial::shader_names = NULL; @@ -268,6 +268,8 @@ void SpatialMaterial::init_shaders() { material_mutex = Mutex::create(); #endif + dirty_materials = memnew(SelfList<SpatialMaterial>::List); + shader_names = memnew(ShaderNames); shader_names->albedo = "albedo"; @@ -348,12 +350,15 @@ void SpatialMaterial::finish_shaders() { memdelete(material_mutex); #endif + memdelete(dirty_materials); + dirty_materials = NULL; + memdelete(shader_names); } void SpatialMaterial::_update_shader() { - dirty_materials.remove(&element); + dirty_materials->remove(&element); MaterialKey mk = _compute_key(); if (mk.key == current_key.key) @@ -699,7 +704,7 @@ void SpatialMaterial::_update_shader() { if (features[FEATURE_DEPTH_MAPPING] && !flags[FLAG_UV1_USE_TRIPLANAR]) { //depthmap not supported with triplanar code += "\t{\n"; - code += "\t\tvec3 view_dir = normalize(normalize(-VERTEX)*mat3(TANGENT*depth_flip.x,BINORMAL*depth_flip.y,NORMAL));\n"; // binormal is negative due to mikktspace + code += "\t\tvec3 view_dir = normalize(normalize(-VERTEX)*mat3(TANGENT*depth_flip.x,-BINORMAL*depth_flip.y,NORMAL));\n"; // binormal is negative due to mikktspace, flip 'unflips' it ;-) if (deep_parallax) { code += "\t\tfloat num_layers = mix(float(depth_max_layers),float(depth_min_layers), abs(dot(vec3(0.0, 0.0, 1.0), view_dir)));\n"; @@ -1002,9 +1007,9 @@ void SpatialMaterial::flush_changes() { if (material_mutex) material_mutex->lock(); - while (dirty_materials.first()) { + while (dirty_materials->first()) { - dirty_materials.first()->self()->_update_shader(); + dirty_materials->first()->self()->_update_shader(); } if (material_mutex) @@ -1017,7 +1022,7 @@ void SpatialMaterial::_queue_shader_change() { material_mutex->lock(); if (!element.in_list()) { - dirty_materials.add(&element); + dirty_materials->add(&element); } if (material_mutex) @@ -1315,7 +1320,7 @@ void SpatialMaterial::set_flag(Flags p_flag, bool p_enabled) { return; flags[p_flag] = p_enabled; - if (p_flag == FLAG_USE_ALPHA_SCISSOR) { + if (p_flag == FLAG_USE_ALPHA_SCISSOR || p_flag == FLAG_UNSHADED) { _change_notify(); } _queue_shader_change(); @@ -1421,6 +1426,48 @@ void SpatialMaterial::_validate_property(PropertyInfo &property) const { if ((property.name == "depth_min_layers" || property.name == "depth_max_layers") && !deep_parallax) { property.usage = 0; } + + if (flags[FLAG_UNSHADED]) { + if (property.name.begins_with("anisotropy")) { + property.usage = 0; + } + + if (property.name.begins_with("ao")) { + property.usage = 0; + } + + if (property.name.begins_with("clearcoat")) { + property.usage = 0; + } + + if (property.name.begins_with("emission")) { + property.usage = 0; + } + + if (property.name.begins_with("metallic")) { + property.usage = 0; + } + + if (property.name.begins_with("normal")) { + property.usage = 0; + } + + if (property.name.begins_with("rim")) { + property.usage = 0; + } + + if (property.name.begins_with("roughness")) { + property.usage = 0; + } + + if (property.name.begins_with("subsurf_scatter")) { + property.usage = 0; + } + + if (property.name.begins_with("transmission")) { + property.usage = 0; + } + } } void SpatialMaterial::set_line_width(float p_line_width) { diff --git a/scene/resources/material.h b/scene/resources/material.h index 54fceaddc1..921f3baeaa 100644 --- a/scene/resources/material.h +++ b/scene/resources/material.h @@ -360,7 +360,7 @@ private: }; static Mutex *material_mutex; - static SelfList<SpatialMaterial>::List dirty_materials; + static SelfList<SpatialMaterial>::List *dirty_materials; static ShaderNames *shader_names; SelfList<SpatialMaterial> element; diff --git a/scene/resources/particles_material.cpp b/scene/resources/particles_material.cpp index dae01e8d96..92c185712a 100644 --- a/scene/resources/particles_material.cpp +++ b/scene/resources/particles_material.cpp @@ -31,7 +31,7 @@ #include "particles_material.h" Mutex *ParticlesMaterial::material_mutex = NULL; -SelfList<ParticlesMaterial>::List ParticlesMaterial::dirty_materials; +SelfList<ParticlesMaterial>::List *ParticlesMaterial::dirty_materials = NULL; Map<ParticlesMaterial::MaterialKey, ParticlesMaterial::ShaderData> ParticlesMaterial::shader_map; ParticlesMaterial::ShaderNames *ParticlesMaterial::shader_names = NULL; @@ -41,6 +41,8 @@ void ParticlesMaterial::init_shaders() { material_mutex = Mutex::create(); #endif + dirty_materials = memnew(SelfList<ParticlesMaterial>::List); + shader_names = memnew(ShaderNames); shader_names->spread = "spread"; @@ -106,12 +108,15 @@ void ParticlesMaterial::finish_shaders() { memdelete(material_mutex); #endif + memdelete(dirty_materials); + dirty_materials = NULL; + memdelete(shader_names); } void ParticlesMaterial::_update_shader() { - dirty_materials.remove(&element); + dirty_materials->remove(&element); MaterialKey mk = _compute_key(); if (mk.key == current_key.key) @@ -584,9 +589,9 @@ void ParticlesMaterial::flush_changes() { if (material_mutex) material_mutex->lock(); - while (dirty_materials.first()) { + while (dirty_materials->first()) { - dirty_materials.first()->self()->_update_shader(); + dirty_materials->first()->self()->_update_shader(); } if (material_mutex) @@ -599,7 +604,7 @@ void ParticlesMaterial::_queue_shader_change() { material_mutex->lock(); if (!element.in_list()) { - dirty_materials.add(&element); + dirty_materials->add(&element); } if (material_mutex) diff --git a/scene/resources/particles_material.h b/scene/resources/particles_material.h index 06ebb3c4dc..20b505532e 100644 --- a/scene/resources/particles_material.h +++ b/scene/resources/particles_material.h @@ -126,7 +126,7 @@ private: } static Mutex *material_mutex; - static SelfList<ParticlesMaterial>::List dirty_materials; + static SelfList<ParticlesMaterial>::List *dirty_materials; struct ShaderNames { StringName spread; diff --git a/scene/resources/primitive_meshes.cpp b/scene/resources/primitive_meshes.cpp index dafdddd990..6dedb74fad 100644 --- a/scene/resources/primitive_meshes.cpp +++ b/scene/resources/primitive_meshes.cpp @@ -306,7 +306,7 @@ void CapsuleMesh::_create_mesh_array(Array &p_arr) const { Vector3 p = Vector3(x * radius * w, y * radius * w, z); points.push_back(p + Vector3(0.0, 0.0, 0.5 * mid_height)); normals.push_back(p.normalized()); - ADD_TANGENT(-y, x, 0.0, -1.0) + ADD_TANGENT(-y, x, 0.0, 1.0) uvs.push_back(Vector2(u, v * onethird)); point++; @@ -345,7 +345,7 @@ void CapsuleMesh::_create_mesh_array(Array &p_arr) const { Vector3 p = Vector3(x * radius, y * radius, z); points.push_back(p); normals.push_back(Vector3(x, y, 0.0)); - ADD_TANGENT(-y, x, 0.0, -1.0) + ADD_TANGENT(-y, x, 0.0, 1.0) uvs.push_back(Vector2(u, onethird + (v * onethird))); point++; @@ -385,7 +385,7 @@ void CapsuleMesh::_create_mesh_array(Array &p_arr) const { Vector3 p = Vector3(x * radius * w, y * radius * w, z); points.push_back(p + Vector3(0.0, 0.0, -0.5 * mid_height)); normals.push_back(p.normalized()); - ADD_TANGENT(-y, x, 0.0, -1.0) + ADD_TANGENT(-y, x, 0.0, 1.0) uvs.push_back(Vector2(u, twothirds + ((v - 1.0) * onethird))); point++; @@ -514,14 +514,14 @@ void CubeMesh::_create_mesh_array(Array &p_arr) const { // front points.push_back(Vector3(x, -y, -start_pos.z)); // double negative on the Z! normals.push_back(Vector3(0.0, 0.0, 1.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(u, v)); point++; // back points.push_back(Vector3(-x, -y, start_pos.z)); normals.push_back(Vector3(0.0, 0.0, -1.0)); - ADD_TANGENT(-1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(-1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(twothirds + u, v)); point++; @@ -568,14 +568,14 @@ void CubeMesh::_create_mesh_array(Array &p_arr) const { // right points.push_back(Vector3(-start_pos.x, -y, -z)); normals.push_back(Vector3(1.0, 0.0, 0.0)); - ADD_TANGENT(0.0, 0.0, -1.0, -1.0); + ADD_TANGENT(0.0, 0.0, -1.0, 1.0); uvs.push_back(Vector2(onethird + u, v)); point++; // left points.push_back(Vector3(start_pos.x, -y, z)); normals.push_back(Vector3(-1.0, 0.0, 0.0)); - ADD_TANGENT(0.0, 0.0, 1.0, -1.0); + ADD_TANGENT(0.0, 0.0, 1.0, 1.0); uvs.push_back(Vector2(u, 0.5 + v)); point++; @@ -622,14 +622,14 @@ void CubeMesh::_create_mesh_array(Array &p_arr) const { // top points.push_back(Vector3(-x, -start_pos.y, -z)); normals.push_back(Vector3(0.0, 1.0, 0.0)); - ADD_TANGENT(-1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(-1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(onethird + u, 0.5 + v)); point++; // bottom points.push_back(Vector3(x, start_pos.y, -z)); normals.push_back(Vector3(0.0, -1.0, 0.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(twothirds + u, 0.5 + v)); point++; @@ -773,7 +773,7 @@ void CylinderMesh::_create_mesh_array(Array &p_arr) const { Vector3 p = Vector3(x * radius, y, z * radius); points.push_back(p); normals.push_back(Vector3(x, 0.0, z)); - ADD_TANGENT(z, 0.0, -x, -1.0) + ADD_TANGENT(z, 0.0, -x, 1.0) uvs.push_back(Vector2(u, v * 0.5)); point++; @@ -799,7 +799,7 @@ void CylinderMesh::_create_mesh_array(Array &p_arr) const { thisrow = point; points.push_back(Vector3(0.0, y, 0.0)); normals.push_back(Vector3(0.0, 1.0, 0.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0) + ADD_TANGENT(1.0, 0.0, 0.0, 1.0) uvs.push_back(Vector2(0.25, 0.75)); point++; @@ -816,7 +816,7 @@ void CylinderMesh::_create_mesh_array(Array &p_arr) const { Vector3 p = Vector3(x * top_radius, y, z * top_radius); points.push_back(p); normals.push_back(Vector3(0.0, 1.0, 0.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0) + ADD_TANGENT(1.0, 0.0, 0.0, 1.0) uvs.push_back(Vector2(u, v)); point++; @@ -835,7 +835,7 @@ void CylinderMesh::_create_mesh_array(Array &p_arr) const { thisrow = point; points.push_back(Vector3(0.0, y, 0.0)); normals.push_back(Vector3(0.0, -1.0, 0.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0) + ADD_TANGENT(1.0, 0.0, 0.0, 1.0) uvs.push_back(Vector2(0.75, 0.75)); point++; @@ -852,7 +852,7 @@ void CylinderMesh::_create_mesh_array(Array &p_arr) const { Vector3 p = Vector3(x * bottom_radius, y, z * bottom_radius); points.push_back(p); normals.push_back(Vector3(0.0, -1.0, 0.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0) + ADD_TANGENT(1.0, 0.0, 0.0, 1.0) uvs.push_back(Vector2(u, v)); point++; @@ -982,7 +982,7 @@ void PlaneMesh::_create_mesh_array(Array &p_arr) const { points.push_back(Vector3(-x, 0.0, -z)); normals.push_back(Vector3(0.0, 1.0, 0.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(1.0 - u, 1.0 - v)); /* 1.0 - uv to match orientation with Quad */ point++; @@ -1108,14 +1108,14 @@ void PrismMesh::_create_mesh_array(Array &p_arr) const { /* front */ points.push_back(Vector3(start_x + x, -y, -start_pos.z)); // double negative on the Z! normals.push_back(Vector3(0.0, 0.0, 1.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(offset_front + u, v)); point++; /* back */ points.push_back(Vector3(start_x + scaled_size_x - x, -y, start_pos.z)); normals.push_back(Vector3(0.0, 0.0, -1.0)); - ADD_TANGENT(-1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(-1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(twothirds + offset_back + u, v)); point++; @@ -1187,14 +1187,14 @@ void PrismMesh::_create_mesh_array(Array &p_arr) const { /* right */ points.push_back(Vector3(right, -y, -z)); normals.push_back(normal_right); - ADD_TANGENT(0.0, 0.0, -1.0, -1.0); + ADD_TANGENT(0.0, 0.0, -1.0, 1.0); uvs.push_back(Vector2(onethird + u, v)); point++; /* left */ points.push_back(Vector3(left, -y, z)); normals.push_back(normal_left); - ADD_TANGENT(0.0, 0.0, 1.0, -1.0); + ADD_TANGENT(0.0, 0.0, 1.0, 1.0); uvs.push_back(Vector2(u, 0.5 + v)); point++; @@ -1241,7 +1241,7 @@ void PrismMesh::_create_mesh_array(Array &p_arr) const { /* bottom */ points.push_back(Vector3(x, start_pos.y, -z)); normals.push_back(Vector3(0.0, -1.0, 0.0)); - ADD_TANGENT(1.0, 0.0, 0.0, -1.0); + ADD_TANGENT(1.0, 0.0, 0.0, 1.0); uvs.push_back(Vector2(twothirds + u, 0.5 + v)); point++; @@ -1382,7 +1382,7 @@ void QuadMesh::_create_mesh_array(Array &p_arr) const { tangents.set(i * 4 + 0, 1.0); tangents.set(i * 4 + 1, 0.0); tangents.set(i * 4 + 2, 0.0); - tangents.set(i * 4 + 3, -1.0); + tangents.set(i * 4 + 3, 1.0); static const Vector2 quad_uv[4] = { Vector2(0, 1), @@ -1468,7 +1468,7 @@ void SphereMesh::_create_mesh_array(Array &p_arr) const { points.push_back(p); normals.push_back(p.normalized()); }; - ADD_TANGENT(z, 0.0, -x, -1.0) + ADD_TANGENT(z, 0.0, -x, 1.0) uvs.push_back(Vector2(u, v)); point++; diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index 5d4c7861e3..842252d5d9 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -764,10 +764,22 @@ void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const } //mikktspace callbacks +namespace { +struct TangentGenerationContextUserData { + Vector<List<SurfaceTool::Vertex>::Element *> vertices; + Vector<List<int>::Element *> indices; +}; +} // namespace + int SurfaceTool::mikktGetNumFaces(const SMikkTSpaceContext *pContext) { - Vector<List<Vertex>::Element *> &varr = *((Vector<List<Vertex>::Element *> *)pContext->m_pUserData); - return varr.size() / 3; + TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); + + if (triangle_data.indices.size() > 0) { + return triangle_data.indices.size() / 3; + } else { + return triangle_data.vertices.size() / 3; + } } int SurfaceTool::mikktGetNumVerticesOfFace(const SMikkTSpaceContext *pContext, const int iFace) { @@ -775,8 +787,17 @@ int SurfaceTool::mikktGetNumVerticesOfFace(const SMikkTSpaceContext *pContext, c } void SurfaceTool::mikktGetPosition(const SMikkTSpaceContext *pContext, float fvPosOut[], const int iFace, const int iVert) { - Vector<List<Vertex>::Element *> &varr = *((Vector<List<Vertex>::Element *> *)pContext->m_pUserData); - Vector3 v = varr[iFace * 3 + iVert]->get().vertex; + TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); + Vector3 v; + if (triangle_data.indices.size() > 0) { + int index = triangle_data.indices[iFace * 3 + iVert]->get(); + if (index < triangle_data.vertices.size()) { + v = triangle_data.vertices[index]->get().vertex; + } + } else { + v = triangle_data.vertices[iFace * 3 + iVert]->get().vertex; + } + fvPosOut[0] = v.x; fvPosOut[1] = v.y; fvPosOut[2] = v.z; @@ -784,38 +805,56 @@ void SurfaceTool::mikktGetPosition(const SMikkTSpaceContext *pContext, float fvP void SurfaceTool::mikktGetNormal(const SMikkTSpaceContext *pContext, float fvNormOut[], const int iFace, const int iVert) { - Vector<List<Vertex>::Element *> &varr = *((Vector<List<Vertex>::Element *> *)pContext->m_pUserData); - Vector3 v = varr[iFace * 3 + iVert]->get().normal; + TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); + Vector3 v; + if (triangle_data.indices.size() > 0) { + int index = triangle_data.indices[iFace * 3 + iVert]->get(); + if (index < triangle_data.vertices.size()) { + v = triangle_data.vertices[index]->get().normal; + } + } else { + v = triangle_data.vertices[iFace * 3 + iVert]->get().normal; + } + fvNormOut[0] = v.x; fvNormOut[1] = v.y; fvNormOut[2] = v.z; } void SurfaceTool::mikktGetTexCoord(const SMikkTSpaceContext *pContext, float fvTexcOut[], const int iFace, const int iVert) { - Vector<List<Vertex>::Element *> &varr = *((Vector<List<Vertex>::Element *> *)pContext->m_pUserData); - Vector2 v = varr[iFace * 3 + iVert]->get().uv; + TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); + Vector2 v; + if (triangle_data.indices.size() > 0) { + int index = triangle_data.indices[iFace * 3 + iVert]->get(); + if (index < triangle_data.vertices.size()) { + v = triangle_data.vertices[index]->get().uv; + } + } else { + v = triangle_data.vertices[iFace * 3 + iVert]->get().uv; + } + fvTexcOut[0] = v.x; fvTexcOut[1] = v.y; - //fvTexcOut[1]=1.0-v.y; } void SurfaceTool::mikktSetTSpaceDefault(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fvBiTangent[], const float fMagS, const float fMagT, const tbool bIsOrientationPreserving, const int iFace, const int iVert) { - Vector<List<Vertex>::Element *> &varr = *((Vector<List<Vertex>::Element *> *)pContext->m_pUserData); - Vertex *vtx = &varr[iFace * 3 + iVert]->get(); - - vtx->tangent = Vector3(fvTangent[0], fvTangent[1], fvTangent[2]); - vtx->binormal = Vector3(fvBiTangent[0], fvBiTangent[1], fvBiTangent[2]); -} - -void SurfaceTool::mikktSetTSpaceBasic(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fSign, const int iFace, const int iVert) { - - Vector<List<Vertex>::Element *> &varr = *((Vector<List<Vertex>::Element *> *)pContext->m_pUserData); - Vertex &vtx = varr[iFace * 3 + iVert]->get(); + TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); + Vertex *vtx = NULL; + if (triangle_data.indices.size() > 0) { + int index = triangle_data.indices[iFace * 3 + iVert]->get(); + if (index < triangle_data.vertices.size()) { + vtx = &triangle_data.vertices[index]->get(); + } + } else { + vtx = &triangle_data.vertices[iFace * 3 + iVert]->get(); + } - vtx.tangent = Vector3(fvTangent[0], fvTangent[1], fvTangent[2]); - vtx.binormal = vtx.normal.cross(vtx.tangent) * fSign; + if (vtx != NULL) { + vtx->tangent = Vector3(fvTangent[0], fvTangent[1], fvTangent[2]); + vtx->binormal = Vector3(-fvBiTangent[0], -fvBiTangent[1], -fvBiTangent[2]); // for some reason these are reversed, something with the coordinate system in Godot + } } void SurfaceTool::generate_tangents() { @@ -823,10 +862,6 @@ void SurfaceTool::generate_tangents() { ERR_FAIL_COND(!(format & Mesh::ARRAY_FORMAT_TEX_UV)); ERR_FAIL_COND(!(format & Mesh::ARRAY_FORMAT_NORMAL)); - bool indexed = index_array.size() > 0; - if (indexed) - deindex(); - SMikkTSpaceInterface mkif; mkif.m_getNormal = mikktGetNormal; mkif.m_getNumFaces = mikktGetNumFaces; @@ -839,24 +874,25 @@ void SurfaceTool::generate_tangents() { SMikkTSpaceContext msc; msc.m_pInterface = &mkif; - Vector<List<Vertex>::Element *> vtx; - vtx.resize(vertex_array.size()); + TangentGenerationContextUserData triangle_data; + triangle_data.vertices.resize(vertex_array.size()); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next()) { - vtx.write[idx++] = E; + triangle_data.vertices.write[idx++] = E; E->get().binormal = Vector3(); E->get().tangent = Vector3(); } - msc.m_pUserData = &vtx; + triangle_data.indices.resize(index_array.size()); + idx = 0; + for (List<int>::Element *E = index_array.front(); E; E = E->next()) { + triangle_data.indices.write[idx++] = E; + } + msc.m_pUserData = &triangle_data; bool res = genTangSpaceDefault(&msc); ERR_FAIL_COND(!res); format |= Mesh::ARRAY_FORMAT_TANGENT; - - if (indexed) { - index(); - } } void SurfaceTool::generate_normals(bool p_flip) { diff --git a/scene/resources/surface_tool.h b/scene/resources/surface_tool.h index 459d399380..cc8599e90a 100644 --- a/scene/resources/surface_tool.h +++ b/scene/resources/surface_tool.h @@ -90,7 +90,6 @@ private: static void mikktGetPosition(const SMikkTSpaceContext *pContext, float fvPosOut[], const int iFace, const int iVert); static void mikktGetNormal(const SMikkTSpaceContext *pContext, float fvNormOut[], const int iFace, const int iVert); static void mikktGetTexCoord(const SMikkTSpaceContext *pContext, float fvTexcOut[], const int iFace, const int iVert); - static void mikktSetTSpaceBasic(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fSign, const int iFace, const int iVert); static void mikktSetTSpaceDefault(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fvBiTangent[], const float fMagS, const float fMagT, const tbool bIsOrientationPreserving, const int iFace, const int iVert); diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index 682bfebdd2..4f4d375481 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -994,11 +994,11 @@ void AtlasTexture::_bind_methods() { void AtlasTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate, bool p_transpose, const Ref<Texture> &p_normal_map) const { - Rect2 rc = region; - if (!atlas.is_valid()) return; + Rect2 rc = region; + if (rc.size.width == 0) { rc.size.width = atlas->get_width(); } @@ -1013,11 +1013,11 @@ void AtlasTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_m void AtlasTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose, const Ref<Texture> &p_normal_map) const { - Rect2 rc = region; - if (!atlas.is_valid()) return; + Rect2 rc = region; + if (rc.size.width == 0) { rc.size.width = atlas->get_width(); } @@ -1048,11 +1048,11 @@ void AtlasTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, cons bool AtlasTexture::get_rect_region(const Rect2 &p_rect, const Rect2 &p_src_rect, Rect2 &r_rect, Rect2 &r_src_rect) const { - Rect2 rc = region; - if (!atlas.is_valid()) return false; + Rect2 rc = region; + Rect2 src = p_src_rect; if (src.size == Size2()) { src.size = rc.size; @@ -1084,11 +1084,13 @@ bool AtlasTexture::get_rect_region(const Rect2 &p_rect, const Rect2 &p_src_rect, bool AtlasTexture::is_pixel_opaque(int p_x, int p_y) const { - if (atlas.is_valid()) { - return atlas->is_pixel_opaque(p_x + region.position.x + margin.position.x, p_x + region.position.y + margin.position.y); - } + if (!atlas.is_valid()) + return true; - return true; + int x = p_x + region.position.x + margin.position.x; + int y = p_y + region.position.y + margin.position.y; + + return atlas->is_pixel_opaque(x, y); } AtlasTexture::AtlasTexture() { diff --git a/scene/resources/theme.cpp b/scene/resources/theme.cpp index 8c01a642ae..3eb652ecd9 100644 --- a/scene/resources/theme.cpp +++ b/scene/resources/theme.cpp @@ -761,411 +761,3 @@ Theme::Theme() { Theme::~Theme() { } - -RES ResourceFormatLoaderTheme::load(const String &p_path, const String &p_original_path, Error *r_error) { - if (r_error) - *r_error = ERR_CANT_OPEN; - - Error err; - FileAccess *f = FileAccess::open(p_path, FileAccess::READ, &err); - - ERR_EXPLAIN("Unable to open theme file: " + p_path); - ERR_FAIL_COND_V(err, RES()); - String base_path = p_path.get_base_dir(); - Ref<Theme> theme(memnew(Theme)); - Map<StringName, Variant> library; - if (r_error) - *r_error = ERR_FILE_CORRUPT; - - bool reading_library = false; - int line = 0; - - while (!f->eof_reached()) { - - String l = f->get_line().strip_edges(); - line++; - - int comment = l.find(";"); - if (comment != -1) - l = l.substr(0, comment); - if (l == "") - continue; - - if (l.begins_with("[")) { - if (l == "[library]") { - reading_library = true; - } else if (l == "[theme]") { - reading_library = false; - } else { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Unknown section type: '" + l + "'."); - ERR_FAIL_V(RES()); - } - continue; - } - - int eqpos = l.find("="); - if (eqpos == -1) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Expected '='."); - ERR_FAIL_V(RES()); - } - - String right = l.substr(eqpos + 1, l.length()).strip_edges(); - if (right == "") { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Expected value after '='."); - ERR_FAIL_V(RES()); - } - - Variant value; - - if (right.is_valid_integer()) { - //is number - value = right.to_int(); - } else if (right.is_valid_html_color()) { - //is html color - value = Color::html(right); - } else if (right.begins_with("@")) { //reference - - String reference = right.substr(1, right.length()); - if (!library.has(reference)) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid reference to '" + reference + "'."); - ERR_FAIL_V(RES()); - } - - value = library[reference]; - - } else if (right.begins_with("default")) { //use default - //do none - } else { - //attempt to parse a constructor - int popenpos = right.find("("); - - if (popenpos == -1) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid constructor syntax: " + right); - ERR_FAIL_V(RES()); - } - - int pclosepos = right.find_last(")"); - - if (pclosepos == -1) { - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid constructor parameter syntax: " + right); - ERR_FAIL_V(RES()); - } - - String type = right.substr(0, popenpos); - String param = right.substr(popenpos + 1, pclosepos - popenpos - 1); - - if (type == "icon") { - - String path; - - if (param.is_abs_path()) - path = param; - else - path = base_path + "/" + param; - - Ref<Texture> texture = ResourceLoader::load(path); - if (!texture.is_valid()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Couldn't find icon at path: " + path); - ERR_FAIL_V(RES()); - } - - value = texture; - - } else if (type == "sbox") { - - String path; - - if (param.is_abs_path()) - path = param; - else - path = base_path + "/" + param; - - Ref<StyleBox> stylebox = ResourceLoader::load(path); - if (!stylebox.is_valid()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Couldn't find stylebox at path: " + path); - ERR_FAIL_V(RES()); - } - - value = stylebox; - - } else if (type == "sboxt") { - - Vector<String> params = param.split(","); - if (params.size() != 5 && params.size() != 9) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid param count for sboxt(): '" + right + "'."); - ERR_FAIL_V(RES()); - } - - String path = params[0]; - - if (!param.is_abs_path()) - path = base_path + "/" + path; - - Ref<Texture> tex = ResourceLoader::load(path); - if (tex.is_null()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Could not open texture for sboxt at path: '" + params[0] + "'."); - ERR_FAIL_V(RES()); - } - - Ref<StyleBoxTexture> sbtex(memnew(StyleBoxTexture)); - - sbtex->set_texture(tex); - - for (int i = 0; i < 4; i++) { - if (!params[i + 1].is_valid_integer()) { - - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid expand margin parameter for sboxt #" + itos(i + 1) + ", expected integer constant, got: '" + params[i + 1] + "'."); - ERR_FAIL_V(RES()); - } - - int margin = params[i + 1].to_int(); - sbtex->set_expand_margin_size(Margin(i), margin); - } - - if (params.size() == 9) { - - for (int i = 0; i < 4; i++) { - - if (!params[i + 5].is_valid_integer()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid expand margin parameter for sboxt #" + itos(i + 5) + ", expected integer constant, got: '" + params[i + 5] + "'."); - ERR_FAIL_V(RES()); - } - - int margin = params[i + 5].to_int(); - sbtex->set_margin_size(Margin(i), margin); - } - } - - value = sbtex; - } else if (type == "sboxf") { - - Vector<String> params = param.split(","); - if (params.size() < 2) { - - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid param count for sboxf(): '" + right + "'."); - ERR_FAIL_V(RES()); - } - - Ref<StyleBoxFlat> sbflat(memnew(StyleBoxFlat)); - - if (!params[0].is_valid_integer()) { - - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Expected integer numeric constant for parameter 0 (border size)."); - ERR_FAIL_V(RES()); - } - - sbflat->set_border_width_all(params[0].to_int()); - - if (!params[0].is_valid_integer()) { - - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Expected integer numeric constant for parameter 0 (border size)."); - ERR_FAIL_V(RES()); - } - - int left = MIN(params.size() - 1, 3); - - int ccodes = 0; - - for (int i = 0; i < left; i++) { - - if (params[i + 1].is_valid_html_color()) - ccodes++; - else - break; - } - - Color normal; - Color bright; - Color dark; - - if (ccodes < 1) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Expected at least 1, 2 or 3 html color codes."); - ERR_FAIL_V(RES()); - } else if (ccodes == 1) { - - normal = Color::html(params[1]); - bright = Color::html(params[1]); - dark = Color::html(params[1]); - } else if (ccodes == 2) { - - normal = Color::html(params[1]); - bright = Color::html(params[2]); - dark = Color::html(params[2]); - } else { - - normal = Color::html(params[1]); - bright = Color::html(params[2]); - dark = Color::html(params[3]); - } - - sbflat->set_border_color_all(bright); - // sbflat->set_dark_color(dark); - sbflat->set_bg_color(normal); - - if (params.size() == ccodes + 5) { - //margins - for (int i = 0; i < 4; i++) { - - if (!params[i + ccodes + 1].is_valid_integer()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid expand margin parameter for sboxf #" + itos(i + ccodes + 1) + ", expected integer constant, got: '" + params[i + ccodes + 1] + "'."); - ERR_FAIL_V(RES()); - } - - //int margin = params[i+ccodes+1].to_int(); - //sbflat->set_margin_size(Margin(i),margin); - } - } else if (params.size() != ccodes + 1) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid amount of margin parameters for sboxt."); - ERR_FAIL_V(RES()); - } - - value = sbflat; - - } else { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid constructor type: '" + type + "'."); - ERR_FAIL_V(RES()); - } - } - - //parse left and do something with it - String left = l.substr(0, eqpos); - - if (reading_library) { - - left = left.strip_edges(); - if (!left.is_valid_identifier()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": <LibraryItem> is not a valid identifier."); - ERR_FAIL_V(RES()); - } - if (library.has(left)) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Already in library: '" + left + "'."); - ERR_FAIL_V(RES()); - } - - library[left] = value; - } else { - - int pointpos = left.find("."); - if (pointpos == -1) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Expected 'control.item=..' assign syntax."); - ERR_FAIL_V(RES()); - } - - String control = left.substr(0, pointpos).strip_edges(); - if (!control.is_valid_identifier()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": <Control> is not a valid identifier."); - ERR_FAIL_V(RES()); - } - String item = left.substr(pointpos + 1, left.size()).strip_edges(); - if (!item.is_valid_identifier()) { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": <Item> is not a valid identifier."); - ERR_FAIL_V(RES()); - } - - if (value.get_type() == Variant::NIL) { - //try to use exiting - if (Theme::get_default()->has_stylebox(item, control)) - value = Theme::get_default()->get_stylebox(item, control); - else if (Theme::get_default()->has_font(item, control)) - value = Theme::get_default()->get_font(item, control); - else if (Theme::get_default()->has_icon(item, control)) - value = Theme::get_default()->get_icon(item, control); - else if (Theme::get_default()->has_color(item, control)) - value = Theme::get_default()->get_color(item, control); - else if (Theme::get_default()->has_constant(item, control)) - value = Theme::get_default()->get_constant(item, control); - else { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Default not present for: '" + control + "." + item + "'."); - ERR_FAIL_V(RES()); - } - } - - if (value.get_type() == Variant::OBJECT) { - - Ref<Resource> res = value; - if (!res.is_valid()) { - - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid resource (NULL)."); - ERR_FAIL_V(RES()); - } - - if (Object::cast_to<StyleBox>(*res)) { - theme->set_stylebox(item, control, res); - } else if (Object::cast_to<Font>(*res)) { - theme->set_font(item, control, res); - } else if (Object::cast_to<Font>(*res)) { - theme->set_font(item, control, res); - } else if (Object::cast_to<Texture>(*res)) { - theme->set_icon(item, control, res); - } else { - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Invalid resource type."); - ERR_FAIL_V(RES()); - } - } else if (value.get_type() == Variant::COLOR) { - - theme->set_color(item, control, value); - - } else if (value.get_type() == Variant::INT) { - - theme->set_constant(item, control, value); - - } else { - - memdelete(f); - ERR_EXPLAIN(p_path + ":" + itos(line) + ": Couldn't even determine what this setting is! what did you do!?"); - ERR_FAIL_V(RES()); - } - } - } - - f->close(); - memdelete(f); - - if (r_error) - *r_error = OK; - - return theme; -} - -void ResourceFormatLoaderTheme::get_recognized_extensions(List<String> *p_extensions) const { - - p_extensions->push_back("theme"); -} - -bool ResourceFormatLoaderTheme::handles_type(const String &p_type) const { - - return p_type == "Theme"; -} - -String ResourceFormatLoaderTheme::get_resource_type(const String &p_path) const { - - if (p_path.get_extension().to_lower() == "theme") - return "Theme"; - return ""; -} diff --git a/scene/resources/theme.h b/scene/resources/theme.h index c9da5f6ead..ba47c5fb3c 100644 --- a/scene/resources/theme.h +++ b/scene/resources/theme.h @@ -190,12 +190,4 @@ public: ~Theme(); }; -class ResourceFormatLoaderTheme : public ResourceFormatLoader { -public: - virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); - virtual void get_recognized_extensions(List<String> *p_extensions) const; - virtual bool handles_type(const String &p_type) const; - virtual String get_resource_type(const String &p_path) const; -}; - #endif diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp index f852ecd7eb..c2c2c0ff32 100644 --- a/scene/resources/tile_set.cpp +++ b/scene/resources/tile_set.cpp @@ -129,6 +129,22 @@ bool TileSet::_set(const StringName &p_name, const Variant &p_value) { } p.pop_front(); } + } else if (what == "z_index_map") { + tile_map[id].autotile_data.z_index_map.clear(); + Array p = p_value; + Vector3 val; + Vector2 v; + int z_index; + while (p.size() > 0) { + val = p[0]; + if (val.z != 0) { + v.x = val.x; + v.y = val.y; + z_index = (int)val.z; + tile_map[id].autotile_data.z_index_map[v] = z_index; + } + p.pop_front(); + } } } else if (what == "shape") tile_set_shape(id, 0, p_value); @@ -228,6 +244,19 @@ bool TileSet::_get(const StringName &p_name, Variant &r_ret) const { } } r_ret = p; + } else if (what == "z_index_map") { + Array p; + Vector3 v; + for (Map<Vector2, int>::Element *E = tile_map[id].autotile_data.z_index_map.front(); E; E = E->next()) { + if (E->value() != 0) { + //Don't save default value + v.x = E->key().x; + v.y = E->key().y; + v.z = E->value(); + p.push_back(v); + } + } + r_ret = p; } } else if (what == "shape") r_ret = tile_get_shape(id, 0); @@ -278,6 +307,7 @@ void TileSet::_get_property_list(List<PropertyInfo> *p_list) const { p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/occluder_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/navpoly_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/priority_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); + p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/z_index_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); } else if (tile_get_tile_mode(id) == ATLAS_TILE) { p_list->push_back(PropertyInfo(Variant::VECTOR2, pre + "autotile/icon_coordinate", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::VECTOR2, pre + "autotile/tile_size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); @@ -476,6 +506,23 @@ int TileSet::autotile_get_subtile_priority(int p_id, const Vector2 &p_coord) { return 1; } +void TileSet::autotile_set_z_index(int p_id, const Vector2 &p_coord, int p_z_index) { + + ERR_FAIL_COND(!tile_map.has(p_id)); + tile_map[p_id].autotile_data.z_index_map[p_coord] = p_z_index; + emit_changed(); +} + +int TileSet::autotile_get_z_index(int p_id, const Vector2 &p_coord) { + + ERR_FAIL_COND_V(!tile_map.has(p_id), 1); + if (tile_map[p_id].autotile_data.z_index_map.has(p_coord)) { + return tile_map[p_id].autotile_data.z_index_map[p_coord]; + } + //When not custom z index set return the default value + return 0; +} + const Map<Vector2, int> &TileSet::autotile_get_priority_map(int p_id) const { static Map<Vector2, int> dummy; diff --git a/scene/resources/tile_set.h b/scene/resources/tile_set.h index 1802bf12b6..2ab771b1b0 100644 --- a/scene/resources/tile_set.h +++ b/scene/resources/tile_set.h @@ -87,6 +87,7 @@ public: Map<Vector2, Ref<OccluderPolygon2D> > occluder_map; Map<Vector2, Ref<NavigationPolygon> > navpoly_map; Map<Vector2, int> priority_map; + Map<Vector2, int> z_index_map; // Default size to prevent invalid value explicit AutotileData() : @@ -172,6 +173,9 @@ public: int autotile_get_subtile_priority(int p_id, const Vector2 &p_coord); const Map<Vector2, int> &autotile_get_priority_map(int p_id) const; + void autotile_set_z_index(int p_id, const Vector2 &p_coord, int p_z_index); + int autotile_get_z_index(int p_id, const Vector2 &p_coord); + void autotile_set_bitmask(int p_id, Vector2 p_coord, uint16_t p_flag); uint16_t autotile_get_bitmask(int p_id, Vector2 p_coord); const Map<Vector2, uint16_t> &autotile_get_bitmask_map(int p_id); diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp index 02a0bed964..21073a1cd1 100644 --- a/servers/audio/audio_stream.cpp +++ b/servers/audio/audio_stream.cpp @@ -30,6 +30,7 @@ #include "audio_stream.h" #include "core/os/os.h" +#include "core/project_settings.h" ////////////////////////////// @@ -184,6 +185,12 @@ float AudioStreamPlaybackMicrophone::get_stream_sampling_rate() { } void AudioStreamPlaybackMicrophone::start(float p_from_pos) { + + if (!GLOBAL_GET("audio/enable_audio_input")) { + WARN_PRINTS("Need to enable Project settings > Audio > Enable Audio Input option to use capturing."); + return; + } + input_ofs = 0; AudioDriver::get_singleton()->capture_start(); diff --git a/servers/audio/effects/audio_effect_record.cpp b/servers/audio/effects/audio_effect_record.cpp index a0094f66b8..5a583243ca 100644 --- a/servers/audio/effects/audio_effect_record.cpp +++ b/servers/audio/effects/audio_effect_record.cpp @@ -44,20 +44,25 @@ void AudioEffectRecordInstance::process(const AudioFrame *p_src_frames, AudioFra } } +void AudioEffectRecordInstance::_update_buffer() { + //Case: Frames are remaining in the buffer + while (ring_buffer_read_pos < ring_buffer_pos) { + //Read from the buffer into recording_data + _io_store_buffer(); + } +} + +void AudioEffectRecordInstance::_update(void *userdata) { + AudioEffectRecordInstance *ins = (AudioEffectRecordInstance *)userdata; + ins->_update_buffer(); +} + bool AudioEffectRecordInstance::process_silence() const { return true; } void AudioEffectRecordInstance::_io_thread_process() { - - //Reset recorder status thread_active = true; - ring_buffer_pos = 0; - ring_buffer_read_pos = 0; - - //We start a new recording - recording_data.resize(0); //Clear data completely and reset length - is_recording = true; while (is_recording) { //Check: The current recording has been requested to stop @@ -65,13 +70,9 @@ void AudioEffectRecordInstance::_io_thread_process() { is_recording = false; } - //Case: Frames are remaining in the buffer - if (ring_buffer_read_pos < ring_buffer_pos) { - //Read from the buffer into recording_data - _io_store_buffer(); - } - //Case: The buffer is empty - else if (is_recording) { + _update_buffer(); + + if (is_recording) { //Wait to avoid too much busy-wait OS::get_singleton()->delay_usec(500); } @@ -103,7 +104,35 @@ void AudioEffectRecordInstance::_thread_callback(void *_instance) { } void AudioEffectRecordInstance::init() { + //Reset recorder status + ring_buffer_pos = 0; + ring_buffer_read_pos = 0; + + //We start a new recording + recording_data.resize(0); //Clear data completely and reset length + is_recording = true; + +#ifdef NO_THREADS + AudioServer::get_singleton()->add_update_callback(&AudioEffectRecordInstance::_update, this); +#else io_thread = Thread::create(_thread_callback, this); +#endif +} + +void AudioEffectRecordInstance::finish() { + +#ifdef NO_THREADS + AudioServer::get_singleton()->remove_update_callback(&AudioEffectRecordInstance::_update, this); +#else + if (thread_active) { + Thread::wait_to_finish(io_thread); + } +#endif +} + +AudioEffectRecordInstance::~AudioEffectRecordInstance() { + + finish(); } Ref<AudioEffectInstance> AudioEffectRecord::instance() { @@ -145,8 +174,8 @@ Ref<AudioEffectInstance> AudioEffectRecord::instance() { void AudioEffectRecord::ensure_thread_stopped() { recording_active = false; - if (current_instance != 0 && current_instance->thread_active) { - Thread::wait_to_finish(current_instance->io_thread); + if (current_instance != 0) { + current_instance->finish(); } } diff --git a/servers/audio/effects/audio_effect_record.h b/servers/audio/effects/audio_effect_record.h index 4b8ee2bcdd..c5e4866f17 100644 --- a/servers/audio/effects/audio_effect_record.h +++ b/servers/audio/effects/audio_effect_record.h @@ -62,14 +62,18 @@ class AudioEffectRecordInstance : public AudioEffectInstance { void _io_store_buffer(); static void _thread_callback(void *_instance); void _init_recording(); + void _update_buffer(); + static void _update(void *userdata); public: void init(); + void finish(); virtual void process(const AudioFrame *p_src_frames, AudioFrame *p_dst_frames, int p_frame_count); virtual bool process_silence() const; AudioEffectRecordInstance() : thread_active(false) {} + ~AudioEffectRecordInstance(); }; class AudioEffectRecord : public AudioEffect { diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp index 6fd996c3d3..0073f9e149 100644 --- a/servers/audio_server.cpp +++ b/servers/audio_server.cpp @@ -172,6 +172,7 @@ int AudioDriverManager::get_driver_count() { } void AudioDriverManager::initialize(int p_driver) { + GLOBAL_DEF_RST("audio/enable_audio_input", false); int failed_driver = -1; // Check if there is a selected driver @@ -737,6 +738,12 @@ float AudioServer::get_bus_volume_db(int p_bus) const { return buses[p_bus]->volume_db; } +int AudioServer::get_bus_channels(int p_bus) const { + + ERR_FAIL_INDEX_V(p_bus, buses.size(), 0); + return buses[p_bus]->channels.size(); +} + void AudioServer::set_bus_send(int p_bus, const StringName &p_send) { ERR_FAIL_INDEX(p_bus, buses.size()); @@ -1021,6 +1028,11 @@ void AudioServer::update() { AudioDriver::get_singleton()->reset_profiling_time(); prof_time = 0; #endif + + for (Set<CallbackItem>::Element *E = update_callbacks.front(); E; E = E->next()) { + + E->get().callback(E->get().userdata); + } } void AudioServer::load_default_bus_layout() { @@ -1146,6 +1158,25 @@ void AudioServer::remove_callback(AudioCallback p_callback, void *p_userdata) { unlock(); } +void AudioServer::add_update_callback(AudioCallback p_callback, void *p_userdata) { + lock(); + CallbackItem ci; + ci.callback = p_callback; + ci.userdata = p_userdata; + update_callbacks.insert(ci); + unlock(); +} + +void AudioServer::remove_update_callback(AudioCallback p_callback, void *p_userdata) { + + lock(); + CallbackItem ci; + ci.callback = p_callback; + ci.userdata = p_userdata; + update_callbacks.erase(ci); + unlock(); +} + void AudioServer::set_bus_layout(const Ref<AudioBusLayout> &p_bus_layout) { ERR_FAIL_COND(p_bus_layout.is_null() || p_bus_layout->buses.size() == 0); @@ -1267,6 +1298,8 @@ void AudioServer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_bus_name", "bus_idx"), &AudioServer::get_bus_name); ClassDB::bind_method(D_METHOD("get_bus_index", "bus_name"), &AudioServer::get_bus_index); + ClassDB::bind_method(D_METHOD("get_bus_channels", "bus_idx"), &AudioServer::get_bus_channels); + ClassDB::bind_method(D_METHOD("set_bus_volume_db", "bus_idx", "volume_db"), &AudioServer::set_bus_volume_db); ClassDB::bind_method(D_METHOD("get_bus_volume_db", "bus_idx"), &AudioServer::get_bus_volume_db); diff --git a/servers/audio_server.h b/servers/audio_server.h index 52fa84e3e6..c389e4010f 100644 --- a/servers/audio_server.h +++ b/servers/audio_server.h @@ -263,6 +263,7 @@ private: }; Set<CallbackItem> callbacks; + Set<CallbackItem> update_callbacks; friend class AudioDriver; void _driver_process(int p_frames, int32_t *p_buffer); @@ -299,6 +300,8 @@ public: String get_bus_name(int p_bus) const; int get_bus_index(const StringName &p_bus_name) const; + int get_bus_channels(int p_bus) const; + void set_bus_volume_db(int p_bus, float p_volume_db); float get_bus_volume_db(int p_bus) const; @@ -359,6 +362,9 @@ public: void add_callback(AudioCallback p_callback, void *p_userdata); void remove_callback(AudioCallback p_callback, void *p_userdata); + void add_update_callback(AudioCallback p_callback, void *p_userdata); + void remove_update_callback(AudioCallback p_callback, void *p_userdata); + void set_bus_layout(const Ref<AudioBusLayout> &p_bus_layout); Ref<AudioBusLayout> generate_bus_layout() const; diff --git a/servers/physics/body_sw.cpp b/servers/physics/body_sw.cpp index 36511f78ce..74cb724bb3 100644 --- a/servers/physics/body_sw.cpp +++ b/servers/physics/body_sw.cpp @@ -87,6 +87,10 @@ void BodySW::update_inertias() { for (int i = 0; i < get_shape_count(); i++) { + if (is_shape_disabled(i)) { + continue; + } + const ShapeSW *shape = get_shape(i); real_t area = get_shape_area(i); diff --git a/servers/physics/collision_object_sw.h b/servers/physics/collision_object_sw.h index 993799ee10..dc482baccb 100644 --- a/servers/physics/collision_object_sw.h +++ b/servers/physics/collision_object_sw.h @@ -122,6 +122,10 @@ public: void set_shape(int p_index, ShapeSW *p_shape); void set_shape_transform(int p_index, const Transform &p_transform); _FORCE_INLINE_ int get_shape_count() const { return shapes.size(); } + _FORCE_INLINE_ bool is_shape_disabled(int p_index) const { + CRASH_BAD_INDEX(p_index, shapes.size()); + return shapes[p_index].disabled; + } _FORCE_INLINE_ ShapeSW *get_shape(int p_index) const { return shapes[p_index].shape; } _FORCE_INLINE_ const Transform &get_shape_transform(int p_index) const { return shapes[p_index].xform; } _FORCE_INLINE_ const Transform &get_shape_inv_transform(int p_index) const { return shapes[p_index].xform_inv; } diff --git a/servers/physics/physics_server_sw.h b/servers/physics/physics_server_sw.h index b3c61403aa..c361d00fcc 100644 --- a/servers/physics/physics_server_sw.h +++ b/servers/physics/physics_server_sw.h @@ -348,6 +348,9 @@ public: virtual void generic_6dof_joint_set_flag(RID p_joint, Vector3::Axis, G6DOFJointAxisFlag p_flag, bool p_enable); virtual bool generic_6dof_joint_get_flag(RID p_joint, Vector3::Axis, G6DOFJointAxisFlag p_flag); + virtual void generic_6dof_joint_set_precision(RID p_joint, int precision) {} + virtual int generic_6dof_joint_get_precision(RID p_joint) { return 0; } + virtual JointType joint_get_type(RID p_joint) const; virtual void joint_set_solver_priority(RID p_joint, int p_priority); diff --git a/servers/physics_2d/body_2d_sw.cpp b/servers/physics_2d/body_2d_sw.cpp index 52362386d2..475c9ba977 100644 --- a/servers/physics_2d/body_2d_sw.cpp +++ b/servers/physics_2d/body_2d_sw.cpp @@ -61,6 +61,10 @@ void Body2DSW::update_inertias() { for (int i = 0; i < get_shape_count(); i++) { + if (is_shape_disabled(i)) { + continue; + } + const Shape2DSW *shape = get_shape(i); real_t area = get_shape_aabb(i).get_area(); diff --git a/servers/physics_2d/collision_object_2d_sw.h b/servers/physics_2d/collision_object_2d_sw.h index f256910f52..2bf8cba572 100644 --- a/servers/physics_2d/collision_object_2d_sw.h +++ b/servers/physics_2d/collision_object_2d_sw.h @@ -115,6 +115,10 @@ public: void set_shape_metadata(int p_index, const Variant &p_metadata); _FORCE_INLINE_ int get_shape_count() const { return shapes.size(); } + _FORCE_INLINE_ bool is_shape_disabled(int p_index) const { + CRASH_BAD_INDEX(p_index, shapes.size()); + return shapes[p_index].disabled; + } _FORCE_INLINE_ Shape2DSW *get_shape(int p_index) const { CRASH_BAD_INDEX(p_index, shapes.size()); return shapes[p_index].shape; diff --git a/servers/physics_server.h b/servers/physics_server.h index 15b353f768..9fb5e958c3 100644 --- a/servers/physics_server.h +++ b/servers/physics_server.h @@ -734,6 +734,9 @@ public: virtual void generic_6dof_joint_set_flag(RID p_joint, Vector3::Axis, G6DOFJointAxisFlag p_flag, bool p_enable) = 0; virtual bool generic_6dof_joint_get_flag(RID p_joint, Vector3::Axis, G6DOFJointAxisFlag p_flag) = 0; + virtual void generic_6dof_joint_set_precision(RID p_joint, int precision) = 0; + virtual int generic_6dof_joint_get_precision(RID p_joint) = 0; + /* QUERY API */ enum AreaBodyStatus { diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h index 4329203ccb..f78b4aaf5f 100644 --- a/servers/visual/rasterizer.h +++ b/servers/visual/rasterizer.h @@ -62,7 +62,7 @@ public: virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) = 0; virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) = 0; - virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, bool p_bicubic_upscale) = 0; + virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, VS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) = 0; virtual void environment_set_fog(RID p_env, bool p_enable, float p_begin, float p_end, RID p_gradient_texture) = 0; virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance, bool p_roughness) = 0; diff --git a/servers/visual/shader_types.cpp b/servers/visual/shader_types.cpp index baafe2f8d0..b5e03b4826 100644 --- a/servers/visual/shader_types.cpp +++ b/servers/visual/shader_types.cpp @@ -86,6 +86,7 @@ ShaderTypes::ShaderTypes() { shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3; + shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW"] = constt(ShaderLanguage::TYPE_VEC3); shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT; shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); @@ -118,6 +119,7 @@ ShaderTypes::ShaderTypes() { shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["WORLD_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); @@ -126,6 +128,7 @@ ShaderTypes::ShaderTypes() { shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["WORLD_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["INV_CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); @@ -229,7 +232,7 @@ ShaderTypes::ShaderTypes() { shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_VEC"] = ShaderLanguage::TYPE_VEC2; shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_HEIGHT"] = ShaderLanguage::TYPE_FLOAT; shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_COLOR"] = ShaderLanguage::TYPE_VEC4; - shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_UV"] = ShaderLanguage::TYPE_VEC2; + shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_UV"] = constt(ShaderLanguage::TYPE_VEC2); shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT"] = ShaderLanguage::TYPE_VEC4; shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["SHADOW_COLOR"] = ShaderLanguage::TYPE_VEC4; shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2); diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp index 734c295a72..26fb3cc493 100644 --- a/servers/visual/visual_server_canvas.cpp +++ b/servers/visual/visual_server_canvas.cpp @@ -339,7 +339,7 @@ void VisualServerCanvas::canvas_item_set_parent(RID p_item, RID p_parent) { Item *ysort_owner = item_owner; while (ysort_owner && ysort_owner->sort_y) { item_owner->ysort_children_count = -1; - ysort_owner = canvas_item_owner.getornull(ysort_owner->parent); + ysort_owner = canvas_item_owner.owns(ysort_owner->parent) ? canvas_item_owner.getornull(ysort_owner->parent) : NULL; } } @@ -363,7 +363,7 @@ void VisualServerCanvas::canvas_item_set_parent(RID p_item, RID p_parent) { Item *ysort_owner = item_owner; while (ysort_owner && ysort_owner->sort_y) { item_owner->ysort_children_count = -1; - ysort_owner = canvas_item_owner.getornull(ysort_owner->parent); + ysort_owner = canvas_item_owner.owns(ysort_owner->parent) ? canvas_item_owner.getornull(ysort_owner->parent) : NULL; } } else { @@ -1354,7 +1354,7 @@ bool VisualServerCanvas::free(RID p_rid) { Item *ysort_owner = item_owner; while (ysort_owner && ysort_owner->sort_y) { item_owner->ysort_children_count = -1; - ysort_owner = canvas_item_owner.getornull(ysort_owner->parent); + ysort_owner = canvas_item_owner.owns(ysort_owner->parent) ? canvas_item_owner.getornull(ysort_owner->parent) : NULL; } } } diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h index d37fe28ac6..f3a442be99 100644 --- a/servers/visual/visual_server_raster.h +++ b/servers/visual/visual_server_raster.h @@ -504,7 +504,7 @@ public: BIND6(environment_set_dof_blur_near, RID, bool, float, float, float, EnvironmentDOFBlurQuality) BIND6(environment_set_dof_blur_far, RID, bool, float, float, float, EnvironmentDOFBlurQuality) - BIND10(environment_set_glow, RID, bool, int, float, float, float, EnvironmentGlowBlendMode, float, float, bool) + BIND11(environment_set_glow, RID, bool, int, float, float, float, EnvironmentGlowBlendMode, float, float, float, bool) BIND9(environment_set_tonemap, RID, EnvironmentToneMapper, float, float, bool, float, float, float, float) diff --git a/servers/visual/visual_server_wrap_mt.h b/servers/visual/visual_server_wrap_mt.h index 1aeb2756ba..37f6323b8f 100644 --- a/servers/visual/visual_server_wrap_mt.h +++ b/servers/visual/visual_server_wrap_mt.h @@ -430,7 +430,7 @@ public: FUNC6(environment_set_dof_blur_near, RID, bool, float, float, float, EnvironmentDOFBlurQuality) FUNC6(environment_set_dof_blur_far, RID, bool, float, float, float, EnvironmentDOFBlurQuality) - FUNC10(environment_set_glow, RID, bool, int, float, float, float, EnvironmentGlowBlendMode, float, float, bool) + FUNC11(environment_set_glow, RID, bool, int, float, float, float, EnvironmentGlowBlendMode, float, float, float, bool) FUNC9(environment_set_tonemap, RID, EnvironmentToneMapper, float, float, bool, float, float, float, float) diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp index e1db123f58..34cc1cbd66 100644 --- a/servers/visual_server.cpp +++ b/servers/visual_server.cpp @@ -1909,7 +1909,7 @@ void VisualServer::_bind_methods() { ClassDB::bind_method(D_METHOD("environment_set_ambient_light", "env", "color", "energy", "sky_contibution"), &VisualServer::environment_set_ambient_light, DEFVAL(1.0), DEFVAL(0.0)); ClassDB::bind_method(D_METHOD("environment_set_dof_blur_near", "env", "enable", "distance", "transition", "far_amount", "quality"), &VisualServer::environment_set_dof_blur_near); ClassDB::bind_method(D_METHOD("environment_set_dof_blur_far", "env", "enable", "distance", "transition", "far_amount", "quality"), &VisualServer::environment_set_dof_blur_far); - ClassDB::bind_method(D_METHOD("environment_set_glow", "env", "enable", "level_flags", "intensity", "strength", "bloom_threshold", "blend_mode", "hdr_bleed_threshold", "hdr_bleed_scale", "bicubic_upscale"), &VisualServer::environment_set_glow); + ClassDB::bind_method(D_METHOD("environment_set_glow", "env", "enable", "level_flags", "intensity", "strength", "bloom_threshold", "blend_mode", "hdr_bleed_threshold", "hdr_bleed_scale", "hdr_luminance_cap", "bicubic_upscale"), &VisualServer::environment_set_glow); ClassDB::bind_method(D_METHOD("environment_set_tonemap", "env", "tone_mapper", "exposure", "white", "auto_exposure", "min_luminance", "max_luminance", "auto_exp_speed", "auto_exp_grey"), &VisualServer::environment_set_tonemap); ClassDB::bind_method(D_METHOD("environment_set_adjustment", "env", "enable", "brightness", "contrast", "saturation", "ramp"), &VisualServer::environment_set_adjustment); ClassDB::bind_method(D_METHOD("environment_set_ssr", "env", "enable", "max_steps", "fade_in", "fade_out", "depth_tolerance", "roughness"), &VisualServer::environment_set_ssr); diff --git a/servers/visual_server.h b/servers/visual_server.h index 743e010034..ad2819a95a 100644 --- a/servers/visual_server.h +++ b/servers/visual_server.h @@ -733,7 +733,7 @@ public: GLOW_BLEND_MODE_SOFTLIGHT, GLOW_BLEND_MODE_REPLACE, }; - virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, bool p_bicubic_upscale) = 0; + virtual void environment_set_glow(RID p_env, bool p_enable, int p_level_flags, float p_intensity, float p_strength, float p_bloom_threshold, EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, bool p_bicubic_upscale) = 0; enum EnvironmentToneMapper { ENV_TONE_MAPPER_LINEAR, diff --git a/thirdparty/README.md b/thirdparty/README.md index 55b693af96..e63e1fc109 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -233,7 +233,7 @@ Godot-made change marked with `// -- GODOT --` comments. ## libwebp - Upstream: https://chromium.googlesource.com/webm/libwebp/ -- Version: 1.0.0 +- Version: 1.0.1 - License: BSD-3-Clause Files extracted from upstream source: @@ -503,7 +503,7 @@ changes are marked with `// -- GODOT --` comments. ## tinyexr - Upstream: https://github.com/syoyo/tinyexr -- Version: git (2d5375f, 2018) +- Version: git (5ae30aa, 2018) - License: BSD-3-Clause Files extracted from upstream source: diff --git a/thirdparty/libwebp/src/dec/alphai_dec.h b/thirdparty/libwebp/src/dec/alphai_dec.h index e0fa281a55..a64104abeb 100644 --- a/thirdparty/libwebp/src/dec/alphai_dec.h +++ b/thirdparty/libwebp/src/dec/alphai_dec.h @@ -51,4 +51,4 @@ void WebPDeallocateAlphaMemory(VP8Decoder* const dec); } // extern "C" #endif -#endif /* WEBP_DEC_ALPHAI_DEC_H_ */ +#endif // WEBP_DEC_ALPHAI_DEC_H_ diff --git a/thirdparty/libwebp/src/dec/buffer_dec.c b/thirdparty/libwebp/src/dec/buffer_dec.c index 75eb3c40b4..3cd94eb4d9 100644 --- a/thirdparty/libwebp/src/dec/buffer_dec.c +++ b/thirdparty/libwebp/src/dec/buffer_dec.c @@ -74,7 +74,8 @@ static VP8StatusCode CheckDecBuffer(const WebPDecBuffer* const buffer) { } else { // RGB checks const WebPRGBABuffer* const buf = &buffer->u.RGBA; const int stride = abs(buf->stride); - const uint64_t size = MIN_BUFFER_SIZE(width, height, stride); + const uint64_t size = + MIN_BUFFER_SIZE(width * kModeBpp[mode], height, stride); ok &= (size <= buf->size); ok &= (stride >= width * kModeBpp[mode]); ok &= (buf->rgba != NULL); diff --git a/thirdparty/libwebp/src/dec/common_dec.h b/thirdparty/libwebp/src/dec/common_dec.h index 9995f1a51a..b158550a80 100644 --- a/thirdparty/libwebp/src/dec/common_dec.h +++ b/thirdparty/libwebp/src/dec/common_dec.h @@ -51,4 +51,4 @@ enum { MB_FEATURE_TREE_PROBS = 3, NUM_PROBAS = 11 }; -#endif // WEBP_DEC_COMMON_DEC_H_ +#endif // WEBP_DEC_COMMON_DEC_H_ diff --git a/thirdparty/libwebp/src/dec/frame_dec.c b/thirdparty/libwebp/src/dec/frame_dec.c index a9d5430d00..bda9e1a6f6 100644 --- a/thirdparty/libwebp/src/dec/frame_dec.c +++ b/thirdparty/libwebp/src/dec/frame_dec.c @@ -338,7 +338,6 @@ void VP8InitDithering(const WebPDecoderOptions* const options, for (s = 0; s < NUM_MB_SEGMENTS; ++s) { VP8QuantMatrix* const dqm = &dec->dqm_[s]; if (dqm->uv_quant_ < DITHER_AMP_TAB_SIZE) { - // TODO(skal): should we specially dither more for uv_quant_ < 0? const int idx = (dqm->uv_quant_ < 0) ? 0 : dqm->uv_quant_; dqm->dither_ = (f * kQuantToDitherAmp[idx]) >> 3; } @@ -669,15 +668,9 @@ int VP8GetThreadMethod(const WebPDecoderOptions* const options, (void)height; assert(headers == NULL || !headers->is_lossless); #if defined(WEBP_USE_THREAD) - if (width < MIN_WIDTH_FOR_THREADS) return 0; - // TODO(skal): tune the heuristic further -#if 0 - if (height < 2 * width) return 2; + if (width >= MIN_WIDTH_FOR_THREADS) return 2; #endif - return 2; -#else // !WEBP_USE_THREAD return 0; -#endif } #undef MT_CACHE_LINES diff --git a/thirdparty/libwebp/src/dec/idec_dec.c b/thirdparty/libwebp/src/dec/idec_dec.c index a371ed7500..9bc9166808 100644 --- a/thirdparty/libwebp/src/dec/idec_dec.c +++ b/thirdparty/libwebp/src/dec/idec_dec.c @@ -140,10 +140,9 @@ static void DoRemap(WebPIDecoder* const idec, ptrdiff_t offset) { if (NeedCompressedAlpha(idec)) { ALPHDecoder* const alph_dec = dec->alph_dec_; dec->alpha_data_ += offset; - if (alph_dec != NULL) { + if (alph_dec != NULL && alph_dec->vp8l_dec_ != NULL) { if (alph_dec->method_ == ALPHA_LOSSLESS_COMPRESSION) { VP8LDecoder* const alph_vp8l_dec = alph_dec->vp8l_dec_; - assert(alph_vp8l_dec != NULL); assert(dec->alpha_data_size_ >= ALPHA_HEADER_LEN); VP8LBitReaderSetBuffer(&alph_vp8l_dec->br_, dec->alpha_data_ + ALPHA_HEADER_LEN, @@ -283,10 +282,8 @@ static void RestoreContext(const MBContext* context, VP8Decoder* const dec, static VP8StatusCode IDecError(WebPIDecoder* const idec, VP8StatusCode error) { if (idec->state_ == STATE_VP8_DATA) { - VP8Io* const io = &idec->io_; - if (io->teardown != NULL) { - io->teardown(io); - } + // Synchronize the thread, clean-up and check for errors. + VP8ExitCritical((VP8Decoder*)idec->dec_, &idec->io_); } idec->state_ = STATE_ERROR; return error; @@ -451,7 +448,10 @@ static VP8StatusCode DecodeRemaining(WebPIDecoder* const idec) { VP8Decoder* const dec = (VP8Decoder*)idec->dec_; VP8Io* const io = &idec->io_; - assert(dec->ready_); + // Make sure partition #0 has been read before, to set dec to ready_. + if (!dec->ready_) { + return IDecError(idec, VP8_STATUS_BITSTREAM_ERROR); + } for (; dec->mb_y_ < dec->mb_h_; ++dec->mb_y_) { if (idec->last_mb_y_ != dec->mb_y_) { if (!VP8ParseIntraModeRow(&dec->br_, dec)) { @@ -473,6 +473,12 @@ static VP8StatusCode DecodeRemaining(WebPIDecoder* const idec) { MemDataSize(&idec->mem_) > MAX_MB_SIZE) { return IDecError(idec, VP8_STATUS_BITSTREAM_ERROR); } + // Synchronize the threads. + if (dec->mt_method_ > 0) { + if (!WebPGetWorkerInterface()->Sync(&dec->worker_)) { + return IDecError(idec, VP8_STATUS_BITSTREAM_ERROR); + } + } RestoreContext(&context, dec, token_br); return VP8_STATUS_SUSPENDED; } @@ -491,6 +497,7 @@ static VP8StatusCode DecodeRemaining(WebPIDecoder* const idec) { } // Synchronize the thread and check for errors. if (!VP8ExitCritical(dec, io)) { + idec->state_ = STATE_ERROR; // prevent re-entry in IDecError return IDecError(idec, VP8_STATUS_USER_ABORT); } dec->ready_ = 0; @@ -571,6 +578,10 @@ static VP8StatusCode IDecode(WebPIDecoder* idec) { status = DecodePartition0(idec); } if (idec->state_ == STATE_VP8_DATA) { + const VP8Decoder* const dec = (VP8Decoder*)idec->dec_; + if (dec == NULL) { + return VP8_STATUS_SUSPENDED; // can't continue if we have no decoder. + } status = DecodeRemaining(idec); } if (idec->state_ == STATE_VP8L_HEADER) { diff --git a/thirdparty/libwebp/src/dec/vp8_dec.h b/thirdparty/libwebp/src/dec/vp8_dec.h index ca85b340cf..a05405df72 100644 --- a/thirdparty/libwebp/src/dec/vp8_dec.h +++ b/thirdparty/libwebp/src/dec/vp8_dec.h @@ -182,4 +182,4 @@ WEBP_EXTERN int VP8LGetInfo( } // extern "C" #endif -#endif /* WEBP_DEC_VP8_DEC_H_ */ +#endif // WEBP_DEC_VP8_DEC_H_ diff --git a/thirdparty/libwebp/src/dec/vp8i_dec.h b/thirdparty/libwebp/src/dec/vp8i_dec.h index c929933e1c..e5e89df57d 100644 --- a/thirdparty/libwebp/src/dec/vp8i_dec.h +++ b/thirdparty/libwebp/src/dec/vp8i_dec.h @@ -32,7 +32,7 @@ extern "C" { // version numbers #define DEC_MAJ_VERSION 1 #define DEC_MIN_VERSION 0 -#define DEC_REV_VERSION 0 +#define DEC_REV_VERSION 1 // YUV-cache parameters. Cache is 32-bytes wide (= one cacheline). // Constraints are: We need to store one 16x16 block of luma samples (y), @@ -316,4 +316,4 @@ const uint8_t* VP8DecompressAlphaRows(VP8Decoder* const dec, } // extern "C" #endif -#endif /* WEBP_DEC_VP8I_DEC_H_ */ +#endif // WEBP_DEC_VP8I_DEC_H_ diff --git a/thirdparty/libwebp/src/dec/vp8l_dec.c b/thirdparty/libwebp/src/dec/vp8l_dec.c index 0570f53a77..333bb3e80d 100644 --- a/thirdparty/libwebp/src/dec/vp8l_dec.c +++ b/thirdparty/libwebp/src/dec/vp8l_dec.c @@ -362,12 +362,19 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, VP8LMetadata* const hdr = &dec->hdr_; uint32_t* huffman_image = NULL; HTreeGroup* htree_groups = NULL; + // When reading htrees, some might be unused, as the format allows it. + // We will still read them but put them in this htree_group_bogus. + HTreeGroup htree_group_bogus; HuffmanCode* huffman_tables = NULL; + HuffmanCode* huffman_tables_bogus = NULL; HuffmanCode* next = NULL; int num_htree_groups = 1; + int num_htree_groups_max = 1; int max_alphabet_size = 0; int* code_lengths = NULL; const int table_size = kTableSize[color_cache_bits]; + int* mapping = NULL; + int ok = 0; if (allow_recursion && VP8LReadBits(br, 1)) { // use meta Huffman codes. @@ -384,9 +391,41 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, // The huffman data is stored in red and green bytes. const int group = (huffman_image[i] >> 8) & 0xffff; huffman_image[i] = group; - if (group >= num_htree_groups) { - num_htree_groups = group + 1; + if (group >= num_htree_groups_max) { + num_htree_groups_max = group + 1; + } + } + // Check the validity of num_htree_groups_max. If it seems too big, use a + // smaller value for later. This will prevent big memory allocations to end + // up with a bad bitstream anyway. + // The value of 1000 is totally arbitrary. We know that num_htree_groups_max + // is smaller than (1 << 16) and should be smaller than the number of pixels + // (though the format allows it to be bigger). + if (num_htree_groups_max > 1000 || num_htree_groups_max > xsize * ysize) { + // Create a mapping from the used indices to the minimal set of used + // values [0, num_htree_groups) + mapping = (int*)WebPSafeMalloc(num_htree_groups_max, sizeof(*mapping)); + if (mapping == NULL) { + dec->status_ = VP8_STATUS_OUT_OF_MEMORY; + goto Error; + } + // -1 means a value is unmapped, and therefore unused in the Huffman + // image. + memset(mapping, 0xff, num_htree_groups_max * sizeof(*mapping)); + for (num_htree_groups = 0, i = 0; i < huffman_pixs; ++i) { + // Get the current mapping for the group and remap the Huffman image. + int* const mapped_group = &mapping[huffman_image[i]]; + if (*mapped_group == -1) *mapped_group = num_htree_groups++; + huffman_image[i] = *mapped_group; + } + huffman_tables_bogus = (HuffmanCode*)WebPSafeMalloc( + table_size, sizeof(*huffman_tables_bogus)); + if (huffman_tables_bogus == NULL) { + dec->status_ = VP8_STATUS_OUT_OF_MEMORY; + goto Error; } + } else { + num_htree_groups = num_htree_groups_max; } } @@ -403,11 +442,11 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, } } + code_lengths = (int*)WebPSafeCalloc((uint64_t)max_alphabet_size, + sizeof(*code_lengths)); huffman_tables = (HuffmanCode*)WebPSafeMalloc(num_htree_groups * table_size, sizeof(*huffman_tables)); htree_groups = VP8LHtreeGroupsNew(num_htree_groups); - code_lengths = (int*)WebPSafeCalloc((uint64_t)max_alphabet_size, - sizeof(*code_lengths)); if (htree_groups == NULL || code_lengths == NULL || huffman_tables == NULL) { dec->status_ = VP8_STATUS_OUT_OF_MEMORY; @@ -415,28 +454,35 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, } next = huffman_tables; - for (i = 0; i < num_htree_groups; ++i) { - HTreeGroup* const htree_group = &htree_groups[i]; + for (i = 0; i < num_htree_groups_max; ++i) { + // If the index "i" is unused in the Huffman image, read the coefficients + // but store them to a bogus htree_group. + const int is_bogus = (mapping != NULL && mapping[i] == -1); + HTreeGroup* const htree_group = + is_bogus ? &htree_group_bogus : + &htree_groups[(mapping == NULL) ? i : mapping[i]]; HuffmanCode** const htrees = htree_group->htrees; + HuffmanCode* huffman_tables_i = is_bogus ? huffman_tables_bogus : next; int size; int total_size = 0; int is_trivial_literal = 1; int max_bits = 0; for (j = 0; j < HUFFMAN_CODES_PER_META_CODE; ++j) { int alphabet_size = kAlphabetSize[j]; - htrees[j] = next; + htrees[j] = huffman_tables_i; if (j == 0 && color_cache_bits > 0) { alphabet_size += 1 << color_cache_bits; } - size = ReadHuffmanCode(alphabet_size, dec, code_lengths, next); + size = + ReadHuffmanCode(alphabet_size, dec, code_lengths, huffman_tables_i); if (size == 0) { goto Error; } if (is_trivial_literal && kLiteralMap[j] == 1) { - is_trivial_literal = (next->bits == 0); + is_trivial_literal = (huffman_tables_i->bits == 0); } - total_size += next->bits; - next += size; + total_size += huffman_tables_i->bits; + huffman_tables_i += size; if (j <= ALPHA) { int local_max_bits = code_lengths[0]; int k; @@ -448,38 +494,41 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize, max_bits += local_max_bits; } } + if (!is_bogus) next = huffman_tables_i; htree_group->is_trivial_literal = is_trivial_literal; htree_group->is_trivial_code = 0; if (is_trivial_literal) { const int red = htrees[RED][0].value; const int blue = htrees[BLUE][0].value; const int alpha = htrees[ALPHA][0].value; - htree_group->literal_arb = - ((uint32_t)alpha << 24) | (red << 16) | blue; + htree_group->literal_arb = ((uint32_t)alpha << 24) | (red << 16) | blue; if (total_size == 0 && htrees[GREEN][0].value < NUM_LITERAL_CODES) { htree_group->is_trivial_code = 1; htree_group->literal_arb |= htrees[GREEN][0].value << 8; } } - htree_group->use_packed_table = !htree_group->is_trivial_code && - (max_bits < HUFFMAN_PACKED_BITS); + htree_group->use_packed_table = + !htree_group->is_trivial_code && (max_bits < HUFFMAN_PACKED_BITS); if (htree_group->use_packed_table) BuildPackedTable(htree_group); } - WebPSafeFree(code_lengths); + ok = 1; - // All OK. Finalize pointers and return. + // All OK. Finalize pointers. hdr->huffman_image_ = huffman_image; hdr->num_htree_groups_ = num_htree_groups; hdr->htree_groups_ = htree_groups; hdr->huffman_tables_ = huffman_tables; - return 1; Error: WebPSafeFree(code_lengths); - WebPSafeFree(huffman_image); - WebPSafeFree(huffman_tables); - VP8LHtreeGroupsFree(htree_groups); - return 0; + WebPSafeFree(huffman_tables_bogus); + WebPSafeFree(mapping); + if (!ok) { + WebPSafeFree(huffman_image); + WebPSafeFree(huffman_tables); + VP8LHtreeGroupsFree(htree_groups); + } + return ok; } //------------------------------------------------------------------------------ @@ -884,7 +933,11 @@ static WEBP_INLINE void CopyBlock8b(uint8_t* const dst, int dist, int length) { #endif break; case 2: +#if !defined(WORDS_BIGENDIAN) memcpy(&pattern, src, sizeof(uint16_t)); +#else + pattern = ((uint32_t)src[0] << 8) | src[1]; +#endif #if defined(__arm__) || defined(_M_ARM) pattern |= pattern << 16; #elif defined(WEBP_USE_MIPS_DSP_R2) @@ -1523,7 +1576,6 @@ int VP8LDecodeAlphaHeader(ALPHDecoder* const alph_dec, if (dec == NULL) return 0; assert(alph_dec != NULL); - alph_dec->vp8l_dec_ = dec; dec->width_ = alph_dec->width_; dec->height_ = alph_dec->height_; @@ -1555,11 +1607,12 @@ int VP8LDecodeAlphaHeader(ALPHDecoder* const alph_dec, if (!ok) goto Err; + // Only set here, once we are sure it is valid (to avoid thread races). + alph_dec->vp8l_dec_ = dec; return 1; Err: - VP8LDelete(alph_dec->vp8l_dec_); - alph_dec->vp8l_dec_ = NULL; + VP8LDelete(dec); return 0; } diff --git a/thirdparty/libwebp/src/dec/vp8li_dec.h b/thirdparty/libwebp/src/dec/vp8li_dec.h index 8e500cf9ff..0a4d613f99 100644 --- a/thirdparty/libwebp/src/dec/vp8li_dec.h +++ b/thirdparty/libwebp/src/dec/vp8li_dec.h @@ -132,4 +132,4 @@ void VP8LDelete(VP8LDecoder* const dec); } // extern "C" #endif -#endif /* WEBP_DEC_VP8LI_DEC_H_ */ +#endif // WEBP_DEC_VP8LI_DEC_H_ diff --git a/thirdparty/libwebp/src/dec/webpi_dec.h b/thirdparty/libwebp/src/dec/webpi_dec.h index c378ba6fc3..24baff5d27 100644 --- a/thirdparty/libwebp/src/dec/webpi_dec.h +++ b/thirdparty/libwebp/src/dec/webpi_dec.h @@ -130,4 +130,4 @@ int WebPAvoidSlowMemory(const WebPDecBuffer* const output, } // extern "C" #endif -#endif /* WEBP_DEC_WEBPI_DEC_H_ */ +#endif // WEBP_DEC_WEBPI_DEC_H_ diff --git a/thirdparty/libwebp/src/demux/demux.c b/thirdparty/libwebp/src/demux/demux.c index 684215e3de..a69c65b7cf 100644 --- a/thirdparty/libwebp/src/demux/demux.c +++ b/thirdparty/libwebp/src/demux/demux.c @@ -25,7 +25,7 @@ #define DMUX_MAJ_VERSION 1 #define DMUX_MIN_VERSION 0 -#define DMUX_REV_VERSION 0 +#define DMUX_REV_VERSION 1 typedef struct { size_t start_; // start location of the data diff --git a/thirdparty/libwebp/src/dsp/dsp.h b/thirdparty/libwebp/src/dsp/dsp.h index 4ab77a5130..fafc2d05d3 100644 --- a/thirdparty/libwebp/src/dsp/dsp.h +++ b/thirdparty/libwebp/src/dsp/dsp.h @@ -76,10 +76,6 @@ extern "C" { #define WEBP_USE_SSE41 #endif -#if defined(__AVX2__) || defined(WEBP_HAVE_AVX2) -#define WEBP_USE_AVX2 -#endif - // The intrinsics currently cause compiler errors with arm-nacl-gcc and the // inline assembly would need to be modified for use with Native Client. #if (defined(__ARM_NEON__) || \ @@ -679,4 +675,4 @@ void VP8FiltersInit(void); } // extern "C" #endif -#endif /* WEBP_DSP_DSP_H_ */ +#endif // WEBP_DSP_DSP_H_ diff --git a/thirdparty/libwebp/src/dsp/enc.c b/thirdparty/libwebp/src/dsp/enc.c index fa23b40a30..2fddbc4c52 100644 --- a/thirdparty/libwebp/src/dsp/enc.c +++ b/thirdparty/libwebp/src/dsp/enc.c @@ -734,7 +734,6 @@ VP8BlockCopy VP8Copy16x8; extern void VP8EncDspInitSSE2(void); extern void VP8EncDspInitSSE41(void); -extern void VP8EncDspInitAVX2(void); extern void VP8EncDspInitNEON(void); extern void VP8EncDspInitMIPS32(void); extern void VP8EncDspInitMIPSdspR2(void); @@ -784,11 +783,6 @@ WEBP_DSP_INIT_FUNC(VP8EncDspInit) { #endif } #endif -#if defined(WEBP_USE_AVX2) - if (VP8GetCPUInfo(kAVX2)) { - VP8EncDspInitAVX2(); - } -#endif #if defined(WEBP_USE_MIPS32) if (VP8GetCPUInfo(kMIPS32)) { VP8EncDspInitMIPS32(); diff --git a/thirdparty/libwebp/src/dsp/enc_avx2.c b/thirdparty/libwebp/src/dsp/enc_avx2.c deleted file mode 100644 index 8bc5798fee..0000000000 --- a/thirdparty/libwebp/src/dsp/enc_avx2.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2014 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// AVX2 version of speed-critical encoding functions. - -#include "src/dsp/dsp.h" - -#if defined(WEBP_USE_AVX2) - -#endif // WEBP_USE_AVX2 - -//------------------------------------------------------------------------------ -// Entry point - -WEBP_DSP_INIT_STUB(VP8EncDspInitAVX2) diff --git a/thirdparty/libwebp/src/dsp/lossless.c b/thirdparty/libwebp/src/dsp/lossless.c index f9b3c182d3..d21aa6a0a0 100644 --- a/thirdparty/libwebp/src/dsp/lossless.c +++ b/thirdparty/libwebp/src/dsp/lossless.c @@ -23,8 +23,6 @@ #include "src/dsp/lossless.h" #include "src/dsp/lossless_common.h" -#define MAX_DIFF_COST (1e30f) - //------------------------------------------------------------------------------ // Image transforms. diff --git a/thirdparty/libwebp/src/dsp/lossless.h b/thirdparty/libwebp/src/dsp/lossless.h index b2bbdfc93c..f709cc86b2 100644 --- a/thirdparty/libwebp/src/dsp/lossless.h +++ b/thirdparty/libwebp/src/dsp/lossless.h @@ -163,7 +163,7 @@ extern VP8LCostCombinedFunc VP8LExtraCostCombined; extern VP8LCombinedShannonEntropyFunc VP8LCombinedShannonEntropy; typedef struct { // small struct to hold counters - int counts[2]; // index: 0=zero steak, 1=non-zero streak + int counts[2]; // index: 0=zero streak, 1=non-zero streak int streaks[2][2]; // [zero/non-zero][streak<3 / streak>=3] } VP8LStreaks; @@ -194,10 +194,14 @@ extern VP8LGetEntropyUnrefinedFunc VP8LGetEntropyUnrefined; void VP8LBitsEntropyUnrefined(const uint32_t* const array, int n, VP8LBitEntropy* const entropy); -typedef void (*VP8LHistogramAddFunc)(const VP8LHistogram* const a, - const VP8LHistogram* const b, - VP8LHistogram* const out); -extern VP8LHistogramAddFunc VP8LHistogramAdd; +typedef void (*VP8LAddVectorFunc)(const uint32_t* a, const uint32_t* b, + uint32_t* out, int size); +extern VP8LAddVectorFunc VP8LAddVector; +typedef void (*VP8LAddVectorEqFunc)(const uint32_t* a, uint32_t* out, int size); +extern VP8LAddVectorEqFunc VP8LAddVectorEq; +void VP8LHistogramAdd(const VP8LHistogram* const a, + const VP8LHistogram* const b, + VP8LHistogram* const out); // ----------------------------------------------------------------------------- // PrefixEncode() diff --git a/thirdparty/libwebp/src/dsp/lossless_enc.c b/thirdparty/libwebp/src/dsp/lossless_enc.c index d608326fef..1408fbf580 100644 --- a/thirdparty/libwebp/src/dsp/lossless_enc.c +++ b/thirdparty/libwebp/src/dsp/lossless_enc.c @@ -632,38 +632,67 @@ static double ExtraCostCombined_C(const uint32_t* X, const uint32_t* Y, //------------------------------------------------------------------------------ -static void HistogramAdd_C(const VP8LHistogram* const a, - const VP8LHistogram* const b, - VP8LHistogram* const out) { +static void AddVector_C(const uint32_t* a, const uint32_t* b, uint32_t* out, + int size) { + int i; + for (i = 0; i < size; ++i) out[i] = a[i] + b[i]; +} + +static void AddVectorEq_C(const uint32_t* a, uint32_t* out, int size) { + int i; + for (i = 0; i < size; ++i) out[i] += a[i]; +} + +#define ADD(X, ARG, LEN) do { \ + if (a->is_used_[X]) { \ + if (b->is_used_[X]) { \ + VP8LAddVector(a->ARG, b->ARG, out->ARG, (LEN)); \ + } else { \ + memcpy(&out->ARG[0], &a->ARG[0], (LEN) * sizeof(out->ARG[0])); \ + } \ + } else if (b->is_used_[X]) { \ + memcpy(&out->ARG[0], &b->ARG[0], (LEN) * sizeof(out->ARG[0])); \ + } else { \ + memset(&out->ARG[0], 0, (LEN) * sizeof(out->ARG[0])); \ + } \ +} while (0) + +#define ADD_EQ(X, ARG, LEN) do { \ + if (a->is_used_[X]) { \ + if (out->is_used_[X]) { \ + VP8LAddVectorEq(a->ARG, out->ARG, (LEN)); \ + } else { \ + memcpy(&out->ARG[0], &a->ARG[0], (LEN) * sizeof(out->ARG[0])); \ + } \ + } \ +} while (0) + +void VP8LHistogramAdd(const VP8LHistogram* const a, + const VP8LHistogram* const b, VP8LHistogram* const out) { int i; const int literal_size = VP8LHistogramNumCodes(a->palette_code_bits_); assert(a->palette_code_bits_ == b->palette_code_bits_); + if (b != out) { - for (i = 0; i < literal_size; ++i) { - out->literal_[i] = a->literal_[i] + b->literal_[i]; - } - for (i = 0; i < NUM_DISTANCE_CODES; ++i) { - out->distance_[i] = a->distance_[i] + b->distance_[i]; - } - for (i = 0; i < NUM_LITERAL_CODES; ++i) { - out->red_[i] = a->red_[i] + b->red_[i]; - out->blue_[i] = a->blue_[i] + b->blue_[i]; - out->alpha_[i] = a->alpha_[i] + b->alpha_[i]; + ADD(0, literal_, literal_size); + ADD(1, red_, NUM_LITERAL_CODES); + ADD(2, blue_, NUM_LITERAL_CODES); + ADD(3, alpha_, NUM_LITERAL_CODES); + ADD(4, distance_, NUM_DISTANCE_CODES); + for (i = 0; i < 5; ++i) { + out->is_used_[i] = (a->is_used_[i] | b->is_used_[i]); } } else { - for (i = 0; i < literal_size; ++i) { - out->literal_[i] += a->literal_[i]; - } - for (i = 0; i < NUM_DISTANCE_CODES; ++i) { - out->distance_[i] += a->distance_[i]; - } - for (i = 0; i < NUM_LITERAL_CODES; ++i) { - out->red_[i] += a->red_[i]; - out->blue_[i] += a->blue_[i]; - out->alpha_[i] += a->alpha_[i]; - } + ADD_EQ(0, literal_, literal_size); + ADD_EQ(1, red_, NUM_LITERAL_CODES); + ADD_EQ(2, blue_, NUM_LITERAL_CODES); + ADD_EQ(3, alpha_, NUM_LITERAL_CODES); + ADD_EQ(4, distance_, NUM_DISTANCE_CODES); + for (i = 0; i < 5; ++i) out->is_used_[i] |= a->is_used_[i]; } } +#undef ADD +#undef ADD_EQ //------------------------------------------------------------------------------ // Image transforms. @@ -848,7 +877,8 @@ VP8LCombinedShannonEntropyFunc VP8LCombinedShannonEntropy; VP8LGetEntropyUnrefinedFunc VP8LGetEntropyUnrefined; VP8LGetCombinedEntropyUnrefinedFunc VP8LGetCombinedEntropyUnrefined; -VP8LHistogramAddFunc VP8LHistogramAdd; +VP8LAddVectorFunc VP8LAddVector; +VP8LAddVectorEqFunc VP8LAddVectorEq; VP8LVectorMismatchFunc VP8LVectorMismatch; VP8LBundleColorMapFunc VP8LBundleColorMap; @@ -885,7 +915,8 @@ WEBP_DSP_INIT_FUNC(VP8LEncDspInit) { VP8LGetEntropyUnrefined = GetEntropyUnrefined_C; VP8LGetCombinedEntropyUnrefined = GetCombinedEntropyUnrefined_C; - VP8LHistogramAdd = HistogramAdd_C; + VP8LAddVector = AddVector_C; + VP8LAddVectorEq = AddVectorEq_C; VP8LVectorMismatch = VectorMismatch_C; VP8LBundleColorMap = VP8LBundleColorMap_C; @@ -971,7 +1002,8 @@ WEBP_DSP_INIT_FUNC(VP8LEncDspInit) { assert(VP8LCombinedShannonEntropy != NULL); assert(VP8LGetEntropyUnrefined != NULL); assert(VP8LGetCombinedEntropyUnrefined != NULL); - assert(VP8LHistogramAdd != NULL); + assert(VP8LAddVector != NULL); + assert(VP8LAddVectorEq != NULL); assert(VP8LVectorMismatch != NULL); assert(VP8LBundleColorMap != NULL); assert(VP8LPredictorsSub[0] != NULL); diff --git a/thirdparty/libwebp/src/dsp/lossless_enc_mips32.c b/thirdparty/libwebp/src/dsp/lossless_enc_mips32.c index e7b58f4e8c..0412a093cf 100644 --- a/thirdparty/libwebp/src/dsp/lossless_enc_mips32.c +++ b/thirdparty/libwebp/src/dsp/lossless_enc_mips32.c @@ -344,65 +344,29 @@ static void GetCombinedEntropyUnrefined_MIPS32(const uint32_t X[], ASM_END_COMMON_0 \ ASM_END_COMMON_1 -#define ADD_VECTOR(A, B, OUT, SIZE, EXTRA_SIZE) do { \ - const uint32_t* pa = (const uint32_t*)(A); \ - const uint32_t* pb = (const uint32_t*)(B); \ - uint32_t* pout = (uint32_t*)(OUT); \ - const uint32_t* const LoopEnd = pa + (SIZE); \ - assert((SIZE) % 4 == 0); \ - ASM_START \ - ADD_TO_OUT(0, 4, 8, 12, 1, pa, pb, pout) \ - ASM_END_0 \ - if ((EXTRA_SIZE) > 0) { \ - const int last = (EXTRA_SIZE); \ - int i; \ - for (i = 0; i < last; ++i) pout[i] = pa[i] + pb[i]; \ - } \ -} while (0) - -#define ADD_VECTOR_EQ(A, OUT, SIZE, EXTRA_SIZE) do { \ - const uint32_t* pa = (const uint32_t*)(A); \ - uint32_t* pout = (uint32_t*)(OUT); \ - const uint32_t* const LoopEnd = pa + (SIZE); \ - assert((SIZE) % 4 == 0); \ - ASM_START \ - ADD_TO_OUT(0, 4, 8, 12, 0, pa, pout, pout) \ - ASM_END_1 \ - if ((EXTRA_SIZE) > 0) { \ - const int last = (EXTRA_SIZE); \ - int i; \ - for (i = 0; i < last; ++i) pout[i] += pa[i]; \ - } \ -} while (0) - -static void HistogramAdd_MIPS32(const VP8LHistogram* const a, - const VP8LHistogram* const b, - VP8LHistogram* const out) { +static void AddVector_MIPS32(const uint32_t* pa, const uint32_t* pb, + uint32_t* pout, int size) { uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; - const int extra_cache_size = VP8LHistogramNumCodes(a->palette_code_bits_) - - (NUM_LITERAL_CODES + NUM_LENGTH_CODES); - assert(a->palette_code_bits_ == b->palette_code_bits_); - - if (b != out) { - ADD_VECTOR(a->literal_, b->literal_, out->literal_, - NUM_LITERAL_CODES + NUM_LENGTH_CODES, extra_cache_size); - ADD_VECTOR(a->distance_, b->distance_, out->distance_, - NUM_DISTANCE_CODES, 0); - ADD_VECTOR(a->red_, b->red_, out->red_, NUM_LITERAL_CODES, 0); - ADD_VECTOR(a->blue_, b->blue_, out->blue_, NUM_LITERAL_CODES, 0); - ADD_VECTOR(a->alpha_, b->alpha_, out->alpha_, NUM_LITERAL_CODES, 0); - } else { - ADD_VECTOR_EQ(a->literal_, out->literal_, - NUM_LITERAL_CODES + NUM_LENGTH_CODES, extra_cache_size); - ADD_VECTOR_EQ(a->distance_, out->distance_, NUM_DISTANCE_CODES, 0); - ADD_VECTOR_EQ(a->red_, out->red_, NUM_LITERAL_CODES, 0); - ADD_VECTOR_EQ(a->blue_, out->blue_, NUM_LITERAL_CODES, 0); - ADD_VECTOR_EQ(a->alpha_, out->alpha_, NUM_LITERAL_CODES, 0); - } + const uint32_t end = ((size) / 4) * 4; + const uint32_t* const LoopEnd = pa + end; + int i; + ASM_START + ADD_TO_OUT(0, 4, 8, 12, 1, pa, pb, pout) + ASM_END_0 + for (i = end; i < size; ++i) pout[i] = pa[i] + pb[i]; +} + +static void AddVectorEq_MIPS32(const uint32_t* pa, uint32_t* pout, int size) { + uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; + const uint32_t end = ((size) / 4) * 4; + const uint32_t* const LoopEnd = pa + end; + int i; + ASM_START + ADD_TO_OUT(0, 4, 8, 12, 0, pa, pout, pout) + ASM_END_1 + for (i = end; i < size; ++i) pout[i] += pa[i]; } -#undef ADD_VECTOR_EQ -#undef ADD_VECTOR #undef ASM_END_1 #undef ASM_END_0 #undef ASM_END_COMMON_1 @@ -422,7 +386,8 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitMIPS32(void) { VP8LExtraCostCombined = ExtraCostCombined_MIPS32; VP8LGetEntropyUnrefined = GetEntropyUnrefined_MIPS32; VP8LGetCombinedEntropyUnrefined = GetCombinedEntropyUnrefined_MIPS32; - VP8LHistogramAdd = HistogramAdd_MIPS32; + VP8LAddVector = AddVector_MIPS32; + VP8LAddVectorEq = AddVectorEq_MIPS32; } #else // !WEBP_USE_MIPS32 diff --git a/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c b/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c index f84a9909e1..36478c4912 100644 --- a/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c +++ b/thirdparty/libwebp/src/dsp/lossless_enc_sse2.c @@ -170,12 +170,13 @@ static void CollectColorRedTransforms_SSE2(const uint32_t* argb, int stride, //------------------------------------------------------------------------------ +// Note we are adding uint32_t's as *signed* int32's (using _mm_add_epi32). But +// that's ok since the histogram values are less than 1<<28 (max picture size). #define LINE_SIZE 16 // 8 or 16 static void AddVector_SSE2(const uint32_t* a, const uint32_t* b, uint32_t* out, int size) { int i; - assert(size % LINE_SIZE == 0); - for (i = 0; i < size; i += LINE_SIZE) { + for (i = 0; i + LINE_SIZE <= size; i += LINE_SIZE) { const __m128i a0 = _mm_loadu_si128((const __m128i*)&a[i + 0]); const __m128i a1 = _mm_loadu_si128((const __m128i*)&a[i + 4]); #if (LINE_SIZE == 16) @@ -195,12 +196,14 @@ static void AddVector_SSE2(const uint32_t* a, const uint32_t* b, uint32_t* out, _mm_storeu_si128((__m128i*)&out[i + 12], _mm_add_epi32(a3, b3)); #endif } + for (; i < size; ++i) { + out[i] = a[i] + b[i]; + } } static void AddVectorEq_SSE2(const uint32_t* a, uint32_t* out, int size) { int i; - assert(size % LINE_SIZE == 0); - for (i = 0; i < size; i += LINE_SIZE) { + for (i = 0; i + LINE_SIZE <= size; i += LINE_SIZE) { const __m128i a0 = _mm_loadu_si128((const __m128i*)&a[i + 0]); const __m128i a1 = _mm_loadu_si128((const __m128i*)&a[i + 4]); #if (LINE_SIZE == 16) @@ -220,35 +223,11 @@ static void AddVectorEq_SSE2(const uint32_t* a, uint32_t* out, int size) { _mm_storeu_si128((__m128i*)&out[i + 12], _mm_add_epi32(a3, b3)); #endif } -} -#undef LINE_SIZE - -// Note we are adding uint32_t's as *signed* int32's (using _mm_add_epi32). But -// that's ok since the histogram values are less than 1<<28 (max picture size). -static void HistogramAdd_SSE2(const VP8LHistogram* const a, - const VP8LHistogram* const b, - VP8LHistogram* const out) { - int i; - const int literal_size = VP8LHistogramNumCodes(a->palette_code_bits_); - assert(a->palette_code_bits_ == b->palette_code_bits_); - if (b != out) { - AddVector_SSE2(a->literal_, b->literal_, out->literal_, NUM_LITERAL_CODES); - AddVector_SSE2(a->red_, b->red_, out->red_, NUM_LITERAL_CODES); - AddVector_SSE2(a->blue_, b->blue_, out->blue_, NUM_LITERAL_CODES); - AddVector_SSE2(a->alpha_, b->alpha_, out->alpha_, NUM_LITERAL_CODES); - } else { - AddVectorEq_SSE2(a->literal_, out->literal_, NUM_LITERAL_CODES); - AddVectorEq_SSE2(a->red_, out->red_, NUM_LITERAL_CODES); - AddVectorEq_SSE2(a->blue_, out->blue_, NUM_LITERAL_CODES); - AddVectorEq_SSE2(a->alpha_, out->alpha_, NUM_LITERAL_CODES); - } - for (i = NUM_LITERAL_CODES; i < literal_size; ++i) { - out->literal_[i] = a->literal_[i] + b->literal_[i]; - } - for (i = 0; i < NUM_DISTANCE_CODES; ++i) { - out->distance_[i] = a->distance_[i] + b->distance_[i]; + for (; i < size; ++i) { + out[i] += a[i]; } } +#undef LINE_SIZE //------------------------------------------------------------------------------ // Entropy @@ -675,7 +654,8 @@ WEBP_TSAN_IGNORE_FUNCTION void VP8LEncDspInitSSE2(void) { VP8LTransformColor = TransformColor_SSE2; VP8LCollectColorBlueTransforms = CollectColorBlueTransforms_SSE2; VP8LCollectColorRedTransforms = CollectColorRedTransforms_SSE2; - VP8LHistogramAdd = HistogramAdd_SSE2; + VP8LAddVector = AddVector_SSE2; + VP8LAddVectorEq = AddVectorEq_SSE2; VP8LCombinedShannonEntropy = CombinedShannonEntropy_SSE2; VP8LVectorMismatch = VectorMismatch_SSE2; VP8LBundleColorMap = BundleColorMap_SSE2; diff --git a/thirdparty/libwebp/src/dsp/msa_macro.h b/thirdparty/libwebp/src/dsp/msa_macro.h index dfacda6ccd..de026a1d9e 100644 --- a/thirdparty/libwebp/src/dsp/msa_macro.h +++ b/thirdparty/libwebp/src/dsp/msa_macro.h @@ -1389,4 +1389,4 @@ static WEBP_INLINE uint32_t func_hadd_uh_u32(v8u16 in) { } while (0) #define AVER_UB2_UB(...) AVER_UB2(v16u8, __VA_ARGS__) -#endif /* WEBP_DSP_MSA_MACRO_H_ */ +#endif // WEBP_DSP_MSA_MACRO_H_ diff --git a/thirdparty/libwebp/src/dsp/rescaler.c b/thirdparty/libwebp/src/dsp/rescaler.c index f307d35056..753f84fcf4 100644 --- a/thirdparty/libwebp/src/dsp/rescaler.c +++ b/thirdparty/libwebp/src/dsp/rescaler.c @@ -21,6 +21,7 @@ #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) +#define MULT_FIX_FLOOR(x, y) (((uint64_t)(x) * (y)) >> WEBP_RESCALER_RFIX) //------------------------------------------------------------------------------ // Row import @@ -138,7 +139,7 @@ void WebPRescalerExportRowShrink_C(WebPRescaler* const wrk) { if (yscale) { for (x_out = 0; x_out < x_out_max; ++x_out) { const uint32_t frac = (uint32_t)MULT_FIX(frow[x_out], yscale); - const int v = (int)MULT_FIX(irow[x_out] - frac, wrk->fxy_scale); + const int v = (int)MULT_FIX_FLOOR(irow[x_out] - frac, wrk->fxy_scale); assert(v >= 0 && v <= 255); dst[x_out] = v; irow[x_out] = frac; // new fractional start @@ -153,6 +154,7 @@ void WebPRescalerExportRowShrink_C(WebPRescaler* const wrk) { } } +#undef MULT_FIX_FLOOR #undef MULT_FIX #undef ROUNDER diff --git a/thirdparty/libwebp/src/dsp/rescaler_mips32.c b/thirdparty/libwebp/src/dsp/rescaler_mips32.c index 542f7e5970..61f63c616c 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_mips32.c +++ b/thirdparty/libwebp/src/dsp/rescaler_mips32.c @@ -209,6 +209,7 @@ static void ExportRowExpand_MIPS32(WebPRescaler* const wrk) { } } +#if 0 // disabled for now. TODO(skal): make match the C-code static void ExportRowShrink_MIPS32(WebPRescaler* const wrk) { const int x_out_max = wrk->dst_width * wrk->num_channels; uint8_t* dst = wrk->dst; @@ -273,6 +274,7 @@ static void ExportRowShrink_MIPS32(WebPRescaler* const wrk) { ); } } +#endif // 0 //------------------------------------------------------------------------------ // Entry point @@ -283,7 +285,7 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitMIPS32(void) { WebPRescalerImportRowExpand = ImportRowExpand_MIPS32; WebPRescalerImportRowShrink = ImportRowShrink_MIPS32; WebPRescalerExportRowExpand = ExportRowExpand_MIPS32; - WebPRescalerExportRowShrink = ExportRowShrink_MIPS32; +// WebPRescalerExportRowShrink = ExportRowShrink_MIPS32; } #else // !WEBP_USE_MIPS32 diff --git a/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c b/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c index b78aac15e6..ce9e64862e 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c +++ b/thirdparty/libwebp/src/dsp/rescaler_mips_dsp_r2.c @@ -20,10 +20,12 @@ #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) +#define MULT_FIX_FLOOR(x, y) (((uint64_t)(x) * (y)) >> WEBP_RESCALER_RFIX) //------------------------------------------------------------------------------ // Row export +#if 0 // disabled for now. TODO(skal): make match the C-code static void ExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { int i; const int x_out_max = wrk->dst_width * wrk->num_channels; @@ -106,7 +108,7 @@ static void ExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { } for (i = 0; i < (x_out_max & 0x3); ++i) { const uint32_t frac = (uint32_t)MULT_FIX(*frow++, yscale); - const int v = (int)MULT_FIX(*irow - frac, wrk->fxy_scale); + const int v = (int)MULT_FIX_FLOOR(*irow - frac, wrk->fxy_scale); assert(v >= 0 && v <= 255); *dst++ = v; *irow++ = frac; // new fractional start @@ -154,13 +156,14 @@ static void ExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { ); } for (i = 0; i < (x_out_max & 0x3); ++i) { - const int v = (int)MULT_FIX(*irow, wrk->fxy_scale); + const int v = (int)MULT_FIX_FLOOR(*irow, wrk->fxy_scale); assert(v >= 0 && v <= 255); *dst++ = v; *irow++ = 0; } } } +#endif // 0 static void ExportRowExpand_MIPSdspR2(WebPRescaler* const wrk) { int i; @@ -294,6 +297,7 @@ static void ExportRowExpand_MIPSdspR2(WebPRescaler* const wrk) { } } +#undef MULT_FIX_FLOOR #undef MULT_FIX #undef ROUNDER @@ -304,7 +308,7 @@ extern void WebPRescalerDspInitMIPSdspR2(void); WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitMIPSdspR2(void) { WebPRescalerExportRowExpand = ExportRowExpand_MIPSdspR2; - WebPRescalerExportRowShrink = ExportRowShrink_MIPSdspR2; +// WebPRescalerExportRowShrink = ExportRowShrink_MIPSdspR2; } #else // !WEBP_USE_MIPS_DSP_R2 diff --git a/thirdparty/libwebp/src/dsp/rescaler_msa.c b/thirdparty/libwebp/src/dsp/rescaler_msa.c index f3bc99f1cd..c559254836 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_msa.c +++ b/thirdparty/libwebp/src/dsp/rescaler_msa.c @@ -22,6 +22,7 @@ #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) +#define MULT_FIX_FLOOR(x, y) (((uint64_t)(x) * (y)) >> WEBP_RESCALER_RFIX) #define CALC_MULT_FIX_16(in0, in1, in2, in3, scale, shift, dst) do { \ v4u32 tmp0, tmp1, tmp2, tmp3; \ @@ -262,6 +263,7 @@ static void RescalerExportRowExpand_MIPSdspR2(WebPRescaler* const wrk) { } } +#if 0 // disabled for now. TODO(skal): make match the C-code static WEBP_INLINE void ExportRowShrink_0(const uint32_t* frow, uint32_t* irow, uint8_t* dst, int length, const uint32_t yscale, @@ -341,7 +343,7 @@ static WEBP_INLINE void ExportRowShrink_0(const uint32_t* frow, uint32_t* irow, } for (x_out = 0; x_out < length; ++x_out) { const uint32_t frac = (uint32_t)MULT_FIX(frow[x_out], yscale); - const int v = (int)MULT_FIX(irow[x_out] - frac, wrk->fxy_scale); + const int v = (int)MULT_FIX_FLOOR(irow[x_out] - frac, wrk->fxy_scale); assert(v >= 0 && v <= 255); dst[x_out] = v; irow[x_out] = frac; @@ -426,6 +428,7 @@ static void RescalerExportRowShrink_MIPSdspR2(WebPRescaler* const wrk) { ExportRowShrink_1(irow, dst, x_out_max, wrk); } } +#endif // 0 //------------------------------------------------------------------------------ // Entry point @@ -434,7 +437,7 @@ extern void WebPRescalerDspInitMSA(void); WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitMSA(void) { WebPRescalerExportRowExpand = RescalerExportRowExpand_MIPSdspR2; - WebPRescalerExportRowShrink = RescalerExportRowShrink_MIPSdspR2; +// WebPRescalerExportRowShrink = RescalerExportRowShrink_MIPSdspR2; } #else // !WEBP_USE_MSA diff --git a/thirdparty/libwebp/src/dsp/rescaler_neon.c b/thirdparty/libwebp/src/dsp/rescaler_neon.c index 3eff9fbaf4..a553f06f79 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_neon.c +++ b/thirdparty/libwebp/src/dsp/rescaler_neon.c @@ -22,6 +22,7 @@ #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX_C(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) +#define MULT_FIX_FLOOR_C(x, y) (((uint64_t)(x) * (y)) >> WEBP_RESCALER_RFIX) #define LOAD_32x4(SRC, DST) const uint32x4_t DST = vld1q_u32((SRC)) #define LOAD_32x8(SRC, DST0, DST1) \ @@ -35,8 +36,11 @@ #if (WEBP_RESCALER_RFIX == 32) #define MAKE_HALF_CST(C) vdupq_n_s32((int32_t)((C) >> 1)) -#define MULT_FIX(A, B) /* note: B is actualy scale>>1. See MAKE_HALF_CST */ \ +// note: B is actualy scale>>1. See MAKE_HALF_CST +#define MULT_FIX(A, B) \ vreinterpretq_u32_s32(vqrdmulhq_s32(vreinterpretq_s32_u32((A)), (B))) +#define MULT_FIX_FLOOR(A, B) \ + vreinterpretq_u32_s32(vqdmulhq_s32(vreinterpretq_s32_u32((A)), (B))) #else #error "MULT_FIX/WEBP_RESCALER_RFIX need some more work" #endif @@ -135,8 +139,8 @@ static void RescalerExportRowShrink_NEON(WebPRescaler* const wrk) { const uint32x4_t A1 = MULT_FIX(in1, yscale_half); const uint32x4_t B0 = vqsubq_u32(in2, A0); const uint32x4_t B1 = vqsubq_u32(in3, A1); - const uint32x4_t C0 = MULT_FIX(B0, fxy_scale_half); - const uint32x4_t C1 = MULT_FIX(B1, fxy_scale_half); + const uint32x4_t C0 = MULT_FIX_FLOOR(B0, fxy_scale_half); + const uint32x4_t C1 = MULT_FIX_FLOOR(B1, fxy_scale_half); const uint16x4_t D0 = vmovn_u32(C0); const uint16x4_t D1 = vmovn_u32(C1); const uint8x8_t E = vmovn_u16(vcombine_u16(D0, D1)); @@ -145,7 +149,7 @@ static void RescalerExportRowShrink_NEON(WebPRescaler* const wrk) { } for (; x_out < x_out_max; ++x_out) { const uint32_t frac = (uint32_t)MULT_FIX_C(frow[x_out], yscale); - const int v = (int)MULT_FIX_C(irow[x_out] - frac, wrk->fxy_scale); + const int v = (int)MULT_FIX_FLOOR_C(irow[x_out] - frac, fxy_scale); assert(v >= 0 && v <= 255); dst[x_out] = v; irow[x_out] = frac; // new fractional start @@ -170,6 +174,12 @@ static void RescalerExportRowShrink_NEON(WebPRescaler* const wrk) { } } +#undef MULT_FIX_FLOOR_C +#undef MULT_FIX_C +#undef MULT_FIX_FLOOR +#undef MULT_FIX +#undef ROUNDER + //------------------------------------------------------------------------------ extern void WebPRescalerDspInitNEON(void); diff --git a/thirdparty/libwebp/src/dsp/rescaler_sse2.c b/thirdparty/libwebp/src/dsp/rescaler_sse2.c index 64c50deab5..f7461a452c 100644 --- a/thirdparty/libwebp/src/dsp/rescaler_sse2.c +++ b/thirdparty/libwebp/src/dsp/rescaler_sse2.c @@ -25,6 +25,7 @@ #define ROUNDER (WEBP_RESCALER_ONE >> 1) #define MULT_FIX(x, y) (((uint64_t)(x) * (y) + ROUNDER) >> WEBP_RESCALER_RFIX) +#define MULT_FIX_FLOOR(x, y) (((uint64_t)(x) * (y)) >> WEBP_RESCALER_RFIX) // input: 8 bytes ABCDEFGH -> output: A0E0B0F0C0G0D0H0 static void LoadTwoPixels_SSE2(const uint8_t* const src, __m128i* out) { @@ -224,6 +225,35 @@ static WEBP_INLINE void ProcessRow_SSE2(const __m128i* const A0, _mm_storel_epi64((__m128i*)dst, G); } +static WEBP_INLINE void ProcessRow_Floor_SSE2(const __m128i* const A0, + const __m128i* const A1, + const __m128i* const A2, + const __m128i* const A3, + const __m128i* const mult, + uint8_t* const dst) { + const __m128i mask = _mm_set_epi32(0xffffffffu, 0, 0xffffffffu, 0); + const __m128i B0 = _mm_mul_epu32(*A0, *mult); + const __m128i B1 = _mm_mul_epu32(*A1, *mult); + const __m128i B2 = _mm_mul_epu32(*A2, *mult); + const __m128i B3 = _mm_mul_epu32(*A3, *mult); + const __m128i D0 = _mm_srli_epi64(B0, WEBP_RESCALER_RFIX); + const __m128i D1 = _mm_srli_epi64(B1, WEBP_RESCALER_RFIX); +#if (WEBP_RESCALER_RFIX < 32) + const __m128i D2 = + _mm_and_si128(_mm_slli_epi64(B2, 32 - WEBP_RESCALER_RFIX), mask); + const __m128i D3 = + _mm_and_si128(_mm_slli_epi64(B3, 32 - WEBP_RESCALER_RFIX), mask); +#else + const __m128i D2 = _mm_and_si128(B2, mask); + const __m128i D3 = _mm_and_si128(B3, mask); +#endif + const __m128i E0 = _mm_or_si128(D0, D2); + const __m128i E1 = _mm_or_si128(D1, D3); + const __m128i F = _mm_packs_epi32(E0, E1); + const __m128i G = _mm_packus_epi16(F, F); + _mm_storel_epi64((__m128i*)dst, G); +} + static void RescalerExportRowExpand_SSE2(WebPRescaler* const wrk) { int x_out; uint8_t* const dst = wrk->dst; @@ -322,12 +352,12 @@ static void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk) { const __m128i G1 = _mm_or_si128(D1, F3); _mm_storeu_si128((__m128i*)(irow + x_out + 0), G0); _mm_storeu_si128((__m128i*)(irow + x_out + 4), G1); - ProcessRow_SSE2(&E0, &E1, &E2, &E3, &mult_xy, dst + x_out); + ProcessRow_Floor_SSE2(&E0, &E1, &E2, &E3, &mult_xy, dst + x_out); } } for (; x_out < x_out_max; ++x_out) { const uint32_t frac = (int)MULT_FIX(frow[x_out], yscale); - const int v = (int)MULT_FIX(irow[x_out] - frac, wrk->fxy_scale); + const int v = (int)MULT_FIX_FLOOR(irow[x_out] - frac, wrk->fxy_scale); assert(v >= 0 && v <= 255); dst[x_out] = v; irow[x_out] = frac; // new fractional start @@ -352,6 +382,7 @@ static void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk) { } } +#undef MULT_FIX_FLOOR #undef MULT_FIX #undef ROUNDER diff --git a/thirdparty/libwebp/src/dsp/yuv.h b/thirdparty/libwebp/src/dsp/yuv.h index eb787270d2..c12be1d094 100644 --- a/thirdparty/libwebp/src/dsp/yuv.h +++ b/thirdparty/libwebp/src/dsp/yuv.h @@ -207,4 +207,4 @@ static WEBP_INLINE int VP8RGBToV(int r, int g, int b, int rounding) { } // extern "C" #endif -#endif /* WEBP_DSP_YUV_H_ */ +#endif // WEBP_DSP_YUV_H_ diff --git a/thirdparty/libwebp/src/enc/analysis_enc.c b/thirdparty/libwebp/src/enc/analysis_enc.c index a47ff7d4e8..687757ae03 100644 --- a/thirdparty/libwebp/src/enc/analysis_enc.c +++ b/thirdparty/libwebp/src/enc/analysis_enc.c @@ -458,7 +458,7 @@ static void MergeJobs(const SegmentJob* const src, SegmentJob* const dst) { dst->uv_alpha += src->uv_alpha; } -// initialize the job struct with some TODOs +// initialize the job struct with some tasks to perform static void InitSegmentJob(VP8Encoder* const enc, SegmentJob* const job, int start_row, int end_row) { WebPGetWorkerInterface()->Init(&job->worker); diff --git a/thirdparty/libwebp/src/enc/backward_references_cost_enc.c b/thirdparty/libwebp/src/enc/backward_references_cost_enc.c index 7175496c7f..516abd73eb 100644 --- a/thirdparty/libwebp/src/enc/backward_references_cost_enc.c +++ b/thirdparty/libwebp/src/enc/backward_references_cost_enc.c @@ -67,7 +67,7 @@ static int CostModelBuild(CostModel* const m, int xsize, int cache_bits, // The following code is similar to VP8LHistogramCreate but converts the // distance to plane code. - VP8LHistogramInit(histo, cache_bits); + VP8LHistogramInit(histo, cache_bits, /*init_arrays=*/ 1); while (VP8LRefsCursorOk(&c)) { VP8LHistogramAddSinglePixOrCopy(histo, c.cur_pos, VP8LDistanceToPlaneCode, xsize); diff --git a/thirdparty/libwebp/src/enc/backward_references_enc.c b/thirdparty/libwebp/src/enc/backward_references_enc.c index 39230188b9..3ab7b0ac7d 100644 --- a/thirdparty/libwebp/src/enc/backward_references_enc.c +++ b/thirdparty/libwebp/src/enc/backward_references_enc.c @@ -715,6 +715,7 @@ static int CalculateBestCacheSize(const uint32_t* argb, int quality, for (i = 0; i <= cache_bits_max; ++i) { histos[i] = VP8LAllocateHistogram(i); if (histos[i] == NULL) goto Error; + VP8LHistogramInit(histos[i], i, /*init_arrays=*/ 1); if (i == 0) continue; cc_init[i] = VP8LColorCacheInit(&hashers[i], i); if (!cc_init[i]) goto Error; diff --git a/thirdparty/libwebp/src/enc/cost_enc.h b/thirdparty/libwebp/src/enc/cost_enc.h index bdce1e6a3b..a4b177b342 100644 --- a/thirdparty/libwebp/src/enc/cost_enc.h +++ b/thirdparty/libwebp/src/enc/cost_enc.h @@ -79,4 +79,4 @@ extern const uint16_t VP8FixedCostsI4[NUM_BMODES][NUM_BMODES][NUM_BMODES]; } // extern "C" #endif -#endif /* WEBP_ENC_COST_ENC_H_ */ +#endif // WEBP_ENC_COST_ENC_H_ diff --git a/thirdparty/libwebp/src/enc/delta_palettization_enc.c b/thirdparty/libwebp/src/enc/delta_palettization_enc.c deleted file mode 100644 index a61c8e6c93..0000000000 --- a/thirdparty/libwebp/src/enc/delta_palettization_enc.c +++ /dev/null @@ -1,455 +0,0 @@ -// Copyright 2015 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// Author: Mislav Bradac (mislavm@google.com) -// - -#include "src/enc/delta_palettization_enc.h" - -#ifdef WEBP_EXPERIMENTAL_FEATURES -#include "src/webp/types.h" -#include "src/dsp/lossless.h" - -#define MK_COL(r, g, b) (((r) << 16) + ((g) << 8) + (b)) - -// Format allows palette up to 256 entries, but more palette entries produce -// bigger entropy. In the future it will probably be useful to add more entries -// that are far from the origin of the palette or choose remaining entries -// dynamically. -#define DELTA_PALETTE_SIZE 226 - -// Palette used for delta_palettization. Entries are roughly sorted by distance -// of their signed equivalents from the origin. -static const uint32_t kDeltaPalette[DELTA_PALETTE_SIZE] = { - MK_COL(0u, 0u, 0u), - MK_COL(255u, 255u, 255u), - MK_COL(1u, 1u, 1u), - MK_COL(254u, 254u, 254u), - MK_COL(2u, 2u, 2u), - MK_COL(4u, 4u, 4u), - MK_COL(252u, 252u, 252u), - MK_COL(250u, 0u, 0u), - MK_COL(0u, 250u, 0u), - MK_COL(0u, 0u, 250u), - MK_COL(6u, 0u, 0u), - MK_COL(0u, 6u, 0u), - MK_COL(0u, 0u, 6u), - MK_COL(0u, 0u, 248u), - MK_COL(0u, 0u, 8u), - MK_COL(0u, 248u, 0u), - MK_COL(0u, 248u, 248u), - MK_COL(0u, 248u, 8u), - MK_COL(0u, 8u, 0u), - MK_COL(0u, 8u, 248u), - MK_COL(0u, 8u, 8u), - MK_COL(8u, 8u, 8u), - MK_COL(248u, 0u, 0u), - MK_COL(248u, 0u, 248u), - MK_COL(248u, 0u, 8u), - MK_COL(248u, 248u, 0u), - MK_COL(248u, 8u, 0u), - MK_COL(8u, 0u, 0u), - MK_COL(8u, 0u, 248u), - MK_COL(8u, 0u, 8u), - MK_COL(8u, 248u, 0u), - MK_COL(8u, 8u, 0u), - MK_COL(23u, 23u, 23u), - MK_COL(13u, 13u, 13u), - MK_COL(232u, 232u, 232u), - MK_COL(244u, 244u, 244u), - MK_COL(245u, 245u, 250u), - MK_COL(50u, 50u, 50u), - MK_COL(204u, 204u, 204u), - MK_COL(236u, 236u, 236u), - MK_COL(16u, 16u, 16u), - MK_COL(240u, 16u, 16u), - MK_COL(16u, 240u, 16u), - MK_COL(240u, 240u, 16u), - MK_COL(16u, 16u, 240u), - MK_COL(240u, 16u, 240u), - MK_COL(16u, 240u, 240u), - MK_COL(240u, 240u, 240u), - MK_COL(0u, 0u, 232u), - MK_COL(0u, 232u, 0u), - MK_COL(232u, 0u, 0u), - MK_COL(0u, 0u, 24u), - MK_COL(0u, 24u, 0u), - MK_COL(24u, 0u, 0u), - MK_COL(32u, 32u, 32u), - MK_COL(224u, 32u, 32u), - MK_COL(32u, 224u, 32u), - MK_COL(224u, 224u, 32u), - MK_COL(32u, 32u, 224u), - MK_COL(224u, 32u, 224u), - MK_COL(32u, 224u, 224u), - MK_COL(224u, 224u, 224u), - MK_COL(0u, 0u, 176u), - MK_COL(0u, 0u, 80u), - MK_COL(0u, 176u, 0u), - MK_COL(0u, 176u, 176u), - MK_COL(0u, 176u, 80u), - MK_COL(0u, 80u, 0u), - MK_COL(0u, 80u, 176u), - MK_COL(0u, 80u, 80u), - MK_COL(176u, 0u, 0u), - MK_COL(176u, 0u, 176u), - MK_COL(176u, 0u, 80u), - MK_COL(176u, 176u, 0u), - MK_COL(176u, 80u, 0u), - MK_COL(80u, 0u, 0u), - MK_COL(80u, 0u, 176u), - MK_COL(80u, 0u, 80u), - MK_COL(80u, 176u, 0u), - MK_COL(80u, 80u, 0u), - MK_COL(0u, 0u, 152u), - MK_COL(0u, 0u, 104u), - MK_COL(0u, 152u, 0u), - MK_COL(0u, 152u, 152u), - MK_COL(0u, 152u, 104u), - MK_COL(0u, 104u, 0u), - MK_COL(0u, 104u, 152u), - MK_COL(0u, 104u, 104u), - MK_COL(152u, 0u, 0u), - MK_COL(152u, 0u, 152u), - MK_COL(152u, 0u, 104u), - MK_COL(152u, 152u, 0u), - MK_COL(152u, 104u, 0u), - MK_COL(104u, 0u, 0u), - MK_COL(104u, 0u, 152u), - MK_COL(104u, 0u, 104u), - MK_COL(104u, 152u, 0u), - MK_COL(104u, 104u, 0u), - MK_COL(216u, 216u, 216u), - MK_COL(216u, 216u, 40u), - MK_COL(216u, 216u, 176u), - MK_COL(216u, 216u, 80u), - MK_COL(216u, 40u, 216u), - MK_COL(216u, 40u, 40u), - MK_COL(216u, 40u, 176u), - MK_COL(216u, 40u, 80u), - MK_COL(216u, 176u, 216u), - MK_COL(216u, 176u, 40u), - MK_COL(216u, 176u, 176u), - MK_COL(216u, 176u, 80u), - MK_COL(216u, 80u, 216u), - MK_COL(216u, 80u, 40u), - MK_COL(216u, 80u, 176u), - MK_COL(216u, 80u, 80u), - MK_COL(40u, 216u, 216u), - MK_COL(40u, 216u, 40u), - MK_COL(40u, 216u, 176u), - MK_COL(40u, 216u, 80u), - MK_COL(40u, 40u, 216u), - MK_COL(40u, 40u, 40u), - MK_COL(40u, 40u, 176u), - MK_COL(40u, 40u, 80u), - MK_COL(40u, 176u, 216u), - MK_COL(40u, 176u, 40u), - MK_COL(40u, 176u, 176u), - MK_COL(40u, 176u, 80u), - MK_COL(40u, 80u, 216u), - MK_COL(40u, 80u, 40u), - MK_COL(40u, 80u, 176u), - MK_COL(40u, 80u, 80u), - MK_COL(80u, 216u, 216u), - MK_COL(80u, 216u, 40u), - MK_COL(80u, 216u, 176u), - MK_COL(80u, 216u, 80u), - MK_COL(80u, 40u, 216u), - MK_COL(80u, 40u, 40u), - MK_COL(80u, 40u, 176u), - MK_COL(80u, 40u, 80u), - MK_COL(80u, 176u, 216u), - MK_COL(80u, 176u, 40u), - MK_COL(80u, 176u, 176u), - MK_COL(80u, 176u, 80u), - MK_COL(80u, 80u, 216u), - MK_COL(80u, 80u, 40u), - MK_COL(80u, 80u, 176u), - MK_COL(80u, 80u, 80u), - MK_COL(0u, 0u, 192u), - MK_COL(0u, 0u, 64u), - MK_COL(0u, 0u, 128u), - MK_COL(0u, 192u, 0u), - MK_COL(0u, 192u, 192u), - MK_COL(0u, 192u, 64u), - MK_COL(0u, 192u, 128u), - MK_COL(0u, 64u, 0u), - MK_COL(0u, 64u, 192u), - MK_COL(0u, 64u, 64u), - MK_COL(0u, 64u, 128u), - MK_COL(0u, 128u, 0u), - MK_COL(0u, 128u, 192u), - MK_COL(0u, 128u, 64u), - MK_COL(0u, 128u, 128u), - MK_COL(176u, 216u, 216u), - MK_COL(176u, 216u, 40u), - MK_COL(176u, 216u, 176u), - MK_COL(176u, 216u, 80u), - MK_COL(176u, 40u, 216u), - MK_COL(176u, 40u, 40u), - MK_COL(176u, 40u, 176u), - MK_COL(176u, 40u, 80u), - MK_COL(176u, 176u, 216u), - MK_COL(176u, 176u, 40u), - MK_COL(176u, 176u, 176u), - MK_COL(176u, 176u, 80u), - MK_COL(176u, 80u, 216u), - MK_COL(176u, 80u, 40u), - MK_COL(176u, 80u, 176u), - MK_COL(176u, 80u, 80u), - MK_COL(192u, 0u, 0u), - MK_COL(192u, 0u, 192u), - MK_COL(192u, 0u, 64u), - MK_COL(192u, 0u, 128u), - MK_COL(192u, 192u, 0u), - MK_COL(192u, 192u, 192u), - MK_COL(192u, 192u, 64u), - MK_COL(192u, 192u, 128u), - MK_COL(192u, 64u, 0u), - MK_COL(192u, 64u, 192u), - MK_COL(192u, 64u, 64u), - MK_COL(192u, 64u, 128u), - MK_COL(192u, 128u, 0u), - MK_COL(192u, 128u, 192u), - MK_COL(192u, 128u, 64u), - MK_COL(192u, 128u, 128u), - MK_COL(64u, 0u, 0u), - MK_COL(64u, 0u, 192u), - MK_COL(64u, 0u, 64u), - MK_COL(64u, 0u, 128u), - MK_COL(64u, 192u, 0u), - MK_COL(64u, 192u, 192u), - MK_COL(64u, 192u, 64u), - MK_COL(64u, 192u, 128u), - MK_COL(64u, 64u, 0u), - MK_COL(64u, 64u, 192u), - MK_COL(64u, 64u, 64u), - MK_COL(64u, 64u, 128u), - MK_COL(64u, 128u, 0u), - MK_COL(64u, 128u, 192u), - MK_COL(64u, 128u, 64u), - MK_COL(64u, 128u, 128u), - MK_COL(128u, 0u, 0u), - MK_COL(128u, 0u, 192u), - MK_COL(128u, 0u, 64u), - MK_COL(128u, 0u, 128u), - MK_COL(128u, 192u, 0u), - MK_COL(128u, 192u, 192u), - MK_COL(128u, 192u, 64u), - MK_COL(128u, 192u, 128u), - MK_COL(128u, 64u, 0u), - MK_COL(128u, 64u, 192u), - MK_COL(128u, 64u, 64u), - MK_COL(128u, 64u, 128u), - MK_COL(128u, 128u, 0u), - MK_COL(128u, 128u, 192u), - MK_COL(128u, 128u, 64u), - MK_COL(128u, 128u, 128u), -}; - -#undef MK_COL - -//------------------------------------------------------------------------------ -// TODO(skal): move the functions to dsp/lossless.c when the correct -// granularity is found. For now, we'll just copy-paste some useful bits -// here instead. - -// In-place sum of each component with mod 256. -static WEBP_INLINE void AddPixelsEq(uint32_t* a, uint32_t b) { - const uint32_t alpha_and_green = (*a & 0xff00ff00u) + (b & 0xff00ff00u); - const uint32_t red_and_blue = (*a & 0x00ff00ffu) + (b & 0x00ff00ffu); - *a = (alpha_and_green & 0xff00ff00u) | (red_and_blue & 0x00ff00ffu); -} - -static WEBP_INLINE uint32_t Clip255(uint32_t a) { - if (a < 256) { - return a; - } - // return 0, when a is a negative integer. - // return 255, when a is positive. - return ~a >> 24; -} - -// Delta palettization functions. -static WEBP_INLINE int Square(int x) { - return x * x; -} - -static WEBP_INLINE uint32_t Intensity(uint32_t a) { - return - 30 * ((a >> 16) & 0xff) + - 59 * ((a >> 8) & 0xff) + - 11 * ((a >> 0) & 0xff); -} - -static uint32_t CalcDist(uint32_t predicted_value, uint32_t actual_value, - uint32_t palette_entry) { - int i; - uint32_t distance = 0; - AddPixelsEq(&predicted_value, palette_entry); - for (i = 0; i < 32; i += 8) { - const int32_t av = (actual_value >> i) & 0xff; - const int32_t pv = (predicted_value >> i) & 0xff; - distance += Square(pv - av); - } - // We sum square of intensity difference with factor 10, but because Intensity - // returns 100 times real intensity we need to multiply differences of colors - // by 1000. - distance *= 1000u; - distance += Square(Intensity(predicted_value) - - Intensity(actual_value)); - return distance; -} - -static uint32_t Predict(int x, int y, uint32_t* image) { - const uint32_t t = (y == 0) ? ARGB_BLACK : image[x]; - const uint32_t l = (x == 0) ? ARGB_BLACK : image[x - 1]; - const uint32_t p = - (((((t >> 24) & 0xff) + ((l >> 24) & 0xff)) / 2) << 24) + - (((((t >> 16) & 0xff) + ((l >> 16) & 0xff)) / 2) << 16) + - (((((t >> 8) & 0xff) + ((l >> 8) & 0xff)) / 2) << 8) + - (((((t >> 0) & 0xff) + ((l >> 0) & 0xff)) / 2) << 0); - if (x == 0 && y == 0) return ARGB_BLACK; - if (x == 0) return t; - if (y == 0) return l; - return p; -} - -static WEBP_INLINE int AddSubtractComponentFullWithCoefficient( - int a, int b, int c) { - return Clip255(a + ((b - c) >> 2)); -} - -static WEBP_INLINE uint32_t ClampedAddSubtractFullWithCoefficient( - uint32_t c0, uint32_t c1, uint32_t c2) { - const int a = AddSubtractComponentFullWithCoefficient( - c0 >> 24, c1 >> 24, c2 >> 24); - const int r = AddSubtractComponentFullWithCoefficient((c0 >> 16) & 0xff, - (c1 >> 16) & 0xff, - (c2 >> 16) & 0xff); - const int g = AddSubtractComponentFullWithCoefficient((c0 >> 8) & 0xff, - (c1 >> 8) & 0xff, - (c2 >> 8) & 0xff); - const int b = AddSubtractComponentFullWithCoefficient( - c0 & 0xff, c1 & 0xff, c2 & 0xff); - return ((uint32_t)a << 24) | (r << 16) | (g << 8) | b; -} - -//------------------------------------------------------------------------------ - -// Find palette entry with minimum error from difference of actual pixel value -// and predicted pixel value. Propagate error of pixel to its top and left pixel -// in src array. Write predicted_value + palette_entry to new_image. Return -// index of best palette entry. -static int FindBestPaletteEntry(uint32_t src, uint32_t predicted_value, - const uint32_t palette[], int palette_size) { - int i; - int idx = 0; - uint32_t best_distance = CalcDist(predicted_value, src, palette[0]); - for (i = 1; i < palette_size; ++i) { - const uint32_t distance = CalcDist(predicted_value, src, palette[i]); - if (distance < best_distance) { - best_distance = distance; - idx = i; - } - } - return idx; -} - -static void ApplyBestPaletteEntry(int x, int y, - uint32_t new_value, uint32_t palette_value, - uint32_t* src, int src_stride, - uint32_t* new_image) { - AddPixelsEq(&new_value, palette_value); - if (x > 0) { - src[x - 1] = ClampedAddSubtractFullWithCoefficient(src[x - 1], - new_value, src[x]); - } - if (y > 0) { - src[x - src_stride] = - ClampedAddSubtractFullWithCoefficient(src[x - src_stride], - new_value, src[x]); - } - new_image[x] = new_value; -} - -//------------------------------------------------------------------------------ -// Main entry point - -static WebPEncodingError ApplyDeltaPalette(uint32_t* src, uint32_t* dst, - uint32_t src_stride, - uint32_t dst_stride, - const uint32_t* palette, - int palette_size, - int width, int height, - int num_passes) { - int x, y; - WebPEncodingError err = VP8_ENC_OK; - uint32_t* new_image = (uint32_t*)WebPSafeMalloc(width, sizeof(*new_image)); - uint8_t* const tmp_row = (uint8_t*)WebPSafeMalloc(width, sizeof(*tmp_row)); - if (new_image == NULL || tmp_row == NULL) { - err = VP8_ENC_ERROR_OUT_OF_MEMORY; - goto Error; - } - - while (num_passes--) { - uint32_t* cur_src = src; - uint32_t* cur_dst = dst; - for (y = 0; y < height; ++y) { - for (x = 0; x < width; ++x) { - const uint32_t predicted_value = Predict(x, y, new_image); - tmp_row[x] = FindBestPaletteEntry(cur_src[x], predicted_value, - palette, palette_size); - ApplyBestPaletteEntry(x, y, predicted_value, palette[tmp_row[x]], - cur_src, src_stride, new_image); - } - for (x = 0; x < width; ++x) { - cur_dst[x] = palette[tmp_row[x]]; - } - cur_src += src_stride; - cur_dst += dst_stride; - } - } - Error: - WebPSafeFree(new_image); - WebPSafeFree(tmp_row); - return err; -} - -// replaces enc->argb_ by a palettizable approximation of it, -// and generates optimal enc->palette_[] -WebPEncodingError WebPSearchOptimalDeltaPalette(VP8LEncoder* const enc) { - const WebPPicture* const pic = enc->pic_; - uint32_t* src = pic->argb; - uint32_t* dst = enc->argb_; - const int width = pic->width; - const int height = pic->height; - - WebPEncodingError err = VP8_ENC_OK; - memcpy(enc->palette_, kDeltaPalette, sizeof(kDeltaPalette)); - enc->palette_[DELTA_PALETTE_SIZE - 1] = src[0] - 0xff000000u; - enc->palette_size_ = DELTA_PALETTE_SIZE; - err = ApplyDeltaPalette(src, dst, pic->argb_stride, enc->current_width_, - enc->palette_, enc->palette_size_, - width, height, 2); - if (err != VP8_ENC_OK) goto Error; - - Error: - return err; -} - -#else // !WEBP_EXPERIMENTAL_FEATURES - -WebPEncodingError WebPSearchOptimalDeltaPalette(VP8LEncoder* const enc) { - (void)enc; - return VP8_ENC_ERROR_INVALID_CONFIGURATION; -} - -#endif // WEBP_EXPERIMENTAL_FEATURES diff --git a/thirdparty/libwebp/src/enc/delta_palettization_enc.h b/thirdparty/libwebp/src/enc/delta_palettization_enc.h deleted file mode 100644 index b15e2cd487..0000000000 --- a/thirdparty/libwebp/src/enc/delta_palettization_enc.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2015 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// Author: Mislav Bradac (mislavm@google.com) -// - -#ifndef WEBP_ENC_DELTA_PALETTIZATION_ENC_H_ -#define WEBP_ENC_DELTA_PALETTIZATION_ENC_H_ - -#include "src/webp/encode.h" -#include "src/enc/vp8li_enc.h" - -// Replaces enc->argb_[] input by a palettizable approximation of it, -// and generates optimal enc->palette_[]. -// This function can revert enc->use_palette_ / enc->use_predict_ flag -// if delta-palettization is not producing expected saving. -WebPEncodingError WebPSearchOptimalDeltaPalette(VP8LEncoder* const enc); - -#endif // WEBP_ENC_DELTA_PALETTIZATION_ENC_H_ diff --git a/thirdparty/libwebp/src/enc/histogram_enc.c b/thirdparty/libwebp/src/enc/histogram_enc.c index 9fdbc627a1..4e49e0a201 100644 --- a/thirdparty/libwebp/src/enc/histogram_enc.c +++ b/thirdparty/libwebp/src/enc/histogram_enc.c @@ -51,10 +51,12 @@ static void HistogramCopy(const VP8LHistogram* const src, VP8LHistogram* const dst) { uint32_t* const dst_literal = dst->literal_; const int dst_cache_bits = dst->palette_code_bits_; + const int literal_size = VP8LHistogramNumCodes(dst_cache_bits); const int histo_size = VP8LGetHistogramSize(dst_cache_bits); assert(src->palette_code_bits_ == dst_cache_bits); memcpy(dst, src, histo_size); dst->literal_ = dst_literal; + memcpy(dst->literal_, src->literal_, literal_size * sizeof(*dst->literal_)); } int VP8LGetHistogramSize(int cache_bits) { @@ -91,9 +93,19 @@ void VP8LHistogramCreate(VP8LHistogram* const p, VP8LHistogramStoreRefs(refs, p); } -void VP8LHistogramInit(VP8LHistogram* const p, int palette_code_bits) { +void VP8LHistogramInit(VP8LHistogram* const p, int palette_code_bits, + int init_arrays) { p->palette_code_bits_ = palette_code_bits; - HistogramClear(p); + if (init_arrays) { + HistogramClear(p); + } else { + p->trivial_symbol_ = 0; + p->bit_cost_ = 0.; + p->literal_cost_ = 0.; + p->red_cost_ = 0.; + p->blue_cost_ = 0.; + memset(p->is_used_, 0, sizeof(p->is_used_)); + } } VP8LHistogram* VP8LAllocateHistogram(int cache_bits) { @@ -104,37 +116,70 @@ VP8LHistogram* VP8LAllocateHistogram(int cache_bits) { histo = (VP8LHistogram*)memory; // literal_ won't necessary be aligned. histo->literal_ = (uint32_t*)(memory + sizeof(VP8LHistogram)); - VP8LHistogramInit(histo, cache_bits); + VP8LHistogramInit(histo, cache_bits, /*init_arrays=*/ 0); return histo; } +// Resets the pointers of the histograms to point to the bit buffer in the set. +static void HistogramSetResetPointers(VP8LHistogramSet* const set, + int cache_bits) { + int i; + const int histo_size = VP8LGetHistogramSize(cache_bits); + uint8_t* memory = (uint8_t*) (set->histograms); + memory += set->max_size * sizeof(*set->histograms); + for (i = 0; i < set->max_size; ++i) { + memory = (uint8_t*) WEBP_ALIGN(memory); + set->histograms[i] = (VP8LHistogram*) memory; + // literal_ won't necessary be aligned. + set->histograms[i]->literal_ = (uint32_t*)(memory + sizeof(VP8LHistogram)); + memory += histo_size; + } +} + +// Returns the total size of the VP8LHistogramSet. +static size_t HistogramSetTotalSize(int size, int cache_bits) { + const int histo_size = VP8LGetHistogramSize(cache_bits); + return (sizeof(VP8LHistogramSet) + size * (sizeof(VP8LHistogram*) + + histo_size + WEBP_ALIGN_CST)); +} + VP8LHistogramSet* VP8LAllocateHistogramSet(int size, int cache_bits) { int i; VP8LHistogramSet* set; - const int histo_size = VP8LGetHistogramSize(cache_bits); - const size_t total_size = - sizeof(*set) + size * (sizeof(*set->histograms) + - histo_size + WEBP_ALIGN_CST); + const size_t total_size = HistogramSetTotalSize(size, cache_bits); uint8_t* memory = (uint8_t*)WebPSafeMalloc(total_size, sizeof(*memory)); if (memory == NULL) return NULL; set = (VP8LHistogramSet*)memory; memory += sizeof(*set); set->histograms = (VP8LHistogram**)memory; - memory += size * sizeof(*set->histograms); set->max_size = size; set->size = size; + HistogramSetResetPointers(set, cache_bits); for (i = 0; i < size; ++i) { - memory = (uint8_t*)WEBP_ALIGN(memory); - set->histograms[i] = (VP8LHistogram*)memory; - // literal_ won't necessary be aligned. - set->histograms[i]->literal_ = (uint32_t*)(memory + sizeof(VP8LHistogram)); - VP8LHistogramInit(set->histograms[i], cache_bits); - memory += histo_size; + VP8LHistogramInit(set->histograms[i], cache_bits, /*init_arrays=*/ 0); } return set; } +void VP8LHistogramSetClear(VP8LHistogramSet* const set) { + int i; + const int cache_bits = set->histograms[0]->palette_code_bits_; + const int size = set->size; + const size_t total_size = HistogramSetTotalSize(size, cache_bits); + uint8_t* memory = (uint8_t*)set; + + memset(memory, 0, total_size); + memory += sizeof(*set); + set->histograms = (VP8LHistogram**)memory; + set->max_size = size; + set->size = size; + HistogramSetResetPointers(set, cache_bits); + for (i = 0; i < size; ++i) { + set->histograms[i]->palette_code_bits_ = cache_bits; + } +} + // ----------------------------------------------------------------------------- void VP8LHistogramAddSinglePixOrCopy(VP8LHistogram* const histo, @@ -237,7 +282,8 @@ static double FinalHuffmanCost(const VP8LStreaks* const stats) { // Get the symbol entropy for the distribution 'population'. // Set 'trivial_sym', if there's only one symbol present in the distribution. static double PopulationCost(const uint32_t* const population, int length, - uint32_t* const trivial_sym) { + uint32_t* const trivial_sym, + uint8_t* const is_used) { VP8LBitEntropy bit_entropy; VP8LStreaks stats; VP8LGetEntropyUnrefined(population, length, &bit_entropy, &stats); @@ -245,6 +291,8 @@ static double PopulationCost(const uint32_t* const population, int length, *trivial_sym = (bit_entropy.nonzeros == 1) ? bit_entropy.nonzero_code : VP8L_NON_TRIVIAL_SYM; } + // The histogram is used if there is at least one non-zero streak. + *is_used = (stats.streaks[1][0] != 0 || stats.streaks[1][1] != 0); return BitsEntropyRefine(&bit_entropy) + FinalHuffmanCost(&stats); } @@ -253,7 +301,9 @@ static double PopulationCost(const uint32_t* const population, int length, // non-zero: both the zero-th one, or both the last one. static WEBP_INLINE double GetCombinedEntropy(const uint32_t* const X, const uint32_t* const Y, - int length, int trivial_at_end) { + int length, int is_X_used, + int is_Y_used, + int trivial_at_end) { VP8LStreaks stats; if (trivial_at_end) { // This configuration is due to palettization that transforms an indexed @@ -262,28 +312,43 @@ static WEBP_INLINE double GetCombinedEntropy(const uint32_t* const X, // Only FinalHuffmanCost needs to be evaluated. memset(&stats, 0, sizeof(stats)); // Deal with the non-zero value at index 0 or length-1. - stats.streaks[1][0] += 1; + stats.streaks[1][0] = 1; // Deal with the following/previous zero streak. - stats.counts[0] += 1; - stats.streaks[0][1] += length - 1; + stats.counts[0] = 1; + stats.streaks[0][1] = length - 1; return FinalHuffmanCost(&stats); } else { VP8LBitEntropy bit_entropy; - VP8LGetCombinedEntropyUnrefined(X, Y, length, &bit_entropy, &stats); + if (is_X_used) { + if (is_Y_used) { + VP8LGetCombinedEntropyUnrefined(X, Y, length, &bit_entropy, &stats); + } else { + VP8LGetEntropyUnrefined(X, length, &bit_entropy, &stats); + } + } else { + if (is_Y_used) { + VP8LGetEntropyUnrefined(Y, length, &bit_entropy, &stats); + } else { + memset(&stats, 0, sizeof(stats)); + stats.counts[0] = 1; + stats.streaks[0][length > 3] = length; + VP8LBitEntropyInit(&bit_entropy); + } + } return BitsEntropyRefine(&bit_entropy) + FinalHuffmanCost(&stats); } } // Estimates the Entropy + Huffman + other block overhead size cost. -double VP8LHistogramEstimateBits(const VP8LHistogram* const p) { +double VP8LHistogramEstimateBits(VP8LHistogram* const p) { return - PopulationCost( - p->literal_, VP8LHistogramNumCodes(p->palette_code_bits_), NULL) - + PopulationCost(p->red_, NUM_LITERAL_CODES, NULL) - + PopulationCost(p->blue_, NUM_LITERAL_CODES, NULL) - + PopulationCost(p->alpha_, NUM_LITERAL_CODES, NULL) - + PopulationCost(p->distance_, NUM_DISTANCE_CODES, NULL) + PopulationCost(p->literal_, VP8LHistogramNumCodes(p->palette_code_bits_), + NULL, &p->is_used_[0]) + + PopulationCost(p->red_, NUM_LITERAL_CODES, NULL, &p->is_used_[1]) + + PopulationCost(p->blue_, NUM_LITERAL_CODES, NULL, &p->is_used_[2]) + + PopulationCost(p->alpha_, NUM_LITERAL_CODES, NULL, &p->is_used_[3]) + + PopulationCost(p->distance_, NUM_DISTANCE_CODES, NULL, &p->is_used_[4]) + VP8LExtraCost(p->literal_ + NUM_LITERAL_CODES, NUM_LENGTH_CODES) + VP8LExtraCost(p->distance_, NUM_DISTANCE_CODES); } @@ -299,7 +364,8 @@ static int GetCombinedHistogramEntropy(const VP8LHistogram* const a, int trivial_at_end = 0; assert(a->palette_code_bits_ == b->palette_code_bits_); *cost += GetCombinedEntropy(a->literal_, b->literal_, - VP8LHistogramNumCodes(palette_code_bits), 0); + VP8LHistogramNumCodes(palette_code_bits), + a->is_used_[0], b->is_used_[0], 0); *cost += VP8LExtraCostCombined(a->literal_ + NUM_LITERAL_CODES, b->literal_ + NUM_LITERAL_CODES, NUM_LENGTH_CODES); @@ -319,19 +385,23 @@ static int GetCombinedHistogramEntropy(const VP8LHistogram* const a, } *cost += - GetCombinedEntropy(a->red_, b->red_, NUM_LITERAL_CODES, trivial_at_end); + GetCombinedEntropy(a->red_, b->red_, NUM_LITERAL_CODES, a->is_used_[1], + b->is_used_[1], trivial_at_end); if (*cost > cost_threshold) return 0; *cost += - GetCombinedEntropy(a->blue_, b->blue_, NUM_LITERAL_CODES, trivial_at_end); + GetCombinedEntropy(a->blue_, b->blue_, NUM_LITERAL_CODES, a->is_used_[2], + b->is_used_[2], trivial_at_end); if (*cost > cost_threshold) return 0; - *cost += GetCombinedEntropy(a->alpha_, b->alpha_, NUM_LITERAL_CODES, - trivial_at_end); + *cost += + GetCombinedEntropy(a->alpha_, b->alpha_, NUM_LITERAL_CODES, + a->is_used_[3], b->is_used_[3], trivial_at_end); if (*cost > cost_threshold) return 0; *cost += - GetCombinedEntropy(a->distance_, b->distance_, NUM_DISTANCE_CODES, 0); + GetCombinedEntropy(a->distance_, b->distance_, NUM_DISTANCE_CODES, + a->is_used_[4], b->is_used_[4], 0); *cost += VP8LExtraCostCombined(a->distance_, b->distance_, NUM_DISTANCE_CODES); if (*cost > cost_threshold) return 0; @@ -419,16 +489,19 @@ static void UpdateDominantCostRange( static void UpdateHistogramCost(VP8LHistogram* const h) { uint32_t alpha_sym, red_sym, blue_sym; const double alpha_cost = - PopulationCost(h->alpha_, NUM_LITERAL_CODES, &alpha_sym); + PopulationCost(h->alpha_, NUM_LITERAL_CODES, &alpha_sym, + &h->is_used_[3]); const double distance_cost = - PopulationCost(h->distance_, NUM_DISTANCE_CODES, NULL) + + PopulationCost(h->distance_, NUM_DISTANCE_CODES, NULL, &h->is_used_[4]) + VP8LExtraCost(h->distance_, NUM_DISTANCE_CODES); const int num_codes = VP8LHistogramNumCodes(h->palette_code_bits_); - h->literal_cost_ = PopulationCost(h->literal_, num_codes, NULL) + - VP8LExtraCost(h->literal_ + NUM_LITERAL_CODES, - NUM_LENGTH_CODES); - h->red_cost_ = PopulationCost(h->red_, NUM_LITERAL_CODES, &red_sym); - h->blue_cost_ = PopulationCost(h->blue_, NUM_LITERAL_CODES, &blue_sym); + h->literal_cost_ = + PopulationCost(h->literal_, num_codes, NULL, &h->is_used_[0]) + + VP8LExtraCost(h->literal_ + NUM_LITERAL_CODES, NUM_LENGTH_CODES); + h->red_cost_ = + PopulationCost(h->red_, NUM_LITERAL_CODES, &red_sym, &h->is_used_[1]); + h->blue_cost_ = + PopulationCost(h->blue_, NUM_LITERAL_CODES, &blue_sym, &h->is_used_[2]); h->bit_cost_ = h->literal_cost_ + h->red_cost_ + h->blue_cost_ + alpha_cost + distance_cost; if ((alpha_sym | red_sym | blue_sym) == VP8L_NON_TRIVIAL_SYM) { @@ -473,6 +546,7 @@ static void HistogramBuild( VP8LHistogram** const histograms = image_histo->histograms; VP8LRefsCursor c = VP8LRefsCursorInit(backward_refs); assert(histo_bits > 0); + VP8LHistogramSetClear(image_histo); while (VP8LRefsCursorOk(&c)) { const PixOrCopy* const v = c.cur_pos; const int ix = (y >> histo_bits) * histo_xsize + (x >> histo_bits); @@ -493,11 +567,19 @@ static void HistogramCopyAndAnalyze( const int histo_size = orig_histo->size; VP8LHistogram** const orig_histograms = orig_histo->histograms; VP8LHistogram** const histograms = image_histo->histograms; + image_histo->size = 0; for (i = 0; i < histo_size; ++i) { VP8LHistogram* const histo = orig_histograms[i]; UpdateHistogramCost(histo); + + // Skip the histogram if it is completely empty, which can happen for tiles + // with no information (when they are skipped because of LZ77). + if (!histo->is_used_[0] && !histo->is_used_[1] && !histo->is_used_[2] + && !histo->is_used_[3] && !histo->is_used_[4]) { + continue; + } // Copy histograms from orig_histo[] to image_histo[]. - HistogramCopy(histo, histograms[i]); + HistogramCopy(histo, histograms[image_histo->size++]); } } @@ -674,6 +756,18 @@ static void HistoQueueUpdateHead(HistoQueue* const histo_queue, } } +// Update the cost diff and combo of a pair of histograms. This needs to be +// called when the the histograms have been merged with a third one. +static void HistoQueueUpdatePair(const VP8LHistogram* const h1, + const VP8LHistogram* const h2, + double threshold, + HistogramPair* const pair) { + const double sum_cost = h1->bit_cost_ + h2->bit_cost_; + pair->cost_combo = 0.; + GetCombinedHistogramEntropy(h1, h2, sum_cost + threshold, &pair->cost_combo); + pair->cost_diff = pair->cost_combo - sum_cost; +} + // Create a pair from indices "idx1" and "idx2" provided its cost // is inferior to "threshold", a negative entropy. // It returns the cost of the pair, or 0. if it superior to threshold. @@ -683,7 +777,6 @@ static double HistoQueuePush(HistoQueue* const histo_queue, const VP8LHistogram* h1; const VP8LHistogram* h2; HistogramPair pair; - double sum_cost; assert(threshold <= 0.); if (idx1 > idx2) { @@ -695,10 +788,8 @@ static double HistoQueuePush(HistoQueue* const histo_queue, pair.idx2 = idx2; h1 = histograms[idx1]; h2 = histograms[idx2]; - sum_cost = h1->bit_cost_ + h2->bit_cost_; - pair.cost_combo = 0.; - GetCombinedHistogramEntropy(h1, h2, sum_cost + threshold, &pair.cost_combo); - pair.cost_diff = pair.cost_combo - sum_cost; + + HistoQueueUpdatePair(h1, h2, threshold, &pair); // Do not even consider the pair if it does not improve the entropy. if (pair.cost_diff >= threshold) return 0.; @@ -891,8 +982,7 @@ static int HistogramCombineStochastic(VP8LHistogramSet* const image_histo, } if (do_eval) { // Re-evaluate the cost of an updated pair. - GetCombinedHistogramEntropy(histograms[p->idx1], histograms[p->idx2], 0, - &p->cost_diff); + HistoQueueUpdatePair(histograms[p->idx1], histograms[p->idx2], 0., p); if (p->cost_diff >= 0.) { HistoQueuePopPair(&histo_queue, p); continue; @@ -987,8 +1077,7 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, // histograms of small sizes (as bin_map will be very sparse) and // maximum quality q==100 (to preserve the compression gains at that level). const int entropy_combine_num_bins = low_effort ? NUM_PARTITIONS : BIN_SIZE; - const int entropy_combine = - (orig_histo->size > entropy_combine_num_bins * 2) && (quality < 100); + int entropy_combine; if (orig_histo == NULL) goto Error; @@ -996,15 +1085,16 @@ int VP8LGetHistoImageSymbols(int xsize, int ysize, HistogramBuild(xsize, histo_bits, refs, orig_histo); // Copies the histograms and computes its bit_cost. HistogramCopyAndAnalyze(orig_histo, image_histo); - + entropy_combine = + (image_histo->size > entropy_combine_num_bins * 2) && (quality < 100); if (entropy_combine) { - const int bin_map_size = orig_histo->size; + const int bin_map_size = image_histo->size; // Reuse histogram_symbols storage. By definition, it's guaranteed to be ok. uint16_t* const bin_map = histogram_symbols; const double combine_cost_factor = GetCombineCostFactor(image_histo_raw_size, quality); - HistogramAnalyzeEntropyBin(orig_histo, bin_map, low_effort); + HistogramAnalyzeEntropyBin(image_histo, bin_map, low_effort); // Collapse histograms with similar entropy. HistogramCombineEntropyBin(image_histo, tmp_histo, bin_map, bin_map_size, entropy_combine_num_bins, combine_cost_factor, diff --git a/thirdparty/libwebp/src/enc/histogram_enc.h b/thirdparty/libwebp/src/enc/histogram_enc.h index e8c4c83f6f..54c2d21783 100644 --- a/thirdparty/libwebp/src/enc/histogram_enc.h +++ b/thirdparty/libwebp/src/enc/histogram_enc.h @@ -44,6 +44,7 @@ typedef struct { double literal_cost_; // Cached values of dominant entropy costs: double red_cost_; // literal, red & blue. double blue_cost_; + uint8_t is_used_[5]; // 5 for literal, red, blue, alpha, distance } VP8LHistogram; // Collection of histograms with fixed capacity, allocated as one @@ -67,7 +68,9 @@ void VP8LHistogramCreate(VP8LHistogram* const p, int VP8LGetHistogramSize(int palette_code_bits); // Set the palette_code_bits and reset the stats. -void VP8LHistogramInit(VP8LHistogram* const p, int palette_code_bits); +// If init_arrays is true, the arrays are also filled with 0's. +void VP8LHistogramInit(VP8LHistogram* const p, int palette_code_bits, + int init_arrays); // Collect all the references into a histogram (without reset) void VP8LHistogramStoreRefs(const VP8LBackwardRefs* const refs, @@ -83,6 +86,9 @@ void VP8LFreeHistogramSet(VP8LHistogramSet* const histo); // using 'cache_bits'. Return NULL in case of memory error. VP8LHistogramSet* VP8LAllocateHistogramSet(int size, int cache_bits); +// Set the histograms in set to 0. +void VP8LHistogramSetClear(VP8LHistogramSet* const set); + // Allocate and initialize histogram object with specified 'cache_bits'. // Returns NULL in case of memory error. // Special case of VP8LAllocateHistogramSet, with size equals 1. @@ -113,7 +119,7 @@ double VP8LBitsEntropy(const uint32_t* const array, int n); // Estimate how many bits the combined entropy of literals and distance // approximately maps to. -double VP8LHistogramEstimateBits(const VP8LHistogram* const p); +double VP8LHistogramEstimateBits(VP8LHistogram* const p); #ifdef __cplusplus } diff --git a/thirdparty/libwebp/src/enc/iterator_enc.c b/thirdparty/libwebp/src/enc/iterator_enc.c index 7c47d51272..29f91d8315 100644 --- a/thirdparty/libwebp/src/enc/iterator_enc.c +++ b/thirdparty/libwebp/src/enc/iterator_enc.c @@ -128,7 +128,7 @@ static void ImportLine(const uint8_t* src, int src_stride, for (; i < total_len; ++i) dst[i] = dst[len - 1]; } -void VP8IteratorImport(VP8EncIterator* const it, uint8_t* tmp_32) { +void VP8IteratorImport(VP8EncIterator* const it, uint8_t* const tmp_32) { const VP8Encoder* const enc = it->enc_; const int x = it->x_, y = it->y_; const WebPPicture* const pic = enc->pic_; diff --git a/thirdparty/libwebp/src/enc/picture_tools_enc.c b/thirdparty/libwebp/src/enc/picture_tools_enc.c index be292d4391..d0e8a495da 100644 --- a/thirdparty/libwebp/src/enc/picture_tools_enc.c +++ b/thirdparty/libwebp/src/enc/picture_tools_enc.c @@ -16,10 +16,6 @@ #include "src/enc/vp8i_enc.h" #include "src/dsp/yuv.h" -static WEBP_INLINE uint32_t MakeARGB32(int r, int g, int b) { - return (0xff000000u | (r << 16) | (g << 8) | b); -} - //------------------------------------------------------------------------------ // Helper: clean up fully transparent area to help compressibility. @@ -195,6 +191,10 @@ void WebPCleanupTransparentAreaLossless(WebPPicture* const pic) { #define BLEND_10BIT(V0, V1, ALPHA) \ ((((V0) * (1020 - (ALPHA)) + (V1) * (ALPHA)) * 0x101 + 1024) >> 18) +static WEBP_INLINE uint32_t MakeARGB32(int r, int g, int b) { + return (0xff000000u | (r << 16) | (g << 8) | b); +} + void WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb) { const int red = (background_rgb >> 16) & 0xff; const int green = (background_rgb >> 8) & 0xff; @@ -208,39 +208,44 @@ void WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb) { const int U0 = VP8RGBToU(4 * red, 4 * green, 4 * blue, 4 * YUV_HALF); const int V0 = VP8RGBToV(4 * red, 4 * green, 4 * blue, 4 * YUV_HALF); const int has_alpha = pic->colorspace & WEBP_CSP_ALPHA_BIT; - if (!has_alpha || pic->a == NULL) return; // nothing to do + uint8_t* y_ptr = pic->y; + uint8_t* u_ptr = pic->u; + uint8_t* v_ptr = pic->v; + uint8_t* a_ptr = pic->a; + if (!has_alpha || a_ptr == NULL) return; // nothing to do for (y = 0; y < pic->height; ++y) { // Luma blending - uint8_t* const y_ptr = pic->y + y * pic->y_stride; - uint8_t* const a_ptr = pic->a + y * pic->a_stride; for (x = 0; x < pic->width; ++x) { - const int alpha = a_ptr[x]; + const uint8_t alpha = a_ptr[x]; if (alpha < 0xff) { - y_ptr[x] = BLEND(Y0, y_ptr[x], a_ptr[x]); + y_ptr[x] = BLEND(Y0, y_ptr[x], alpha); } } // Chroma blending every even line if ((y & 1) == 0) { - uint8_t* const u = pic->u + (y >> 1) * pic->uv_stride; - uint8_t* const v = pic->v + (y >> 1) * pic->uv_stride; uint8_t* const a_ptr2 = (y + 1 == pic->height) ? a_ptr : a_ptr + pic->a_stride; for (x = 0; x < uv_width; ++x) { // Average four alpha values into a single blending weight. // TODO(skal): might lead to visible contouring. Can we do better? - const int alpha = + const uint32_t alpha = a_ptr[2 * x + 0] + a_ptr[2 * x + 1] + a_ptr2[2 * x + 0] + a_ptr2[2 * x + 1]; - u[x] = BLEND_10BIT(U0, u[x], alpha); - v[x] = BLEND_10BIT(V0, v[x], alpha); + u_ptr[x] = BLEND_10BIT(U0, u_ptr[x], alpha); + v_ptr[x] = BLEND_10BIT(V0, v_ptr[x], alpha); } if (pic->width & 1) { // rightmost pixel - const int alpha = 2 * (a_ptr[2 * x + 0] + a_ptr2[2 * x + 0]); - u[x] = BLEND_10BIT(U0, u[x], alpha); - v[x] = BLEND_10BIT(V0, v[x], alpha); + const uint32_t alpha = 2 * (a_ptr[2 * x + 0] + a_ptr2[2 * x + 0]); + u_ptr[x] = BLEND_10BIT(U0, u_ptr[x], alpha); + v_ptr[x] = BLEND_10BIT(V0, v_ptr[x], alpha); } + } else { + u_ptr += pic->uv_stride; + v_ptr += pic->uv_stride; } - memset(a_ptr, 0xff, pic->width); + memset(a_ptr, 0xff, pic->width); // reset alpha value to opaque + a_ptr += pic->a_stride; + y_ptr += pic->y_stride; } } else { uint32_t* argb = pic->argb; diff --git a/thirdparty/libwebp/src/enc/vp8i_enc.h b/thirdparty/libwebp/src/enc/vp8i_enc.h index 624e8f8e66..92439febb8 100644 --- a/thirdparty/libwebp/src/enc/vp8i_enc.h +++ b/thirdparty/libwebp/src/enc/vp8i_enc.h @@ -32,7 +32,7 @@ extern "C" { // version numbers #define ENC_MAJ_VERSION 1 #define ENC_MIN_VERSION 0 -#define ENC_REV_VERSION 0 +#define ENC_REV_VERSION 1 enum { MAX_LF_LEVELS = 64, // Maximum loop filter level MAX_VARIABLE_LEVEL = 67, // last (inclusive) level with variable cost @@ -278,7 +278,7 @@ int VP8IteratorIsDone(const VP8EncIterator* const it); // Import uncompressed samples from source. // If tmp_32 is not NULL, import boundary samples too. // tmp_32 is a 32-bytes scratch buffer that must be aligned in memory. -void VP8IteratorImport(VP8EncIterator* const it, uint8_t* tmp_32); +void VP8IteratorImport(VP8EncIterator* const it, uint8_t* const tmp_32); // export decimated samples void VP8IteratorExport(const VP8EncIterator* const it); // go to next macroblock. Returns false if not finished. @@ -515,4 +515,4 @@ void WebPCleanupTransparentAreaLossless(WebPPicture* const pic); } // extern "C" #endif -#endif /* WEBP_ENC_VP8I_ENC_H_ */ +#endif // WEBP_ENC_VP8I_ENC_H_ diff --git a/thirdparty/libwebp/src/enc/vp8l_enc.c b/thirdparty/libwebp/src/enc/vp8l_enc.c index a89184eb08..2713edcd95 100644 --- a/thirdparty/libwebp/src/enc/vp8l_enc.c +++ b/thirdparty/libwebp/src/enc/vp8l_enc.c @@ -809,6 +809,7 @@ static WebPEncodingError EncodeImageNoHuffman(VP8LBitWriter* const bw, err = VP8_ENC_ERROR_OUT_OF_MEMORY; goto Error; } + VP8LHistogramSetClear(histogram_image); // Build histogram image and symbols from backward references. VP8LHistogramStoreRefs(refs, histogram_image->histograms[0]); @@ -1248,14 +1249,20 @@ static WebPEncodingError MakeInputImageCopy(VP8LEncoder* const enc) { const WebPPicture* const picture = enc->pic_; const int width = picture->width; const int height = picture->height; - int y; + err = AllocateTransformBuffer(enc, width, height); if (err != VP8_ENC_OK) return err; if (enc->argb_content_ == kEncoderARGB) return VP8_ENC_OK; - for (y = 0; y < height; ++y) { - memcpy(enc->argb_ + y * width, - picture->argb + y * picture->argb_stride, - width * sizeof(*enc->argb_)); + + { + uint32_t* dst = enc->argb_; + const uint32_t* src = picture->argb; + int y; + for (y = 0; y < height; ++y) { + memcpy(dst, src, width * sizeof(*dst)); + dst += width; + src += picture->argb_stride; + } } enc->argb_content_ = kEncoderARGB; assert(enc->current_width_ == width); diff --git a/thirdparty/libwebp/src/enc/vp8li_enc.h b/thirdparty/libwebp/src/enc/vp8li_enc.h index 298a4a0014..d2d0fc509c 100644 --- a/thirdparty/libwebp/src/enc/vp8li_enc.h +++ b/thirdparty/libwebp/src/enc/vp8li_enc.h @@ -115,4 +115,4 @@ void VP8LColorSpaceTransform(int width, int height, int bits, int quality, } // extern "C" #endif -#endif /* WEBP_ENC_VP8LI_ENC_H_ */ +#endif // WEBP_ENC_VP8LI_ENC_H_ diff --git a/thirdparty/libwebp/src/mux/animi.h b/thirdparty/libwebp/src/mux/animi.h index 88899532aa..34c45ba4da 100644 --- a/thirdparty/libwebp/src/mux/animi.h +++ b/thirdparty/libwebp/src/mux/animi.h @@ -40,4 +40,4 @@ int WebPAnimEncoderRefineRect( } // extern "C" #endif -#endif /* WEBP_MUX_ANIMI_H_ */ +#endif // WEBP_MUX_ANIMI_H_ diff --git a/thirdparty/libwebp/src/mux/muxedit.c b/thirdparty/libwebp/src/mux/muxedit.c index 7a027b3cb4..ccf14b2a0c 100644 --- a/thirdparty/libwebp/src/mux/muxedit.c +++ b/thirdparty/libwebp/src/mux/muxedit.c @@ -69,12 +69,12 @@ void WebPMuxDelete(WebPMux* mux) { if (idx == (INDEX)) { \ err = ChunkAssignData(&chunk, data, copy_data, tag); \ if (err == WEBP_MUX_OK) { \ - err = ChunkSetNth(&chunk, (LIST), nth); \ + err = ChunkSetHead(&chunk, (LIST)); \ } \ return err; \ } -static WebPMuxError MuxSet(WebPMux* const mux, uint32_t tag, uint32_t nth, +static WebPMuxError MuxSet(WebPMux* const mux, uint32_t tag, const WebPData* const data, int copy_data) { WebPChunk chunk; WebPMuxError err = WEBP_MUX_NOT_FOUND; @@ -190,7 +190,7 @@ WebPMuxError WebPMuxSetChunk(WebPMux* mux, const char fourcc[4], if (err != WEBP_MUX_OK && err != WEBP_MUX_NOT_FOUND) return err; // Add the given chunk. - return MuxSet(mux, tag, 1, chunk_data, copy_data); + return MuxSet(mux, tag, chunk_data, copy_data); } // Creates a chunk from given 'data' and sets it as 1st chunk in 'chunk_list'. @@ -202,7 +202,7 @@ static WebPMuxError AddDataToChunkList( ChunkInit(&chunk); err = ChunkAssignData(&chunk, data, copy_data, tag); if (err != WEBP_MUX_OK) goto Err; - err = ChunkSetNth(&chunk, chunk_list, 1); + err = ChunkSetHead(&chunk, chunk_list); if (err != WEBP_MUX_OK) goto Err; return WEBP_MUX_OK; Err: @@ -266,14 +266,14 @@ WebPMuxError WebPMuxPushFrame(WebPMux* mux, const WebPMuxFrameInfo* info, int copy_data) { WebPMuxImage wpi; WebPMuxError err; - const WebPData* const bitstream = &info->bitstream; // Sanity checks. if (mux == NULL || info == NULL) return WEBP_MUX_INVALID_ARGUMENT; if (info->id != WEBP_CHUNK_ANMF) return WEBP_MUX_INVALID_ARGUMENT; - if (bitstream->bytes == NULL || bitstream->size > MAX_CHUNK_PAYLOAD) { + if (info->bitstream.bytes == NULL || + info->bitstream.size > MAX_CHUNK_PAYLOAD) { return WEBP_MUX_INVALID_ARGUMENT; } @@ -287,7 +287,7 @@ WebPMuxError WebPMuxPushFrame(WebPMux* mux, const WebPMuxFrameInfo* info, } MuxImageInit(&wpi); - err = SetAlphaAndImageChunks(bitstream, copy_data, &wpi); + err = SetAlphaAndImageChunks(&info->bitstream, copy_data, &wpi); if (err != WEBP_MUX_OK) goto Err; assert(wpi.img_ != NULL); // As SetAlphaAndImageChunks() was successful. @@ -342,7 +342,7 @@ WebPMuxError WebPMuxSetAnimationParams(WebPMux* mux, // Set the animation parameters. PutLE32(data, params->bgcolor); PutLE16(data + 4, params->loop_count); - return MuxSet(mux, kChunks[IDX_ANIM].tag, 1, &anim, 1); + return MuxSet(mux, kChunks[IDX_ANIM].tag, &anim, 1); } WebPMuxError WebPMuxSetCanvasSize(WebPMux* mux, @@ -540,7 +540,7 @@ static WebPMuxError CreateVP8XChunk(WebPMux* const mux) { PutLE24(data + 4, width - 1); // canvas width. PutLE24(data + 7, height - 1); // canvas height. - return MuxSet(mux, kChunks[IDX_VP8X].tag, 1, &vp8x, 1); + return MuxSet(mux, kChunks[IDX_VP8X].tag, &vp8x, 1); } // Cleans up 'mux' by removing any unnecessary chunks. diff --git a/thirdparty/libwebp/src/mux/muxi.h b/thirdparty/libwebp/src/mux/muxi.h index 6b57eea30f..df9f74c63c 100644 --- a/thirdparty/libwebp/src/mux/muxi.h +++ b/thirdparty/libwebp/src/mux/muxi.h @@ -14,6 +14,7 @@ #ifndef WEBP_MUX_MUXI_H_ #define WEBP_MUX_MUXI_H_ +#include <assert.h> #include <stdlib.h> #include "src/dec/vp8i_dec.h" #include "src/dec/vp8li_dec.h" @@ -28,7 +29,7 @@ extern "C" { #define MUX_MAJ_VERSION 1 #define MUX_MIN_VERSION 0 -#define MUX_REV_VERSION 0 +#define MUX_REV_VERSION 1 // Chunk object. typedef struct WebPChunk WebPChunk; @@ -126,11 +127,14 @@ WebPChunk* ChunkSearchList(WebPChunk* first, uint32_t nth, uint32_t tag); WebPMuxError ChunkAssignData(WebPChunk* chunk, const WebPData* const data, int copy_data, uint32_t tag); -// Sets 'chunk' at nth position in the 'chunk_list'. -// nth = 0 has the special meaning "last of the list". +// Sets 'chunk' as the only element in 'chunk_list' if it is empty. // On success ownership is transferred from 'chunk' to the 'chunk_list'. -WebPMuxError ChunkSetNth(WebPChunk* chunk, WebPChunk** chunk_list, - uint32_t nth); +WebPMuxError ChunkSetHead(WebPChunk* const chunk, WebPChunk** const chunk_list); +// Sets 'chunk' at last position in the 'chunk_list'. +// On success ownership is transferred from 'chunk' to the 'chunk_list'. +// *chunk_list also points towards the last valid element of the initial +// *chunk_list. +WebPMuxError ChunkAppend(WebPChunk* const chunk, WebPChunk*** const chunk_list); // Releases chunk and returns chunk->next_. WebPChunk* ChunkRelease(WebPChunk* const chunk); @@ -143,13 +147,13 @@ void ChunkListDelete(WebPChunk** const chunk_list); // Returns size of the chunk including chunk header and padding byte (if any). static WEBP_INLINE size_t SizeWithPadding(size_t chunk_size) { + assert(chunk_size <= MAX_CHUNK_PAYLOAD); return CHUNK_HEADER_SIZE + ((chunk_size + 1) & ~1U); } // Size of a chunk including header and padding. static WEBP_INLINE size_t ChunkDiskSize(const WebPChunk* chunk) { const size_t data_size = chunk->data_.size; - assert(data_size < MAX_CHUNK_PAYLOAD); return SizeWithPadding(data_size); } @@ -227,4 +231,4 @@ WebPMuxError MuxValidate(const WebPMux* const mux); } // extern "C" #endif -#endif /* WEBP_MUX_MUXI_H_ */ +#endif // WEBP_MUX_MUXI_H_ diff --git a/thirdparty/libwebp/src/mux/muxinternal.c b/thirdparty/libwebp/src/mux/muxinternal.c index 1473f100e5..b9ee6717d3 100644 --- a/thirdparty/libwebp/src/mux/muxinternal.c +++ b/thirdparty/libwebp/src/mux/muxinternal.c @@ -111,27 +111,6 @@ WebPChunk* ChunkSearchList(WebPChunk* first, uint32_t nth, uint32_t tag) { return ((nth > 0) && (iter > 0)) ? NULL : first; } -// Outputs a pointer to 'prev_chunk->next_', -// where 'prev_chunk' is the pointer to the chunk at position (nth - 1). -// Returns true if nth chunk was found. -static int ChunkSearchListToSet(WebPChunk** chunk_list, uint32_t nth, - WebPChunk*** const location) { - uint32_t count = 0; - assert(chunk_list != NULL); - *location = chunk_list; - - while (*chunk_list != NULL) { - WebPChunk* const cur_chunk = *chunk_list; - ++count; - if (count == nth) return 1; // Found. - chunk_list = &cur_chunk->next_; - *location = chunk_list; - } - - // *chunk_list is ok to be NULL if adding at last location. - return (nth == 0 || (count == nth - 1)) ? 1 : 0; -} - //------------------------------------------------------------------------------ // Chunk writer methods. @@ -156,11 +135,12 @@ WebPMuxError ChunkAssignData(WebPChunk* chunk, const WebPData* const data, return WEBP_MUX_OK; } -WebPMuxError ChunkSetNth(WebPChunk* chunk, WebPChunk** chunk_list, - uint32_t nth) { +WebPMuxError ChunkSetHead(WebPChunk* const chunk, + WebPChunk** const chunk_list) { WebPChunk* new_chunk; - if (!ChunkSearchListToSet(chunk_list, nth, &chunk_list)) { + assert(chunk_list != NULL); + if (*chunk_list != NULL) { return WEBP_MUX_NOT_FOUND; } @@ -168,11 +148,26 @@ WebPMuxError ChunkSetNth(WebPChunk* chunk, WebPChunk** chunk_list, if (new_chunk == NULL) return WEBP_MUX_MEMORY_ERROR; *new_chunk = *chunk; chunk->owner_ = 0; - new_chunk->next_ = *chunk_list; + new_chunk->next_ = NULL; *chunk_list = new_chunk; return WEBP_MUX_OK; } +WebPMuxError ChunkAppend(WebPChunk* const chunk, + WebPChunk*** const chunk_list) { + assert(chunk_list != NULL && *chunk_list != NULL); + + if (**chunk_list == NULL) { + ChunkSetHead(chunk, *chunk_list); + } else { + WebPChunk* last_chunk = **chunk_list; + while (last_chunk->next_ != NULL) last_chunk = last_chunk->next_; + ChunkSetHead(chunk, &last_chunk->next_); + *chunk_list = &last_chunk->next_; + } + return WEBP_MUX_OK; +} + //------------------------------------------------------------------------------ // Chunk deletion method(s). @@ -232,9 +227,11 @@ void MuxImageInit(WebPMuxImage* const wpi) { WebPMuxImage* MuxImageRelease(WebPMuxImage* const wpi) { WebPMuxImage* next; if (wpi == NULL) return NULL; - ChunkDelete(wpi->header_); - ChunkDelete(wpi->alpha_); - ChunkDelete(wpi->img_); + // There should be at most one chunk of header_, alpha_, img_ but we call + // ChunkListDelete to be safe + ChunkListDelete(&wpi->header_); + ChunkListDelete(&wpi->alpha_); + ChunkListDelete(&wpi->img_); ChunkListDelete(&wpi->unknown_); next = wpi->next_; diff --git a/thirdparty/libwebp/src/mux/muxread.c b/thirdparty/libwebp/src/mux/muxread.c index 0b55286862..268f6acb53 100644 --- a/thirdparty/libwebp/src/mux/muxread.c +++ b/thirdparty/libwebp/src/mux/muxread.c @@ -59,6 +59,7 @@ static WebPMuxError ChunkVerifyAndAssign(WebPChunk* chunk, // Sanity checks. if (data_size < CHUNK_HEADER_SIZE) return WEBP_MUX_NOT_ENOUGH_DATA; chunk_size = GetLE32(data + TAG_SIZE); + if (chunk_size > MAX_CHUNK_PAYLOAD) return WEBP_MUX_BAD_DATA; { const size_t chunk_disk_size = SizeWithPadding(chunk_size); @@ -102,6 +103,7 @@ static int MuxImageParse(const WebPChunk* const chunk, int copy_data, const uint8_t* const last = bytes + size; WebPChunk subchunk; size_t subchunk_size; + WebPChunk** unknown_chunk_list = &wpi->unknown_; ChunkInit(&subchunk); assert(chunk->tag_ == kChunks[IDX_ANMF].tag); @@ -116,7 +118,7 @@ static int MuxImageParse(const WebPChunk* const chunk, int copy_data, if (size < hdr_size) goto Fail; ChunkAssignData(&subchunk, &temp, copy_data, chunk->tag_); } - ChunkSetNth(&subchunk, &wpi->header_, 1); + ChunkSetHead(&subchunk, &wpi->header_); wpi->is_partial_ = 1; // Waiting for ALPH and/or VP8/VP8L chunks. // Rest of the chunks. @@ -133,18 +135,23 @@ static int MuxImageParse(const WebPChunk* const chunk, int copy_data, switch (ChunkGetIdFromTag(subchunk.tag_)) { case WEBP_CHUNK_ALPHA: if (wpi->alpha_ != NULL) goto Fail; // Consecutive ALPH chunks. - if (ChunkSetNth(&subchunk, &wpi->alpha_, 1) != WEBP_MUX_OK) goto Fail; + if (ChunkSetHead(&subchunk, &wpi->alpha_) != WEBP_MUX_OK) goto Fail; wpi->is_partial_ = 1; // Waiting for a VP8 chunk. break; case WEBP_CHUNK_IMAGE: - if (ChunkSetNth(&subchunk, &wpi->img_, 1) != WEBP_MUX_OK) goto Fail; + if (wpi->img_ != NULL) goto Fail; // Only 1 image chunk allowed. + if (ChunkSetHead(&subchunk, &wpi->img_) != WEBP_MUX_OK) goto Fail; if (!MuxImageFinalize(wpi)) goto Fail; wpi->is_partial_ = 0; // wpi is completely filled. break; case WEBP_CHUNK_UNKNOWN: - if (wpi->is_partial_) goto Fail; // Encountered an unknown chunk - // before some image chunks. - if (ChunkSetNth(&subchunk, &wpi->unknown_, 0) != WEBP_MUX_OK) goto Fail; + if (wpi->is_partial_) { + goto Fail; // Encountered an unknown chunk + // before some image chunks. + } + if (ChunkAppend(&subchunk, &unknown_chunk_list) != WEBP_MUX_OK) { + goto Fail; + } break; default: goto Fail; @@ -175,6 +182,9 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, const uint8_t* data; size_t size; WebPChunk chunk; + // Stores the end of the chunk lists so that it is faster to append data to + // their ends. + WebPChunk** chunk_list_ends[WEBP_CHUNK_NIL + 1] = { NULL }; ChunkInit(&chunk); // Sanity checks. @@ -187,7 +197,7 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, size = bitstream->size; if (data == NULL) return NULL; - if (size < RIFF_HEADER_SIZE) return NULL; + if (size < RIFF_HEADER_SIZE + CHUNK_HEADER_SIZE) return NULL; if (GetLE32(data + 0) != MKFOURCC('R', 'I', 'F', 'F') || GetLE32(data + CHUNK_HEADER_SIZE) != MKFOURCC('W', 'E', 'B', 'P')) { return NULL; @@ -196,8 +206,6 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, mux = WebPMuxNew(); if (mux == NULL) return NULL; - if (size < RIFF_HEADER_SIZE + TAG_SIZE) goto Err; - tag = GetLE32(data + RIFF_HEADER_SIZE); if (tag != kChunks[IDX_VP8].tag && tag != kChunks[IDX_VP8L].tag && @@ -205,13 +213,17 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, goto Err; // First chunk should be VP8, VP8L or VP8X. } - riff_size = SizeWithPadding(GetLE32(data + TAG_SIZE)); - if (riff_size > MAX_CHUNK_PAYLOAD || riff_size > size) { - goto Err; - } else { - if (riff_size < size) { // Redundant data after last chunk. - size = riff_size; // To make sure we don't read any data beyond mux_size. - } + riff_size = GetLE32(data + TAG_SIZE); + if (riff_size > MAX_CHUNK_PAYLOAD) goto Err; + + // Note this padding is historical and differs from demux.c which does not + // pad the file size. + riff_size = SizeWithPadding(riff_size); + if (riff_size < CHUNK_HEADER_SIZE) goto Err; + if (riff_size > size) goto Err; + // There's no point in reading past the end of the RIFF chunk. + if (size > riff_size + CHUNK_HEADER_SIZE) { + size = riff_size + CHUNK_HEADER_SIZE; } end = data + size; @@ -226,7 +238,6 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, while (data != end) { size_t data_size; WebPChunkId id; - WebPChunk** chunk_list; if (ChunkVerifyAndAssign(&chunk, data, size, riff_size, copy_data) != WEBP_MUX_OK) { goto Err; @@ -236,11 +247,11 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, switch (id) { case WEBP_CHUNK_ALPHA: if (wpi->alpha_ != NULL) goto Err; // Consecutive ALPH chunks. - if (ChunkSetNth(&chunk, &wpi->alpha_, 1) != WEBP_MUX_OK) goto Err; + if (ChunkSetHead(&chunk, &wpi->alpha_) != WEBP_MUX_OK) goto Err; wpi->is_partial_ = 1; // Waiting for a VP8 chunk. break; case WEBP_CHUNK_IMAGE: - if (ChunkSetNth(&chunk, &wpi->img_, 1) != WEBP_MUX_OK) goto Err; + if (ChunkSetHead(&chunk, &wpi->img_) != WEBP_MUX_OK) goto Err; if (!MuxImageFinalize(wpi)) goto Err; wpi->is_partial_ = 0; // wpi is completely filled. PushImage: @@ -257,9 +268,13 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, default: // A non-image chunk. if (wpi->is_partial_) goto Err; // Encountered a non-image chunk before // getting all chunks of an image. - chunk_list = MuxGetChunkListFromId(mux, id); // List to add this chunk. - if (ChunkSetNth(&chunk, chunk_list, 0) != WEBP_MUX_OK) goto Err; + if (chunk_list_ends[id] == NULL) { + chunk_list_ends[id] = + MuxGetChunkListFromId(mux, id); // List to add this chunk. + } + if (ChunkAppend(&chunk, &chunk_list_ends[id]) != WEBP_MUX_OK) goto Err; if (id == WEBP_CHUNK_VP8X) { // grab global specs + if (data_size < CHUNK_HEADER_SIZE + VP8X_CHUNK_SIZE) goto Err; mux->canvas_width_ = GetLE24(data + 12) + 1; mux->canvas_height_ = GetLE24(data + 15) + 1; } @@ -385,6 +400,10 @@ static WebPMuxError SynthesizeBitstream(const WebPMuxImage* const wpi, uint8_t* const data = (uint8_t*)WebPSafeMalloc(1ULL, size); if (data == NULL) return WEBP_MUX_MEMORY_ERROR; + // There should be at most one alpha_ chunk and exactly one img_ chunk. + assert(wpi->alpha_ == NULL || wpi->alpha_->next_ == NULL); + assert(wpi->img_ != NULL && wpi->img_->next_ == NULL); + // Main RIFF header. dst = MuxEmitRiffHeader(data, size); diff --git a/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h b/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h index 2ccc6ed326..7e607f370a 100644 --- a/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h +++ b/thirdparty/libwebp/src/utils/bit_reader_inl_utils.h @@ -187,4 +187,4 @@ static WEBP_INLINE int VP8GetBitAlt(VP8BitReader* const br, int prob) { } // extern "C" #endif -#endif // WEBP_UTILS_BIT_READER_INL_UTILS_H_ +#endif // WEBP_UTILS_BIT_READER_INL_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/bit_reader_utils.h b/thirdparty/libwebp/src/utils/bit_reader_utils.h index 04f9804409..de810d402a 100644 --- a/thirdparty/libwebp/src/utils/bit_reader_utils.h +++ b/thirdparty/libwebp/src/utils/bit_reader_utils.h @@ -182,4 +182,4 @@ static WEBP_INLINE void VP8LFillBitWindow(VP8LBitReader* const br) { } // extern "C" #endif -#endif /* WEBP_UTILS_BIT_READER_UTILS_H_ */ +#endif // WEBP_UTILS_BIT_READER_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/bit_writer_utils.h b/thirdparty/libwebp/src/utils/bit_writer_utils.h index 2cf5976fe3..b9d5102a5a 100644 --- a/thirdparty/libwebp/src/utils/bit_writer_utils.h +++ b/thirdparty/libwebp/src/utils/bit_writer_utils.h @@ -151,4 +151,4 @@ static WEBP_INLINE void VP8LPutBits(VP8LBitWriter* const bw, } // extern "C" #endif -#endif /* WEBP_UTILS_BIT_WRITER_UTILS_H_ */ +#endif // WEBP_UTILS_BIT_WRITER_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/filters_utils.h b/thirdparty/libwebp/src/utils/filters_utils.h index 410f2fcdf2..61da66e212 100644 --- a/thirdparty/libwebp/src/utils/filters_utils.h +++ b/thirdparty/libwebp/src/utils/filters_utils.h @@ -29,4 +29,4 @@ WEBP_FILTER_TYPE WebPEstimateBestFilter(const uint8_t* data, } // extern "C" #endif -#endif /* WEBP_UTILS_FILTERS_UTILS_H_ */ +#endif // WEBP_UTILS_FILTERS_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/quant_levels_dec_utils.c b/thirdparty/libwebp/src/utils/quant_levels_dec_utils.c index 3818a78b93..f65b6cdbb6 100644 --- a/thirdparty/libwebp/src/utils/quant_levels_dec_utils.c +++ b/thirdparty/libwebp/src/utils/quant_levels_dec_utils.c @@ -261,9 +261,15 @@ static void CleanupParams(SmoothParams* const p) { int WebPDequantizeLevels(uint8_t* const data, int width, int height, int stride, int strength) { - const int radius = 4 * strength / 100; + int radius = 4 * strength / 100; + if (strength < 0 || strength > 100) return 0; if (data == NULL || width <= 0 || height <= 0) return 0; // bad params + + // limit the filter size to not exceed the image dimensions + if (2 * radius + 1 > width) radius = (width - 1) >> 1; + if (2 * radius + 1 > height) radius = (height - 1) >> 1; + if (radius > 0) { SmoothParams p; memset(&p, 0, sizeof(p)); diff --git a/thirdparty/libwebp/src/utils/quant_levels_dec_utils.h b/thirdparty/libwebp/src/utils/quant_levels_dec_utils.h index f822107a72..327f19f336 100644 --- a/thirdparty/libwebp/src/utils/quant_levels_dec_utils.h +++ b/thirdparty/libwebp/src/utils/quant_levels_dec_utils.h @@ -32,4 +32,4 @@ int WebPDequantizeLevels(uint8_t* const data, int width, int height, int stride, } // extern "C" #endif -#endif /* WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ */ +#endif // WEBP_UTILS_QUANT_LEVELS_DEC_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/quant_levels_utils.h b/thirdparty/libwebp/src/utils/quant_levels_utils.h index 75df2ba6a4..9ee3ea0075 100644 --- a/thirdparty/libwebp/src/utils/quant_levels_utils.h +++ b/thirdparty/libwebp/src/utils/quant_levels_utils.h @@ -33,4 +33,4 @@ int QuantizeLevels(uint8_t* const data, int width, int height, int num_levels, } // extern "C" #endif -#endif /* WEBP_UTILS_QUANT_LEVELS_UTILS_H_ */ +#endif // WEBP_UTILS_QUANT_LEVELS_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/random_utils.h b/thirdparty/libwebp/src/utils/random_utils.h index 6d36c667e7..a5006f84f7 100644 --- a/thirdparty/libwebp/src/utils/random_utils.h +++ b/thirdparty/libwebp/src/utils/random_utils.h @@ -60,4 +60,4 @@ static WEBP_INLINE int VP8RandomBits(VP8Random* const rg, int num_bits) { } // extern "C" #endif -#endif /* WEBP_UTILS_RANDOM_UTILS_H_ */ +#endif // WEBP_UTILS_RANDOM_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/rescaler_utils.h b/thirdparty/libwebp/src/utils/rescaler_utils.h index 8890e6fa13..ca41e42c4a 100644 --- a/thirdparty/libwebp/src/utils/rescaler_utils.h +++ b/thirdparty/libwebp/src/utils/rescaler_utils.h @@ -98,4 +98,4 @@ int WebPRescalerHasPendingOutput(const WebPRescaler* const rescaler) { } // extern "C" #endif -#endif /* WEBP_UTILS_RESCALER_UTILS_H_ */ +#endif // WEBP_UTILS_RESCALER_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/thread_utils.h b/thirdparty/libwebp/src/utils/thread_utils.h index c8ae6c9033..29ad49f74b 100644 --- a/thirdparty/libwebp/src/utils/thread_utils.h +++ b/thirdparty/libwebp/src/utils/thread_utils.h @@ -87,4 +87,4 @@ WEBP_EXTERN const WebPWorkerInterface* WebPGetWorkerInterface(void); } // extern "C" #endif -#endif /* WEBP_UTILS_THREAD_UTILS_H_ */ +#endif // WEBP_UTILS_THREAD_UTILS_H_ diff --git a/thirdparty/libwebp/src/utils/utils.h b/thirdparty/libwebp/src/utils/utils.h index 52921bf24e..da97b5d38f 100644 --- a/thirdparty/libwebp/src/utils/utils.h +++ b/thirdparty/libwebp/src/utils/utils.h @@ -175,4 +175,4 @@ WEBP_EXTERN int WebPGetColorPalette(const struct WebPPicture* const pic, } // extern "C" #endif -#endif /* WEBP_UTILS_UTILS_H_ */ +#endif // WEBP_UTILS_UTILS_H_ diff --git a/thirdparty/libwebp/src/webp/decode.h b/thirdparty/libwebp/src/webp/decode.h index 2165e96c95..95d31e7619 100644 --- a/thirdparty/libwebp/src/webp/decode.h +++ b/thirdparty/libwebp/src/webp/decode.h @@ -491,4 +491,4 @@ WEBP_EXTERN VP8StatusCode WebPDecode(const uint8_t* data, size_t data_size, } // extern "C" #endif -#endif /* WEBP_WEBP_DECODE_H_ */ +#endif // WEBP_WEBP_DECODE_H_ diff --git a/thirdparty/libwebp/src/webp/demux.h b/thirdparty/libwebp/src/webp/demux.h index 555d641338..846eeb15a9 100644 --- a/thirdparty/libwebp/src/webp/demux.h +++ b/thirdparty/libwebp/src/webp/demux.h @@ -360,4 +360,4 @@ WEBP_EXTERN void WebPAnimDecoderDelete(WebPAnimDecoder* dec); } // extern "C" #endif -#endif /* WEBP_WEBP_DEMUX_H_ */ +#endif // WEBP_WEBP_DEMUX_H_ diff --git a/thirdparty/libwebp/src/webp/encode.h b/thirdparty/libwebp/src/webp/encode.h index 7ec3543dc2..549cf07730 100644 --- a/thirdparty/libwebp/src/webp/encode.h +++ b/thirdparty/libwebp/src/webp/encode.h @@ -542,4 +542,4 @@ WEBP_EXTERN int WebPEncode(const WebPConfig* config, WebPPicture* picture); } // extern "C" #endif -#endif /* WEBP_WEBP_ENCODE_H_ */ +#endif // WEBP_WEBP_ENCODE_H_ diff --git a/thirdparty/libwebp/src/webp/format_constants.h b/thirdparty/libwebp/src/webp/format_constants.h index 329fc8a3b0..eca6981a47 100644 --- a/thirdparty/libwebp/src/webp/format_constants.h +++ b/thirdparty/libwebp/src/webp/format_constants.h @@ -84,4 +84,4 @@ typedef enum { // overflow a uint32_t. #define MAX_CHUNK_PAYLOAD (~0U - CHUNK_HEADER_SIZE - 1) -#endif /* WEBP_WEBP_FORMAT_CONSTANTS_H_ */ +#endif // WEBP_WEBP_FORMAT_CONSTANTS_H_ diff --git a/thirdparty/libwebp/src/webp/mux.h b/thirdparty/libwebp/src/webp/mux.h index 28bb4a41c9..66096a92e0 100644 --- a/thirdparty/libwebp/src/webp/mux.h +++ b/thirdparty/libwebp/src/webp/mux.h @@ -527,4 +527,4 @@ WEBP_EXTERN void WebPAnimEncoderDelete(WebPAnimEncoder* enc); } // extern "C" #endif -#endif /* WEBP_WEBP_MUX_H_ */ +#endif // WEBP_WEBP_MUX_H_ diff --git a/thirdparty/libwebp/src/webp/mux_types.h b/thirdparty/libwebp/src/webp/mux_types.h index b37e2c67aa..ceea77dfc6 100644 --- a/thirdparty/libwebp/src/webp/mux_types.h +++ b/thirdparty/libwebp/src/webp/mux_types.h @@ -95,4 +95,4 @@ static WEBP_INLINE int WebPDataCopy(const WebPData* src, WebPData* dst) { } // extern "C" #endif -#endif /* WEBP_WEBP_MUX_TYPES_H_ */ +#endif // WEBP_WEBP_MUX_TYPES_H_ diff --git a/thirdparty/libwebp/src/webp/types.h b/thirdparty/libwebp/src/webp/types.h index 989a763f0d..0ce2622e41 100644 --- a/thirdparty/libwebp/src/webp/types.h +++ b/thirdparty/libwebp/src/webp/types.h @@ -49,4 +49,4 @@ typedef long long int int64_t; // Macro to check ABI compatibility (same major revision number) #define WEBP_ABI_IS_INCOMPATIBLE(a, b) (((a) >> 8) != ((b) >> 8)) -#endif /* WEBP_WEBP_TYPES_H_ */ +#endif // WEBP_WEBP_TYPES_H_ diff --git a/thirdparty/tinyexr/tinyexr.h b/thirdparty/tinyexr/tinyexr.h index 990c8ee142..b3a7ee00c2 100644 --- a/thirdparty/tinyexr/tinyexr.h +++ b/thirdparty/tinyexr/tinyexr.h @@ -116,6 +116,8 @@ extern "C" { #define TINYEXR_ERROR_UNSUPPORTED_FORMAT (-7) #define TINYEXR_ERROR_INVALID_HEADER (-8) #define TINYEXR_ERROR_UNSUPPORTED_FEATURE (-9) +#define TINYEXR_ERROR_CANT_WRITE_FILE (-10) +#define TINYEXR_ERROR_SERIALZATION_FAILED (-11) // @note { OpenEXR file format: http://www.openexr.com/openexrfilelayout.pdf } @@ -279,9 +281,12 @@ extern int LoadEXR(float **out_rgba, int *width, int *height, // Save image as fp16(HALF) format when `save_as_fp16` is positive non-zero // value. // Save image as fp32(FLOAT) format when `save_as_fp16` is 0. +// Use ZIP compression by default. +// Returns negative value and may set error string in `err` when there's an +// error extern int SaveEXR(const float *data, const int width, const int height, const int components, const int save_as_fp16, - const char *filename); + const char *filename, const char **err); // Initialize EXRHeader struct extern void InitEXRHeader(EXRHeader *exr_header); @@ -400,9 +405,9 @@ extern int SaveEXRImageToFile(const EXRImage *image, // Saves multi-channel, single-frame OpenEXR image to a memory. // Image is compressed using EXRImage.compression value. -// Return the number of bytes if succes. -// Returns negative value and may set error string in `err` when there's an -// error +// Return the number of bytes if success. +// Return zero and will set error string in `err` when there's an +// error. // When there was an error message, Application must free `err` with // FreeEXRErrorMessage() extern size_t SaveEXRImageToMemory(const EXRImage *image, @@ -524,15 +529,23 @@ namespace miniz { #if __has_warning("-Wcomma") #pragma clang diagnostic ignored "-Wcomma" #endif + #if __has_warning("-Wmacro-redefined") #pragma clang diagnostic ignored "-Wmacro-redefined" #endif + #if __has_warning("-Wcast-qual") #pragma clang diagnostic ignored "-Wcast-qual" #endif + #if __has_warning("-Wzero-as-null-pointer-constant") #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" #endif + +#if __has_warning("-Wtautological-constant-compare") +#pragma clang diagnostic ignored "-Wtautological-constant-compare" +#endif + #endif /* miniz.c v1.15 - public domain deflate/inflate, zlib-subset, ZIP @@ -2518,10 +2531,10 @@ tinfl_status tinfl_decompress(tinfl_decompressor *r, tinfl_status status = TINFL_STATUS_FAILED; mz_uint32 num_bits, dist, counter, num_extra; tinfl_bit_buf_t bit_buf; - const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = - pIn_buf_next + *pIn_buf_size; - mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = - pOut_buf_next + *pOut_buf_size; + const mz_uint8 *pIn_buf_cur = pIn_buf_next, + *const pIn_buf_end = pIn_buf_next + *pIn_buf_size; + mz_uint8 *pOut_buf_cur = pOut_buf_next, + *const pOut_buf_end = pOut_buf_next + *pOut_buf_size; size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 @@ -2938,9 +2951,8 @@ void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, tinfl_status status = tinfl_decompress( &decomp, (const mz_uint8 *)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8 *)pBuf, pBuf ? (mz_uint8 *)pBuf + *pOut_len : NULL, - &dst_buf_size, - (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | - TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); + &dst_buf_size, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | + TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT)) { MZ_FREE(pBuf); *pOut_len = 0; @@ -2993,8 +3005,9 @@ int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8 *)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size, - (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | - TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); + (flags & + ~(TINFL_FLAG_HAS_MORE_INPUT | + TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); in_buf_ofs += in_buf_size; if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user))) @@ -3119,9 +3132,7 @@ static const mz_uint8 s_tdefl_large_dist_extra[128] = { // Radix sorts tdefl_sym_freq[] array by 16-bit key m_key. Returns ptr to sorted // values. -typedef struct { - mz_uint16 m_key, m_sym_index; -} tdefl_sym_freq; +typedef struct { mz_uint16 m_key, m_sym_index; } tdefl_sym_freq; static tdefl_sym_freq *tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym_freq *pSyms0, tdefl_sym_freq *pSyms1) { @@ -5265,10 +5276,9 @@ mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, n = MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS); n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE - 1); pStat->m_comment_size = n; - memcpy(pStat->m_comment, - p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + - MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + - MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), + memcpy(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), n); pStat->m_comment[n] = '\0'; @@ -10087,9 +10097,10 @@ static bool DecodePixelData(/* out */ unsigned char **out_images, unsigned short *outLine = reinterpret_cast<unsigned short *>(out_images[c]); if (line_order == 0) { - outLine += (y + v) * x_stride; + outLine += (size_t(y) + v) * size_t(x_stride); } else { - outLine += (height - 1 - (y + v)) * x_stride; + outLine += + (size_t(height) - 1 - (size_t(y) + v)) * size_t(x_stride); } for (int u = 0; u < width; u++) { @@ -10105,9 +10116,10 @@ static bool DecodePixelData(/* out */ unsigned char **out_images, } else if (requested_pixel_types[c] == TINYEXR_PIXELTYPE_FLOAT) { float *outLine = reinterpret_cast<float *>(out_images[c]); if (line_order == 0) { - outLine += (y + v) * x_stride; + outLine += (size_t(y) + v) * size_t(x_stride); } else { - outLine += (height - 1 - (y + v)) * x_stride; + outLine += + (size_t(height) - 1 - (size_t(y) + v)) * size_t(x_stride); } if (reinterpret_cast<const unsigned char *>(line_ptr + width) > @@ -10140,9 +10152,10 @@ static bool DecodePixelData(/* out */ unsigned char **out_images, float *outLine = reinterpret_cast<float *>(out_images[c]); if (line_order == 0) { - outLine += (y + v) * x_stride; + outLine += (size_t(y) + v) * size_t(x_stride); } else { - outLine += (height - 1 - (y + v)) * x_stride; + outLine += + (size_t(height) - 1 - (size_t(y) + v)) * size_t(x_stride); } if (reinterpret_cast<const unsigned char *>(line_ptr + width) > @@ -10167,9 +10180,10 @@ static bool DecodePixelData(/* out */ unsigned char **out_images, unsigned int *outLine = reinterpret_cast<unsigned int *>(out_images[c]); if (line_order == 0) { - outLine += (y + v) * x_stride; + outLine += (size_t(y) + v) * size_t(x_stride); } else { - outLine += (height - 1 - (y + v)) * x_stride; + outLine += + (size_t(height) - 1 - (size_t(y) + v)) * size_t(x_stride); } for (int u = 0; u < width; u++) { @@ -11133,21 +11147,53 @@ int LoadEXR(float **out_rgba, int *width, int *height, const char *filename, } } - if ((idxA == 0) && (idxR == -1) && (idxG == -1) && (idxB == -1)) { - // Alpha channel only. + if (exr_header.num_channels == 1) { + // Grayscale channel only. - if (exr_header.tiled) { - // todo.implement this - } (*out_rgba) = reinterpret_cast<float *>( malloc(4 * sizeof(float) * static_cast<size_t>(exr_image.width) * static_cast<size_t>(exr_image.height))); - for (int i = 0; i < exr_image.width * exr_image.height; i++) { - const float val = reinterpret_cast<float **>(exr_image.images)[0][i]; - (*out_rgba)[4 * i + 0] = val; - (*out_rgba)[4 * i + 1] = val; - (*out_rgba)[4 * i + 2] = val; - (*out_rgba)[4 * i + 3] = val; + + if (exr_header.tiled) { + // todo.implement this + + for (int it = 0; it < exr_image.num_tiles; it++) { + for (int j = 0; j < exr_header.tile_size_y; j++) { + for (int i = 0; i < exr_header.tile_size_x; i++) { + const int ii = + exr_image.tiles[it].offset_x * exr_header.tile_size_x + i; + const int jj = + exr_image.tiles[it].offset_y * exr_header.tile_size_y + j; + const int idx = ii + jj * exr_image.width; + + // out of region check. + if (ii >= exr_image.width) { + continue; + } + if (jj >= exr_image.height) { + continue; + } + const int srcIdx = i + j * exr_header.tile_size_x; + unsigned char **src = exr_image.tiles[it].images; + (*out_rgba)[4 * idx + 0] = + reinterpret_cast<float **>(src)[0][srcIdx]; + (*out_rgba)[4 * idx + 1] = + reinterpret_cast<float **>(src)[0][srcIdx]; + (*out_rgba)[4 * idx + 2] = + reinterpret_cast<float **>(src)[0][srcIdx]; + (*out_rgba)[4 * idx + 3] = + reinterpret_cast<float **>(src)[0][srcIdx]; + } + } + } + } else { + for (int i = 0; i < exr_image.width * exr_image.height; i++) { + const float val = reinterpret_cast<float **>(exr_image.images)[0][i]; + (*out_rgba)[4 * i + 0] = val; + (*out_rgba)[4 * i + 1] = val; + (*out_rgba)[4 * i + 2] = val; + (*out_rgba)[4 * i + 3] = val; + } } } else { // Assume RGB(A) @@ -11179,7 +11225,7 @@ int LoadEXR(float **out_rgba, int *width, int *height, const char *filename, static_cast<size_t>(exr_image.height))); if (exr_header.tiled) { for (int it = 0; it < exr_image.num_tiles; it++) { - for (int j = 0; j < exr_header.tile_size_y; j++) + for (int j = 0; j < exr_header.tile_size_y; j++) { for (int i = 0; i < exr_header.tile_size_x; i++) { const int ii = exr_image.tiles[it].offset_x * exr_header.tile_size_x + i; @@ -11209,6 +11255,7 @@ int LoadEXR(float **out_rgba, int *width, int *height, const char *filename, (*out_rgba)[4 * idx + 3] = 1.0; } } + } } } else { for (int i = 0; i < exr_image.width * exr_image.height; i++) { @@ -11356,18 +11403,53 @@ int LoadEXRFromMemory(float **out_rgba, int *width, int *height, malloc(4 * sizeof(float) * static_cast<size_t>(exr_image.width) * static_cast<size_t>(exr_image.height))); - for (int i = 0; i < exr_image.width * exr_image.height; i++) { - (*out_rgba)[4 * i + 0] = - reinterpret_cast<float **>(exr_image.images)[idxR][i]; - (*out_rgba)[4 * i + 1] = - reinterpret_cast<float **>(exr_image.images)[idxG][i]; - (*out_rgba)[4 * i + 2] = - reinterpret_cast<float **>(exr_image.images)[idxB][i]; - if (idxA != -1) { - (*out_rgba)[4 * i + 3] = - reinterpret_cast<float **>(exr_image.images)[idxA][i]; - } else { - (*out_rgba)[4 * i + 3] = 1.0; + if (exr_header.tiled) { + for (int it = 0; it < exr_image.num_tiles; it++) { + for (int j = 0; j < exr_header.tile_size_y; j++) + for (int i = 0; i < exr_header.tile_size_x; i++) { + const int ii = + exr_image.tiles[it].offset_x * exr_header.tile_size_x + i; + const int jj = + exr_image.tiles[it].offset_y * exr_header.tile_size_y + j; + const int idx = ii + jj * exr_image.width; + + // out of region check. + if (ii >= exr_image.width) { + continue; + } + if (jj >= exr_image.height) { + continue; + } + const int srcIdx = i + j * exr_header.tile_size_x; + unsigned char **src = exr_image.tiles[it].images; + (*out_rgba)[4 * idx + 0] = + reinterpret_cast<float **>(src)[idxR][srcIdx]; + (*out_rgba)[4 * idx + 1] = + reinterpret_cast<float **>(src)[idxG][srcIdx]; + (*out_rgba)[4 * idx + 2] = + reinterpret_cast<float **>(src)[idxB][srcIdx]; + if (idxA != -1) { + (*out_rgba)[4 * idx + 3] = + reinterpret_cast<float **>(src)[idxA][srcIdx]; + } else { + (*out_rgba)[4 * idx + 3] = 1.0; + } + } + } + } else { + for (int i = 0; i < exr_image.width * exr_image.height; i++) { + (*out_rgba)[4 * i + 0] = + reinterpret_cast<float **>(exr_image.images)[idxR][i]; + (*out_rgba)[4 * i + 1] = + reinterpret_cast<float **>(exr_image.images)[idxG][i]; + (*out_rgba)[4 * i + 2] = + reinterpret_cast<float **>(exr_image.images)[idxB][i]; + if (idxA != -1) { + (*out_rgba)[4 * i + 3] = + reinterpret_cast<float **>(exr_image.images)[idxA][i]; + } else { + (*out_rgba)[4 * i + 3] = 1.0; + } } } @@ -11452,7 +11534,7 @@ size_t SaveEXRImageToMemory(const EXRImage *exr_image, if (exr_image == NULL || memory_out == NULL || exr_header->compression_type < 0) { tinyexr::SetErrorMessage("Invalid argument for SaveEXRImageToMemory", err); - return 0; // @fixme + return 0; } #if !TINYEXR_USE_PIZ @@ -11623,8 +11705,6 @@ size_t SaveEXRImageToMemory(const EXRImage *exr_image, sizeof( tinyexr::tinyexr_int64); // sizeof(header) + sizeof(offsetTable) - std::vector<unsigned char> data; - std::vector<std::vector<unsigned char> > data_list( static_cast<size_t>(num_blocks)); std::vector<size_t> channel_offset_list( @@ -11863,9 +11943,9 @@ size_t SaveEXRImageToMemory(const EXRImage *exr_image, } else if (exr_header->compression_type == TINYEXR_COMPRESSIONTYPE_PIZ) { #if TINYEXR_USE_PIZ unsigned int bufLen = - 1024 + static_cast<unsigned int>( - 1.2 * static_cast<unsigned int>( - buf.size())); // @fixme { compute good bound. } + 8192 + static_cast<unsigned int>( + 2 * static_cast<unsigned int>( + buf.size())); // @fixme { compute good bound. } std::vector<unsigned char> block(bufLen); unsigned int outSize = static_cast<unsigned int>(block.size()); @@ -11924,13 +12004,12 @@ size_t SaveEXRImageToMemory(const EXRImage *exr_image, } // omp parallel for (size_t i = 0; i < static_cast<size_t>(num_blocks); i++) { - data.insert(data.end(), data_list[i].begin(), data_list[i].end()); - offsets[i] = offset; tinyexr::swap8(reinterpret_cast<tinyexr::tinyexr_uint64 *>(&offsets[i])); offset += data_list[i].size(); } + size_t totalSize = static_cast<size_t>(offset); { memory.insert( memory.end(), reinterpret_cast<unsigned char *>(&offsets.at(0)), @@ -11938,14 +12017,21 @@ size_t SaveEXRImageToMemory(const EXRImage *exr_image, sizeof(tinyexr::tinyexr_uint64) * static_cast<size_t>(num_blocks)); } - { memory.insert(memory.end(), data.begin(), data.end()); } - - assert(memory.size() > 0); + if ( memory.size() == 0 ) { + tinyexr::SetErrorMessage("Output memory size is zero", err); + return 0; + } - (*memory_out) = static_cast<unsigned char *>(malloc(memory.size())); + (*memory_out) = static_cast<unsigned char *>(malloc(totalSize)); memcpy((*memory_out), &memory.at(0), memory.size()); + unsigned char *memory_ptr = *memory_out + memory.size(); - return memory.size(); // OK + for (size_t i = 0; i < static_cast<size_t>(num_blocks); i++) { + memcpy(memory_ptr, &data_list[i].at(0), data_list[i].size()); + memory_ptr += data_list[i].size(); + } + + return totalSize; // OK } int SaveEXRImageToFile(const EXRImage *exr_image, const EXRHeader *exr_header, @@ -11960,7 +12046,7 @@ int SaveEXRImageToFile(const EXRImage *exr_image, const EXRHeader *exr_header, if (exr_header->compression_type == TINYEXR_COMPRESSIONTYPE_PIZ) { tinyexr::SetErrorMessage("PIZ compression is not supported in this build", err); - return 0; + return TINYEXR_ERROR_UNSUPPORTED_FEATURE; } #endif @@ -11968,7 +12054,7 @@ int SaveEXRImageToFile(const EXRImage *exr_image, const EXRHeader *exr_header, if (exr_header->compression_type == TINYEXR_COMPRESSIONTYPE_ZFP) { tinyexr::SetErrorMessage("ZFP compression is not supported in this build", err); - return 0; + return TINYEXR_ERROR_UNSUPPORTED_FEATURE; } #endif @@ -11980,19 +12066,28 @@ int SaveEXRImageToFile(const EXRImage *exr_image, const EXRHeader *exr_header, #endif if (!fp) { tinyexr::SetErrorMessage("Cannot write a file", err); - return TINYEXR_ERROR_CANT_OPEN_FILE; + return TINYEXR_ERROR_CANT_WRITE_FILE; } unsigned char *mem = NULL; size_t mem_size = SaveEXRImageToMemory(exr_image, exr_header, &mem, err); + if (mem_size == 0) { + return TINYEXR_ERROR_SERIALZATION_FAILED; + } + size_t written_size = 0; if ((mem_size > 0) && mem) { - fwrite(mem, 1, mem_size, fp); + written_size = fwrite(mem, 1, mem_size, fp); } free(mem); fclose(fp); + if (written_size != mem_size) { + tinyexr::SetErrorMessage("Cannot write a file", err); + return TINYEXR_ERROR_CANT_WRITE_FILE; + } + return TINYEXR_SUCCESS; } @@ -12861,20 +12956,27 @@ int LoadEXRMultipartImageFromFile(EXRImage *exr_images, } int SaveEXR(const float *data, int width, int height, int components, - const int save_as_fp16, const char *outfilename) { + const int save_as_fp16, const char *outfilename, const char **err) { if ((components == 1) || components == 3 || components == 4) { // OK } else { + std::stringstream ss; + ss << "Unsupported component value : " << components << std::endl; + + tinyexr::SetErrorMessage(ss.str(), err); return TINYEXR_ERROR_INVALID_ARGUMENT; } - // Assume at least 16x16 pixels. - if (width < 16) return TINYEXR_ERROR_INVALID_ARGUMENT; - if (height < 16) return TINYEXR_ERROR_INVALID_ARGUMENT; - EXRHeader header; InitEXRHeader(&header); + if ((width < 16) && (height < 16)) { + // No compression for small image. + header.compression_type = TINYEXR_COMPRESSIONTYPE_NONE; + } else { + header.compression_type = TINYEXR_COMPRESSIONTYPE_ZIP; + } + EXRImage image; InitEXRImage(&image); @@ -12980,8 +13082,7 @@ int SaveEXR(const float *data, int width, int height, int components, } } - const char *err; - int ret = SaveEXRImageToFile(&image, &header, outfilename, &err); + int ret = SaveEXRImageToFile(&image, &header, outfilename, err); if (ret != TINYEXR_SUCCESS) { return ret; } |